在ASP Core ADB2C应用程序中缺少OID Claim。

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

我有一个工作的ASP.NET Core ADB2C应用程序,它使用自定义策略,并配置为验证本地(ADB2C)和谷歌帐户。

我最近注意到在令牌中缺少了OID声明。

public Task OnTokenValidated(TokenValidatedContext context)
{
    _onTokenValidated?.Invoke(context);
    return Task.Run(async () =>
    {
        try
        {
            var claims = context.SecurityToken.Claims;

enter image description here

问题

当我使用用户流时,OID索赔肯定是存在的。现在我使用自定义策略,基于 github的active-directory-b2c-custom-policy-starterpackSocialAndLocalAccounts。

我知道有很多关于输入和输出请求以及转换的东西,但我在自定义策略方面真的是初学者,无法诊断出缺少什么......

asp.net-core azure-ad-b2c claims objectid
1个回答
1
投票

在该默认的自定义策略中,SignUp或Signin.xml包含了这个内容。

<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>

这意味着对象的id在 "子 "声明中 如果你想要oid声明 你可以像这样添加:

<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/>
© www.soinside.com 2019 - 2024. All rights reserved.