多租户应用程序问题访问图形API

问题描述 投票:0回答:1

我有一个带有masal和Web Api的多租户应用程序js客户端,一切正常。用户可以登录并使用Api。

我正在尝试通过Graph Api阅读用户所属的广告组。对于在已注册应用程序的同一租户上的用户而言,它运行良好,但是如果我使用的是来自其他租户的用户,则我会遇到403(权限不足,无法完成操作。)错误,尝试访问/ users / {userId} / memberOf端点。在Azure和客户端和服务器上注册应用程序后,我在Api权限部分(应用程序权限)中设置了适当的权限,我认为是这种情况,但是我必须缺少其他内容。知道我缺少什么吗?

.net-core jwt azure-active-directory asp.net-core-webapi msal
1个回答
0
投票

请参阅以下文章:

Understand user and admin consent

对于多租户应用程序,该应用程序的初始注册存在于开发人员使用的Azure AD租户中。当来自其他租户的用户首次登录该应用程序时,Azure AD要求他们同意该应用程序请求的权限。如果他们同意,则会在用户的租户中创建一个称为服务主体的应用程序表示,然后可以继续登录。在目录中还会创建一个委派,记录用户对应用程序的同意。

您的应用程序使用需要管理员同意的权限(/users/{userId}/memberOf),如果普通用户尝试登录到请求需要管理员同意的委派权限的应用程序,则您的应用程序会收到错误消息。

在Azure AD V2.0中,您可以将用户重定向到Microsoft身份平台管理员同意终结点:

// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions
&scope=
https://graph.microsoft.com/calendars.read 
https://graph.microsoft.com/mail.send

请参见文档:Admin consent on the Microsoft identity platform

© www.soinside.com 2019 - 2024. All rights reserved.