私は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);
}
}
ここには何が欠けていますか?助けてくれますか?
pcdevが彼のコメントで言ったように、あなたに
で送信トークンを確認することができますか? 'Authorization Bearer <あなたのトークンはここに行く>というヘッダーがあるはずです。また、[この回答](https://stackoverflow.com/a/45833632/2869344)を見て、APIの設定に役立つかどうかを確認してください。 – pcdev
はい、私はヘッダを持っています... – HLourenco