【问题标题】:Multitenant app issue accessing graph api访问图形 api 的多租户应用程序问题
【发布时间】:2020-06-09 16:37:01
【问题描述】:

我有一个带有 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】:

    请参考以下文章:

    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

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 2020-06-17
      • 2011-08-21
      • 1970-01-01
      相关资源
      最近更新 更多