Рад, что это помогло вам, я также потратил много времени, чтобы найти это решение

я трудные времена, когда я пытаюсь использовать Azure AD B2C для проверки подлинности My Web API. Я начну с некоторого фона

Я создал мобильное приложение, которое использует Azure AD B2C для аутентификации пользователей. Я создаю WebView, который отображает этот URL:

Пользователю предлагается войти в Azure Ad, если данные для входа успешны, я получаю ответ, содержащий маркер доступа - эта часть прошла гладко, все работает правильно.

Теперь я хочу создать бэкэнд Web Api. Я создал веб-приложение ASP NET Core, которое позволяет мне выбирать метод аутентификации. Я выбираю аутентификацию Azure AD, чтобы шаблон генерировал для меня все необходимые данные. Соответствующая часть в коде здесь:

Я обновил все необходимые свойства конфигурации, чтобы они соответствовали моим настройкам Azure. В этот момент я ожидал, что смогу вызывать API, используя токен доступа, полученный в мобильном приложении. Я запускаю мобильное приложение локально, выполнил вход, получил токен доступа, скопировал его и попытался вызвать мой веб-интерфейс API (размещенный в IIS express) с помощью почтальона (с заголовком авторизации «Bearer ...»). К сожалению, без удачи - я получаю 401 со следующим заголовком:

Ошибка носителя = "invalid_token", error_description = "Ключ подписи не найден"

Я думал, что токена достаточно для Авторизации API - я понимаю, что в этом весь смысл OAuth. Я что-то пропустил ? Должен ли я иметь некоторые дополнительные настройки? Я заметил, что в конфигурации отсутствует политика входа (которая, по-видимому, требуется для имени AD B2C, поэтому я попытался добавить это:

var validationParameters = new TokenValidationParameters
        {
            AuthenticationType = "MY_POLICY", 
        };

        app.UseJwtBearerAuthentication(new JwtBearerOptions
        {
            Authority = Configuration["Authentication:AzureAd:AADInstance"] + Configuration["Authentication:AzureAd:TenantId"],
            Audience = Configuration["Authentication:AzureAd:Audience"],
            TokenValidationParameters = validationParameters
        });

Но это тоже не сработало. Буду признателен за любую помощь.

РЕДАКТИРОВАТЬ

Я обнаружил следующую ошибку в журналах Visual Studio:

Носитель не был аутентифицирован. Сообщение об ошибке: IDX10501: Ошибка проверки подписи. Невозможно сопоставить 'kid': '...'

Ответы на вопрос(1)

Ваш ответ на вопрос