据我所知,为了使用基于Azure AD的OAuth 2.0机制获得受保护资源的选择性授权,客户端应用程序需要强制提供获取访问令牌的作用域URL。其他参数通常包括客户端ID、客户端机密(在服务主体身份验证流的情况下(、Azure AD用户名和密码等。
SqlClient已将Azure AD OAuth机制与SqlClient集成,用于授权数据库连接。因此,我想SqlClient也需要这些参数来使用Azure Active Directory身份验证方法建立与Azure SQL server的连接。但是我看不出它接受来自客户端应用程序的任何作用域。SqlClient如何获取特定Azure SQL server实例的作用域?我看到它从服务器上得到了联合身份验证信息,但我并不完全理解。
SQL Servder身份验证访问令牌所需的作用域是https://database.windows.net/.default
,代表https://database.windows.net/
资源的默认作用域/权限。
获得访问令牌后,您可以通过SqlConnection.AccessToken属性传递该令牌。