【问题标题】:AzureADB2C.UI - access to OpenIdConnectEvents (OnTokenValidated)AzureADB2C.UI - 访问 OpenIdConnectEvents (OnTokenValidated)
【发布时间】:2020-08-12 18:11:46
【问题描述】:

我使用库 AzureADB2C.UI 来启用 Azure ADB2C 身份验证。

但现在我想在身份验证后添加自定义声明,并且我想在 OpenIdConnectEvents.OnTokenValidated 期间执行此操作。但这些事件并未公开。

有什么建议在这种情况下添加自定义声明最合适的方法是什么?并且最好继续使用该包以避免过多的自定义代码。我尝试了following on SO,但没有成功。

非常感谢

【问题讨论】:

    标签: asp.net-core azure-ad-b2c claims


    【解决方案1】:

    您可以参考以下代码示例将声明添加到用户原则中:

    services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
                .AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
    
    services.Configure<OpenIdConnectOptions>(AzureADB2CDefaults.OpenIdScheme, options =>
    {
    
        options.Events = new OpenIdConnectEvents
        {
    
            OnTokenValidated =  ctx =>
            {
                //query the user's groups using api 
    
                // add claims
                var claims = new List<Claim>
                {
                    new Claim("groups", xxxx-xx-xx)
                };
                var appIdentity = new ClaimsIdentity(claims);
    
                ctx.Principal.AddIdentity(appIdentity);
    
                return Task.CompletedTask;
            },   
        };
    });
    

    【讨论】:

    • 谢谢!因此,在stackoverflow.com/questions/59664401/… 的答案中设置 ResponseType 会破坏这一点。我会更深入地尝试理解这一点。再次感谢。
    • 我不小心有两次AzureADB2CDefaults.AuthenticationScheme 而不是OpenIdScheme
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2021-02-05
    • 2020-09-21
    • 1970-01-01
    • 2022-09-29
    • 2018-03-30
    相关资源
    最近更新 更多