ฉันมี webapi และต้องมีการตรวจสอบสิทธิ์ ฉันกำลังทำสิ่งนี้กับ AAD ใน V1
ฉันเตรียมทุกอย่างไว้แล้ว สำหรับบุรุษไปรษณีย์ฉันสามารถได้รับโทเค็น แต่เมื่อใดก็ตามที่ฉันพยายามส่งคำขอไปยัง API มันทำให้ฉันมีข้อผิดพลาด 401:
ผู้ถือข้อผิดพลาด = "invalid_token", error_description = "ลายเซ็นไม่ถูกต้อง"
นี่คือรหัสใน ConfigurationServices:
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));
นี่คือคลาสที่สร้างขึ้นสำหรับการรับรองความถูกต้องของ Azure:
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);
}
}
มีอะไรหายไปที่นี่? โปรดช่วยได้ไหม?
ขอบคุณ
Authorization Bearer <your token goes here>
ดูที่คำตอบนี้เพื่อดูว่าจะช่วยคุณในการกำหนดค่า API ได้หรือไม่ - person pcdev   schedule 27.09.2017