在 Azure 应用程序中允许 database.windows.net 范围的位置

where to allow database.windows.net scope in azure application

正在尝试使用范围 windows.database.net/user_impersonation.

获取 Azure SQL 数据库的访问令牌

我正在将请求发送至 https://login.microsoftonline.com/{tenant_name}/oauth2/v2.0/token

当范围为 storage.azure.com/user_impersonation 时请求成功运行。我认为这是因为我已在我的应用程序的 API 权限中授予对该范围的访问权限。但是,当请求范围 'https://database.windows.net/user_impersonation' 时,响应为:AADSTS65001:用户或管理员未同意使用 ID

的应用程序

除了我在 Azure 门户中我的应用程序的 API 权限部分找不到此权限。我如何授予访问权限?

感谢@Gaurav Mantri的宝贵建议。将您的建议作为答案发布,以帮助其他社区成员。

AADSTS65001: The user or administrator has not consented to use the application with ID

如果您在范围级别没有有效的 API 权限,通常会发生此错误。如果您尝试获取 Azure SQL 数据库的访问令牌,则必须启用范围的 API 权限:windows.database.net/user_impersonation.

要找到这些权限,请按照以下步骤操作:

转到 Azure 门户 -> Azure AD -> 应用程序注册 -> 你的应用程序 -> API 权限

如果在 API 中找不到 Azure SQL 数据库,则必须公开 API。

添加该权限后,您可以避免该错误并可以获得访问令牌。

如果找不到那些 API 权限,请不要搜索“SQL”尝试“Azure SQL” 因为 Azure 门户仅支持 Begins With 过滤器!

更多详细信息,请参考以下链接:

https://docs.microsoft.com/en-us/azure/azure-sql/database/active-directory-interactive-connect-azure-sql-db#configure-your-c-application-in-the-azure-portal

https://blog.hompus.nl/2017/03/25/missing-azure-apis-when-adding-permissions-to-an-azure-ad-app/