Azure Проверка токена AD - зачем проверять эмитента? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть служба API, которая использует токены Azure AD для аутентификации и авторизации. Я планирую использовать для этого библиотеку https://github.com/AzureAD/passport-azure-ad, и мне нужно использовать BearerStrategy - https://github.com/AzureAD/passport-azure-ad#42 -bearerstrategy . Меня смущает свойство validateIssuer. Если я правильно понимаю документацию, конфигурации validateIssuer и issuer необходимо использовать вместе. issuer - это URL-адрес, который содержит идентификатор клиента и версию AD (1 или 2), использованную для выпуска токена. Как службе API, которая будет проверять токен, зачем службе API заботиться о версии AD, которая использовалась для выдачи токена? И, следовательно, зачем ему проверять URL-адрес эмитента, если он должен заботиться только об идентификаторе клиента? Я пытаюсь понять, почему необходимо проверять весь URL-адрес эмитента, а не только идентификатор клиента.

1 Ответ

0 голосов
/ 10 июля 2020

В сервисе API валидаторы определены в исходном файле библиотеки, например, Microsoft.IdentityModel.Tokens/Validators.cs. который проверяет токен на основе параметров проверки токена (Issuer, ValidateIssuer, signature et c ..).

Эмитент содержит URL-адрес фактического клиента с конечными точками v1.0 и v2.0. Токены всегда должны соответствовать конечной точке, с которой они запрашиваются, и токены всегда соответствуют формату, ожидаемому веб-API, который ваш клиент будет вызывать с помощью этого токена.

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

Если мы оставим ValidateIssuer, то промежуточное ПО не будет пытаться проверить клиента эмитента, и это будет фактически означать, что ваше приложение открыто для всех, у кого есть пользователь в Azure AD.

Для получения дополнительной информации о проверке токена обратитесь к документам Validateissuer и Issuer

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