gpt4 book ai didi

azure - 获取 Azure AD 用户组时遇到问题

转载 作者:行者123 更新时间:2023-12-02 23:08:26 24 4
gpt4 key购买 nike

我目前正在使用 Node.js Passport 库通过 OIDC 策略以及使用客户端 ID 和 key 的 Azure 注册应用程序进行身份验证。

http://login.microsoftonline.com/{org id}/v2.0/.well-known/openid-configuration

我在获取登录者的用户个人资料时没有遇到任何问题,但在尝试获取组时却遇到了困难。在我的应用程序中,我需要根据用户的事件目录组对用户进行授权。我正在取回这段 json:

"_claim_names\":{\"groups\":\"src1\"},\"_claim_sources\":{\"src1\":{\"endpoint\":\"https://graph.windows.net/{org guid}/users/{user guid}/getMemberObjects\"}}

我不确定我需要做什么来使用它来获取组。我尝试生成一个不记名 token ,将其传递到 header 中,然后获取组,但它说我未经授权使用 Postman。我需要应用程序中的某些权限吗?另外,当我尝试使用 graph.microsoft.com 时,为什么它使用 graph.windows.net ?

用户登录后是否有更简单的方法来执行此操作?

最佳答案

当用户是多个群组的成员时,超额指示器声明

您作为相关共享 json 的一部分返回的声明是超额指示器声明。

"_claim_names\":{\"groups\":\"src1\"},\"_claim_sources\":{\"src1\":{\"endpoint\":\"https://graph.windows.net/{org guid}/users/{user guid}/getMemberObjects\"}}

这意味着用户是许多组的成员,您需要单独查询该信息,而不是将所有组的信息作为 token 的一部分(这会使 token 太大)。

在这里阅读更多相关信息:Access Tokens Reference

enter image description here

如何获取群组信息?

您的应用程序需要单独调用 Microsoft Graph API 以获取用户的组信息。

相关 Microsoft Graph API

您的应用程序所需的权限

上面的每个 API 链接都提到了文档中所需的委托(delegate)或应用程序权限。

您需要更新 Azure AD 中的应用注册以获取相关权限(如果所需权限需要管理员同意,还需要获得管理员同意)

app registrations preview experience

调用 Microsoft Graph API 的 token

您提到您已尝试生成不记名 token ,并将其传递到 header 中,但出现未经授权的错误。

完成应用程序的权限更改后,请从应用程序获取专门用于 Microsoft Graph API 的 token 。用于访问应用程序的不记名 token 可能无法直接与 Microsoft Graph API 配合使用。

另请确保您获得管理员同意,以防任何权限需要管理员同意。如果是单租户应用程序,则应由管理员直接从 azure 门户“授予权限”,如果是 Multi-Tenancy 应用程序,您可以使用 Admin consent endpoint

代码示例:这是一个快速tutorial for calling Microsoft Graph using Node.js ..您也可能会找到其他好的。

Azure AD Graph API (graph.windows.net) 与 Microsoft Graph API (graph.microsoft.com)

您对端点有一个有效的问题。“另外,当我尝试使用 graph.microsoft.com 时,为什么它使用 graph.windows.net?”

一般建议使用较新的 Microsoft Graph API,除非 Microsoft Graph 无法提供您正在查找的功能/信息,并且只有 Azure AD Graph API 可以提供帮助。在这里阅读有关推荐和比较的更多信息:Microsoft Graph or Azure AD Graph

由于有关组的信息已在 Microsoft Graph 的 v1 端点(非测试版)中提供,因此您应该使用 Microsoft Graph API。

以下是一些相关的 SO 帖子:SO Post 1SO Post 2

关于azure - 获取 Azure AD 用户组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55463527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com