Проверка токена доступа к рекламе Azure в веб-интерфейсе API завершается неудачей только на одном сервере / этапе - PullRequest
0 голосов
/ 05 декабря 2018

Я создал приложение для проверки правильности токена.Это приложение представляет собой веб-интерфейс API, который содержит только один контроллер с одной конечной точкой.Контроллер имеет атрибут [Authorize].Если я добавил частичный Startup.cs, который вызывает запуск конфигурации при запуске приложения:

    public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}

Также я создал Startup.Auth.cs, который обрабатывает конфигурацию:

    public void ConfigureAuth(IAppBuilder app)
{
    app.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
        {
            Audience = ConfigurationManager.AppSettings["ida:Audience"],
            Tenant = ConfigurationManager.AppSettings["ida:Tenant"], 
ValidIssuer = Configuration Manager. AppSettings["ida:Issuer"] 
        }, 
Metadata Adress = Configuration Manager. AppSettings["ida:MetaData"] );
}

Все, что я делаю во внешнем интерфейсе, это вызываю конечную точку и отправляю токен доступа с допустимой аудиторией в заголовке (псевдокод):

... Headers.add("Authorization", "Bearer ey... "

У меня есть 3 этапа на 3 серверах (test, Dev, prod),На тесте и Dev токен распознается как действительный, и конечная точка возвращает сообщение об успехе.При получении я получаю следующую ошибку:

IDX10501: Ошибка проверки подписи.Невозможно сопоставить 'kid': '' 4Wqj ... '

Когда я смотрю на мои jwks из документа обнаружения, я могу проверить, что данный jwk с указанным ребенком существует и соответствуетребенок в маркере доступа.

Все три сервера находятся в одной интрасети.

Я понятия не имею, в чем причина этой ошибки только на сервере prod.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...