要求 - 我试图从asp.net MVC应用程序连接到azure SQL DB,连接类型到azure SQL DB是"基于令牌的",下面是从我的结束完成的设置.
一个.使用基于证书的身份验证创建了AAD应用程序(例如:MTSLocal).
湾 在SQL中添加了对上述AAD的权限.
从外部提供商创建用户[MTSLocal];
c.在代码级别,我试图通过使用客户端ID(从步骤a获得)和证书来获取访问令牌,并且我连接的资源是" https://database.windows.net ".请参考示例代码 -
string authority = string.Format(System.Globalization.CultureInfo.InvariantCulture, "https://login.windows.net/{0}",
"xxxx.onmicrosoft.com");
var authContext = new AuthenticationContext(authority);
AuthenticationResult result = null;
result = await authContext.AcquireTokenAsync("https://database.windows.net", AssertionCert);
token = result.AccessToken;
Run Code Online (Sandbox Code Playgroud)
d.我能够检索访问令牌,但当我尝试打开SQL连接时.我得到上述错误.
sqlBuilder["Data Source"] = serverName;
sqlBuilder["Initial Catalog"] = databaseName;
sqlBuilder["Connect Timeout"] = 30;
string accesstoken = GetAccessToken();
using (SqlConnection connection = new SqlConnection(sqlBuilder.ConnectionString))
{
try
{
connection.AccessToken = accesstoken;
connection.Open();
}
catch (Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助都会非常有帮助.
sql-server authentication asp.net-mvc azure-active-directory azure-sql-database