在将.net应用程序连接到本地数据库时,我们总是使用可信的连接连接字符串。
我们正在将我们的平台移植到Azure上,包括:虚拟机上的应用程序,Azure领域服务Sql托管实例
我们有多个应用程序,每个应用程序都作为特定的域用户运行,并使用到SQL托管实例上相应数据库的可信连接。
然而,尝试使用来自域连接虚拟机的受信任连接(例如,通过SSMS结果在erro 'Azure Active Directory -集成‘中会出现错误:
“仅在联合流程中支持集成Windows身份验证。”
从Microsoft文档来看,可以使用“无缝单点登录”与SQL托管实例建立可信连接,但是这些文档只讨论了连接到Azure Active的前提域。
有人能把我引向正确的方向吗?在此设置中可以进行可信连接吗?如果不是,连接字符串到SQL托管实例的“最佳实践”是什么?
提前感谢
发布于 2022-09-17 22:17:35
Azure本机应用程序的最佳实践是使用管理身份连接到托管实例。见eg:从应用程序连接到资源,而不处理凭据。
每个Azure虚拟机、App、Function等都可以提供一个AAD标识。然后,运行的代码可以为资源生成访问令牌(如托管实例),而无需接触密码或客户端秘密。
已经向SQL客户端库中添加了几种身份验证策略,以方便这一点。也可以在Server客户端中使用Azure.Identity或本地托管身份令牌端点库获取自己的访问令牌和利用这一点。
移动应用程序的另一种选择是使用域连接的VM并使用托管实例的Windows身份验证。这允许您继续使用传统的“受信任的Connection=true”,从运行在Azure中的VM到托管实例。
https://stackoverflow.com/questions/73758390
复制相似问题