我有一個webapi,我需要身份驗證,我在V1中使用AAD執行此操作。使用Azure Active Directory進行netcore2身份驗證:「簽名無效」
我都集,與郵遞員我可以得到一個令牌,但是,每當我試圖做一個請求到API,它給我的錯誤401:
承載錯誤=「INVALID_TOKEN」 ERROR_DESCRIPTION = 「簽名是無效」
這是ConfigurationServices的代碼:
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));
這是天藍色認證生成的類:
public static AuthenticationBuilder AddAzureAdBearer(this AuthenticationBuilder builder)
=> builder.AddAzureAdBearer(_ => { });
public static AuthenticationBuilder AddAzureAdBearer(this AuthenticationBuilder builder, Action<AzureAdOptions> configureOptions)
{
builder.Services.Configure(configureOptions);
builder.Services.AddSingleton<IConfigureOptions<JwtBearerOptions>, ConfigureAzureOptions>();
builder.AddJwtBearer();
return builder;
}
private class ConfigureAzureOptions: IConfigureNamedOptions<JwtBearerOptions>
{
private readonly AzureAdOptions _azureOptions;
public ConfigureAzureOptions(IOptions<AzureAdOptions> azureOptions)
{
_azureOptions = azureOptions.Value;
}
public void Configure(string name, JwtBearerOptions options)
{
options.Audience = _azureOptions.ClientId;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
}
public void Configure(JwtBearerOptions options)
{
Configure(Options.DefaultName, options);
}
}
這裏缺少什麼?可以請幫忙嗎?
謝謝
送你如何發送承載令牌,令牌?應該有一個頭'授權持有人<你的代幣到這裏>'。也可以看看[這個答案](https://stackoverflow.com/a/45833632/2869344),看看它是否可以幫助你使用API配置。 – pcdev
是的,我有頭... – HLourenco