Проверка Azure B2 C токена в приложении, которое не аутентифицировало пользователя - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть сценарий, при котором пользователь может войти / зарегистрироваться до Azure AD B2 C из внешнего интерфейса. Там после того, как они будут делать вызовы к API-приложению (с токеном JWT) отдельно от этого интерфейса. Требуется, чтобы приложение API проверяло токен пользователя и решало, выполнять ли запрос. Я могу отправить токен JWT из внешнего интерфейса в API, используя заголовок auth. Я также могу получить его в API. Задача состоит в том, чтобы теперь подтвердить, что этот токен не был сфальсифицирован посредником или просто оскорблен кем-то, кто его заполучил. Я знаю, что каждый токен имеет временную метку и может быть проверен на срок действия. Однако этого недостаточно. Мне нужно как-то проверить его на Azure AD B2 C.

Обновление: API - приложение Azure на основе NodeJs * Functions

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вы можете проверить подписи токена в вашем приложении API. Токен подписан асимметричными c ключами.

Каждый поток пользователя в AzureB2 C имеет связанный документ метаданных, в котором есть все подробности о ключах в теге "jwks_uri"

enter image description here

"jwks_uri": "https://xxxxxx.b2clogin.com/xxxxxxxxx.onmicrosoft.com/discovery/v2.0/keys?p=b2c_1_pe",

вы можете получить ключевые сведения по ссылке под тегом jwks_uri и используйте его для проверки подписи. Также помните, что эти ключи поворачиваются, поэтому вам нужно получать последние версии каждые 24 часа.

Образец: - https://github.com/azure-ad-b2c/samples/tree/master/policies/user_info

Do c https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview

1 голос
/ 01 апреля 2020

См. образец . API защищен с помощью UseOAuthBearerAuthentication для проверки подписи токена. Все токены Azure AD B2 C являются подписанными JWT. В примере кода будет найдена конечная точка метаданных вашей комбинации политики + арендатора и используется ключ publi c, чтобы убедиться, что подпись токена является действительной / неизменной и подписана владельцем закрытого ключа (AAD B2 C) * 1006. *

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