У меня есть веб-API-сайт asp.net Azure, скажем, myapi.azuresites.net, и мой личный домен — myapi.mycompany.net. В моем веб-API я использую промежуточное ПО owin для проверки входящего токена.
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = Constants.AzureActiveDirectoryTenant,
TokenValidationParameters = new TokenValidationParameters
{
ValidateAudience = true,
// These values will be checked against what is received in the access token.
ValidAudiences = Constants.AzureActiveDirectoryValidAudiences
},
Provider = new OAuthBearerAuthenticationProviderEx()
});
Я зарегистрировал приложение в Azure AD и добавил секрет клиента.
От почтальона я могу получить токен oauth2 из Azure AD с идентификатором приложения и секретом клиента.
Я включил этот токен в заголовок и отправил его на мой лазурный веб-API.
В моем коде используется промежуточное ПО owin для проверки токена.
Если я отправлю запрос на myapi.mycompany.net, проверка токена сработает.
Если я отправлю запрос на myapi.azuresites.net, проверка токена завершится ошибкой.
Я не могу понять, почему проверка токена не выполняется при непосредственном вызове лазурного сайта. Если я возьму файл web.config лазурного сайта на свой локальный компьютер, он тоже будет работать там. Я подозревал, что в моем приложении AD нет правильных URL-адресов перенаправления, но проверил это и не вижу очевидной проблемы.
Итак, есть ли способ зарегистрировать некоторую информацию о том, почему аутентификация не удалась? Поскольку это удаленный лазурный сайт, могу ли я перехватить этот сбой как исключение и удалить некоторые из них?