Различные полномочия для пользовательских JWT и JWT client_credentials - PullRequest
1 голос
/ 01 ноября 2019

Я заметил, что когда я получаю JWT из Azure AD после входа в систему, JWT указывает «https://login.microsoftonline.com"» в качестве органа выдачи. Однако, если я получаю JWT, используя поток client_credentials, полномочия выдачи«https://sts.windows.net". Наличие разных прав выдачи затрудняет настройку приложения для использования обоих типов JWT, поскольку в процессе настройки можно указать только одно право доступа.

Существует ли причина, по которой Microsoftиспользует разные органы выдачи для JWT? Я предположил, что это потому, что MSFT хочет разделить два сценария использования. То есть они хотят препятствовать созданию приложений, которые переключаются между пользовательским и не основанным контекстами безопасности. Есть ли какая-то другая причина, по которой я скучаю?

1 Ответ

0 голосов
/ 01 ноября 2019

Изменения в формате значения полномочий эмитента для наблюдаемого токена, скорее всего, связаны с различными версиями токена, например токен Azure AD v1.0 или токен Azure AD v2.0 (и, вероятно, не потому, что вы использовалипоток учетных данных клиента или, скажем, поток кода авторизации для получения токена доступа для того же приложения)

токен Azure AD v2.0 - формат эмитента

    https://login.microsoftonline.com/<Azure AD Tenant GUID>/v2.0 

токен Azure AD v1.0 - формат эмитента

    https://sts.windows.net/<Azure AD Tenant GUID>/ 

Пожалуйста, ознакомьтесь с этой документацией Microsoft - Справочник по токенам доступа - Образцы токенов

Обратите внимание, что для каждого из приведенных здесь образцов токенов есть формат эмитента.

Также обратите внимание на важное примечание в той же общедоступной ссылке на документацию Microsoft.

Как сказано в документации, токены создаются на основе «аудитории». В нем также приведен пример использования accessTokenAcceptedVersion.

enter image description here

Вы упоминаете, что даже при использовании конечной точки Azure AD v2 для получения токена с клиентомпоток учетных данных, вы видите эмитента в соответствии с форматом v1.

Я думаю, что приложение, для которого вы получаете токен, важно здесь, и если оно принимает токен v1, вы получите обратно токен v1 (даже если вы использовали конечную точку v2),

Также, если возможно, поделитесь расшифрованными токенами (за исключением конфиденциальной информации) в своем вопросе для большей ясности.

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