Аутентификация работает. Вызов метода на моем API с использованием Downstreamapi.callaporuserasync также работает, но только если я установил OpenIdConnect в качестве схемы автоза по умолчанию. Когда это не схема автоаты по умолчанию, я получаю ошибку «не могу определить экземпляр облака. Предоставленная схема аутентификации была« ». Microsoft.identity.Web для вывода« Identity.Application »в качестве схемы аутентификации.«
Как Указывать ли я схему аутентификации?
Код: Выделить всё
builder.Services.AddAuthentication(/*OpenIdConnectDefaults.AuthenticationScheme*/)
.AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi(
builder.Configuration.GetSection("X:Scopes").Get()
)
.AddInMemoryTokenCaches()
.AddDownstreamApi("X", builder.Configuration.GetSection("X"));
< /code>
Метод контроллера Вызовы API: < /p>
[Authorize(AuthenticationSchemes = OpenIdConnectDefaults.AuthenticationScheme)]
[AuthorizeForScopes(ScopeKeySection = "X:Scopes")]
public async Task GetSomething()
{
HttpResponseMessage response = await _downstreamApi.CallApiForUserAsync("X", options =>
{
options.RelativePath = "path/Something";
});
...
Подробнее здесь: https://stackoverflow.com/questions/794 ... -authentic