繁体   English   中英

如何跨活动目录添加权限? (有关在天蓝色中设置多租户应用程序的问题)

[英]how to add permissions across active directory? (problems with setting up multi-tenant app in azure)

现在,我在Azure活动目录1中有一个应用程序,在Azure活动目录2中有一个Web API。 我的目的是允许AAD1和AAD2中的用户都可以登录该应用程序。

到目前为止,我已将App和Api启用为多租户,并在清单中将它们彼此添加为已知的客户端应用程序。

我尚未完成的工作:将一个作为自定义域添加到另一个中,向btw api和app添加权限,而我在这两个上遇到了一些问题。

现在我的错误信息是:

通过授权服务器授权访问时发生错误:authenticated_client AADSTS65005:无效>资源。 客户端已请求访问未在客户端应用程序注册的请求权限中列出的资源。

当我尝试在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创建服务主体:

新建-天青AD服务主体

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

一旦成功将服务主体置于所需的权限上,上述错误消息就会消失。

除了Shawn Tabrizi的答案外,您还可以将API指定为该应用程序已知客户端应用程序。

因此,在您的应用清单中:

"knownClientApplications": [
  "your-api-client-id"
]

然后,如果您尝试对应用进行身份验证,它也可以同时同意该API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM