我有一个Windows客户端应用程序直接连接到SQL Server。 我现在正在使用SQL Server身份验证,但是我想替换它以提高安全性。 (我不想将凭据与应用程序一起部署)
我想使用Azure AD提供对应用程序的访问(并将访问令牌转发到数据库)
我所需的设置如下所示: 我有一个Azure AD应用程序注册(服务主体)。 -我分配了单独使用该应用程序的权限->企业应用程序->需要用户分配->是 -我授予SQL数据库上的应用程序(服务主体)权限。 -现在我要做的是以登录用户身份访问数据库(API权限Azure SQL Server-> user_impersonation),但这意味着我必须直接向数据库中的所有单个用户授予访问权限。 我想作为应用程序访问数据库。
这可能吗?如果可以,怎么办?
现在,我能够使用ADAL作为服务主体连接到DB,但是随后我必须为服务主体创建一个客户端机密,并将其与应用程序一起部署->不安全。或者,我可以将MSAL与user_delegation一起使用,并以登录用户身份访问数据库,但这意味着我必须给他直接访问数据库的权限,并且他可以使用与应用程序相同的其他方式(例如,在MSSMS中)访问数据库。
答案 0 :(得分:1)
看起来您想要使用的是托管身份。
这里有一个教程:https://docs.microsoft.com/en-gb/azure/app-service/app-service-web-tutorial-connect-msi
我应该警告您该托管身份功能是新功能,您需要注意您的应用程序正在使用哪个版本的.Net Framework。某些Azure App Service和其他资源尚未更新为支持托管身份的.Net框架(据我所知)。