Управлению API Azure невозможно авторизоваться с помощью Azure b2c: Сбой подписи - PullRequest
0 голосов
/ 04 мая 2019

Я настроил в b2c бэкэнд-приложение (api) и azure apim devportal (клиентское приложение). Я предоставил доступ к API бэкенда из клиентского приложения я имею использовал это для настройки oauth-аутентификации в управлении API-интерфейсом Azure.

Я использую поток кода авторизации. Для проверки токена я использовал входящую политику:

 <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="Bearer" require-signed-tokens="true" clock-skew="0">
        <openid-config url="https://<domain>/tenantid/v2.0/.well-known/openid-configuration?p=signinsignup_policy" />
        <required-claims>
            <claim name="aud">
                <value><appid for backend app></value>
            </claim>
        </required-claims>
    </validate-jwt>

При попытке с портала разработчиков apim Я получаю сообщение об ошибке ниже при использовании полученного токена:.

Ошибка проверки JWT: IDX10501: Ошибка проверки подписи. Невозможно сопоставить ключи

Я настроил внутренний идентификатор приложения API в качестве ресурса, а user_impersonation - в качестве значения по умолчанию. Токен декодирования Я вижу тот же бэкэнд appid, что и aud. Я также пытался использовать appid uri в качестве ресурса, но вижу ту же ошибку.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 мая 2019

Существует несколько сценариев, которые могут привести к этой ошибке. Вы проверили ниже темы

Ошибка Azure AD B2C - IDX10501: сбой проверки подписи

https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/issues/18

Если выше не помогли: я предполагаю, что вы используете пользовательские политики. При создании Signingkey и шифрования вы должны выполнить шаги, которые описаны в https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-get-started-custom.

Если вы пропустите или измените Тип ключа / Использование ключа при создании TokenSigning & TokenEncryption keys есть шанс получить эту проблему.

Ниже приведены шаги, которые я пробовал при интеграции B2C с API-интерфейсом. И это работает, как ожидалось

  • Создан веб-API и интегрированный B2C (подписано https://azure.microsoft.com/en-in/resources/samples/active-directory-b2c-dotnet-webapp-and-webapi/)
    • Интегрированный Swagger
  • Создана служба управления API Azure
    • Добавлен API с использованием «OpenAPI»
    • Заданный URL спецификации OpenApi как https://xxx.azurewebsites.net/Swagger/docs/v1 и созданный API
    • При создании API Выбирайте действительные продукты, которые сопоставляются существующим пользователям для тестирования
  • Перешел на портал разработчиков APIM и протестирован
    • Во время тестирования добавлен access_token в качестве токена носителя авторизации заголовка и протестирован.

НТН

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