{ o-6ren">
gpt4 book ai didi

jwt - 如何在Asp.Net Core 2.0 "AddJwtBearer"中间件中设置多个受众?

转载 作者:行者123 更新时间:2023-12-02 09:02:43 25 4
gpt4 key购买 nike

我有一个 Asp.Net Core 2.0 WebApi,它正在根据 AAD 进行身份验证:

            services.AddAuthentication(options => { options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; })
.AddJwtBearer(options =>
{
options.Authority = "https://login.microsoftonline.com/TENANT.onmicrosoft.com";
options.Audience = "CLIENT_ID";
});

我的 SPA 应用从 AAD 获取 token 并将其作为 bearer header 发送。一切正常。

我已在 Azure Scheduler 中创建了一个作业并设置了 Active Directory OAuth: Job - Active Directory OAuth

运行作业后,我收到此错误:Bearer error="invalid_token", error_description="The Audience is invalid"

当我将 AddJwtBearer(...) 中的 options.Audience 设置为 https://management.core.windows.net/该作业有效,但 SPA 无效。

我想,我需要将 Audience 设置为数组 ['CLIENT_ID', "https://management.core.windows.net/"]options.Audiencestring 类型。如果我根本不设置 Audience,Spa 和 Job 都不起作用(401 未经身份验证)。将 Audience 设置为 CLIENT_ID,https://management.core.windows.net/ 也不起作用。

有没有办法在AddJwtBearer中启用多个受众?

最佳答案

我想我遇到了和你一样的问题。为了使其正常工作,我将受众从 options 移至 TokenValidationParameters,它接受多个条目。检查下面的代码:

.AddJwtBearer(options =>
{
options.Authority = "https://login.windows.net/trades.no";
options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
ValidateIssuer = true,
ValidAudiences = new List<string>
{
"AUDIENCE1",
"AUDIENCE2"
}
};

关于jwt - 如何在Asp.Net Core 2.0 "AddJwtBearer"中间件中设置多个受众?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990509/

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