【问题标题】:How to access and filter groups in JWT token using Azure AD?如何使用 Azure AD 访问和筛选 JWT 令牌中的组?
【发布时间】:2020-01-24 12:32:19
【问题描述】:

网络核心应用程序。我正在返回返回所有组的 JWT 令牌。我在清单中有以下配置。

"groupMembershipClaims": "SecurityGroup",
    "optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "groups",
                "source": null,
                "essential": false,
                "additionalProperties": []
            }
        ]
    },

当前用户有 100 或 200 个组。所以我想通过graph api返回组。除此之外,我只想返回名称以 AP 开头的组。我可以知道这可能吗?在这方面的任何帮助表示赞赏。谢谢

【问题讨论】:

    标签: azure oauth-2.0 jwt azure-active-directory claims-based-identity


    【解决方案1】:

    目前不可能。 如果用户有超过 200 个组,他​​们将不在令牌中。 在这些情况下,您必须通过 Graph API 查询组成员资格。

    如果您只关心少数几个组,您可以查询这些组的成员并查看用户是否在其中。 获取用户组或获取您关心的组的成员是否更快,取决于数据。

    如果这是这些检查的目的,您还可以将用户/组分配给应用程序中的角色。

    【讨论】:

    • 感谢您的帮助。如果我想通过图形 api 访问组,那么我知道获取组的 url。是否可以像这样包含“accessToken”:[ {“name”:“groups”,“source”:“graph.windows.net/KmartAus.onmicrosoft.com/…”,“essential”:false,“additionalProperties”:[] }
    • 如果我通过 Graph API 获取组,那么我需要在我的代码中单独实现吗?如果存在较少数量的组,是否可以将组名作为令牌内的选项?另外我听说现在微软只限制了 5 个组,很少有文章说 200 个。那么哪个是正确的?
    • 较小的限制可能是针对角色或在通过隐式授权流获取令牌时。您无法在令牌中获取的名称。
    • 如果我试图在我的令牌中只返回 50 个组而没有图形 api,那么在这种情况下,有没有办法过滤掉这些组,例如组名以 ap 开头的东西?
    • 不,我不这么认为。要么都是安全组,要么什么都没有
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2020-07-12
    • 1970-01-01
    • 2016-12-02
    • 2018-01-15
    • 2020-12-21
    • 2023-01-19
    相关资源
    最近更新 更多