gpt4 book ai didi

azure - 将 Multi-Tenancy Azure AD 与 Azure AD B2C 结合使用时,如何在颁发的 token 中包含角色?

转载 作者:行者123 更新时间:2023-12-03 03:37:55 29 4
gpt4 key购买 nike

我已经set up sign-in for multi-tenant Azure Active Directory using custom policies in Azure Active Directory B2C ,因此 Azure AD 的管理员可以管理自己的用户。登录正常,我现在想要支持应用角色。

我已在 Azure AD B2C 应用程序的应用程序 list 中定义了应用程序角色,并且可以在 Azure AD 中选择这些角色。到目前为止,一切顺利,但是登录时获取的 token 中不包含 roles 声明。我发现 roles 声明不是 included by default in tokens issued by Azure AD B2C ,但是是否有可能包含这些角色?

角色在应用程序 list 中定义:

Application Manifest

可以在 Azure AD 中选择角色:

Users and groups Add assignment

最佳答案

请检查以下引用是否可以解决:

  1. 请尝试将用户分配给以下位置的相同应用角色:azure ad 租户,通过将用户/组分配给创建的应用程序角色,就像您所做的那样。然后刷新门户和应用程序,然后然后尝试从 b2c 端点获取 token 。

  2. 请尝试检查 azure ad B2C 中自定义声明的使用情况,其中消费者可以在注册过程中选择所需的角色,该角色也会在 token 中返回。引用: https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-rest-api-step-custom了解更多详情。

  3. 尝试创建一个名称为 extension_role 的扩展属性。读取登录/注册时的属性:

    <TechnicalProfile Id="AAD-UserReadUsingObjectId">
    <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    </Metadata>
    <IncludeInSso>false</IncludeInSso>
    <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
    </InputClaims>
    <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="extension_role" />
    </OutputClaims>
    <IncludeTechnicalProfile ReferenceId="AAD-Common" />
    </TechnicalProfile>

引用:custom-roles-on-azure-ad-b2c|SO

  • 否则,您可以尝试手动配置应用以调用 Microsoft graph api 并获取 token 中的角色:
  • reference

         public async Task<string> GetUserRoleByObjectId(string objectId)
    {
    return await SendGraphGetRequest("/users/" + objectId +
    "/$links/memberOf", null);
    }

    其他引用:

    1. Can a B2C Access Token include app roles assigned to the user(github)

    关于azure - 将 Multi-Tenancy Azure AD 与 Azure AD B2C 结合使用时,如何在颁发的 token 中包含角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72645617/

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