Azure Active Directory добавляет пользовательские данные в токен Oauth2.

Я использую конечную точку аутентификации https://login.microsoftonline.com/tenant-id/oauth2/v2.0/token программно (Nodejs) для возврата токена, который будет использоваться против моего API. У меня все правильно настроено для отправки запроса с использованием «секрета клиента», который я устанавливаю на портале Azure — служба регистрации приложений.

Это выдает действительный токен, который я могу позже проверить с помощью библиотеки Passport azure AD npm . Однако я искал способ каким-то образом добавить больше метаданных к этому токену (например, пользовательское имя пользователя), чтобы, когда он будет проверен и проанализирован моим сервером при будущих запросах, я мог извлечь эту информацию.

При выдаче токенов с использованием внешней библиотеки приложений (например, msal) у меня есть доступ к некоторой информации о пользователе в токене (например, его oid и адрес электронной почты). Я хотел бы иметь возможность «расширить» токен, сгенерированный секретом клиента, чтобы он также содержал пару настраиваемых полей, которые я могу использовать после его проверки и анализа.

Надеюсь, это достаточно ясно. Я потерялся в том, как этого добиться. Спасибо

1 ответ

Обычным требованием для API является авторизация на основе утверждений, хранящихся в бизнес-данных, например ролей или других пользовательских данных.

ОПЦИЯ 1

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

ВАРИАНТ 2

Другой вариант заключается в том, чтобы API обрабатывал входящий токен доступа вClaimsPrincipalи включить пользовательские значения в этот момент. Для примера см. этот мой код.

КОНФИДЕНЦИАЛЬНОСТЬ

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

Другие вопросы по тегам