azure - 如何跨事件目录添加权限? (在azure中设置 Multi-Tenancy 应用程序时出现问题)

标签 azure oauth-2.0 azure-active-directory multi-tenant

现在我在 Azure Active Directory1 中有一个应用程序,在 Azure Active Directory2 中有一个 Web API。我的目标是让AAD1和AAD2中的用户都可以登录该应用程序。

到目前为止,我已将 App 和 Api 启用为 Multi-Tenancy ,并在 list 中将彼此添加为已知客户端应用程序。

我还没有完成的事情:将一个作为自定义域添加到另一个中,添加API和应用程序的权限,我在这两个方面遇到了一些问题。

现在我的错误消息是:

An error has occurred while authorizing access via Authorization Server: unauthorized_client AADSTS65005: Invalid > resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration.

当我尝试在 api 中授予访问权限时,在所需的权限列表中,我没有看到 Web 应用程序(位于其他目录中)。我该怎么办?

如果我将App和Api都移到同一目录下,是否可以允许其他目录的用户登录?

最佳答案

为了让您在租户 1 中看到 Web API 作为“所需权限列表”的选项,您需要将 Web API 的服务主体配置到租户 1 中。

您可以通过多种方式执行此操作,但最简单的方法可能是通过生成登录 URL 来简单地登录 Web API。一旦您使用租户 1 中的用户登录,服务主体将在租户中配置,然后成为可供选择的选项。

https://login.microsoftonline.com/common/oauth2/authorize?client_id=<appid>&response_type=code&redirect_uri=<replyurl>&resource=<resource>&prompt=consent

另一个选项可能是使用 AAD PowerShell 根据您的 Web API 应用程序 ID 创建服务主体:

New-​Azure​AD​Service​Principal

New-AzureADServicePrincipal -AccountEnabled $true -AppId $MyApp.AppId -DisplayName $App -Tags {WindowsAzureActiveDirectoryIntegratedApp}

成功将服务主体授予所需的权限后,上述错误消息就会消失。

关于azure - 如何跨事件目录添加权限? (在azure中设置 Multi-Tenancy 应用程序时出现问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532902/

相关文章:

java - Spring oauth2 : access_token isn't in response after succefull request

java - Vert.x Oauth 2 授权服务器

AzureAD邀请 guest 源 "Microsoft Account"无法登录

node.js - 在azure上socket.io传输是 'polling'而不是 'websocket'

javascript - 使用 Azure 媒体服务直播单个/静态音频文件

oauth-2.0 - portainer keycloak 20 oauth登录 "unauthorized"/"Unable to login via OAuth"

Azure Active Directory - 从 JWT token 挖掘 oAuth2Permission、appRole 和组声明

Azure Active Directory RBAC 未返回不记名 token 中的角色

azure - Azure Databricks 和 Azure Batch AI 之间有什么区别?

visual-studio - 我的 CSS 图像无法在 Windows Azure 上运行