gpt4 book ai didi

c# - .net core 3 - b2c roles auth - 声明注入(inject)不起作用

转载 作者:行者123 更新时间:2023-12-04 17:32:55 24 4
gpt4 key购买 nike

我正在尝试向 AzureB2C 声明中注入(inject)自定义声明,以使基于角色的授权生效。

开发堆栈是:

VS2019 预览版 16.3 - .net Core 3.0 预览版 9 - Blazor 服务器端。 Azure 应用服务。 B2C邮箱+LinkedIn。

https://blog.denious.net/azure-b2c-role-based-authorization-part-1/

这似乎应该可行,但至少在 .net core 3 中不行。

我还修改了建议的解决方案,改为使用 OpenIDConnect 方案和事件:

services.PostConfigure<OpenIdConnectEvents>(AzureADB2CDefaults.OpenIdScheme,
options =>
{
options.OnTokenValidated = context =>
{
// since we're using AADB2C only, the first identity is the only identity
var identity = context.Principal.Identities.First();

Trace.WriteLine("Inside OnTokenResponseReceived");

// add our test role to the identity's claims collection with the right type
var extraClaim = new Claim(identity.RoleClaimType, "Extra");
identity.AddClaim(extraClaim);

return Task.CompletedTask;
};
});

似乎 OnTokenValidated 永远不会为 JwtBearerEvents 或 OpenIdConnectEvents 触发 - 尽管我显然已经登录并且 authn 已经工作。

最佳答案

我终于使用 https://davidwalschots.com/how-to-add-additional-claims-to-the-httpcontext-user/ 中的 IClaimTransformation 方法实现了这项工作

如果这种方法有任何陷阱、警告等,我很乐意听取任何人的意见。

关于c# - .net core 3 - b2c roles auth - 声明注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57923091/

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