Pri*_*tra 11 sql-server authentication asp.net-mvc azure-active-directory azure-sql-database
要求 - 我试图从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)
任何有关这方面的帮助都会非常有帮助.
小智 1
在AAD中注册的应用程序应添加到DB的用户列表中,并且应将各自的角色赋予DB USER。
假设注册的应用程序的名称是“App_AAD_Register_Name”。将此用户添加到相应的数据库,就像执行以下查询一样。这样,用户将被添加到数据库服务器的主要用户列表中。
从外部提供商创建用户 [App_AAD_Register_Name]。
创建一些通用角色,如下所示
创建角色 [RoleUser] 转到 SCHEMA :: dbo 上的 SELECT 授予 [RoleUser] 转到 SCHEMA 上的插入 :: dbo 到 [RoleUser] GO
创建角色并授予相应权限后,将角色分配给第一步中创建的用户。
EXEC sp_addrolemember N'RoleUser'、N'App_AAD_Register_Name'。
完成所有这些步骤后,您将能够使用令牌连接到数据库。
这些步骤对我有用。
| 归档时间: |
|
| 查看次数: |
2459 次 |
| 最近记录: |