#azure-active-directory #azure-ad-b2c
#azure-active-directory #azure-ad-b2c
Вопрос:
Как получить issuerAssignedId для федеративного Azure Active Directory? Моя настройка следующая: у меня есть B2C, специфичный для моего приложения, и у меня есть active directory, подключенный к моему B2C с помощью OpenID Connect. Для метаданных я использую следующую конечную точку: https://login.microsoftonline.com /{tenant_id}/версия 2.0/.хорошо известная/OpenID-конфигурация
Это работает нормально, когда пользователи регистрируются самостоятельно. Однако для моего конкретного бизнес-процесса я не могу позволить им это сделать. Мне нужно предварительно заполнить этих пользователей из самого приложения. Для этой цели я написал графическую оболочку Microsfot и пытаюсь создавать пользователей из этого внешнего каталога. Я пытаюсь создать пользователя со следующими параметрами:
POST /v1.0/users/ HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer my_token_received_using_client_credentials
Content-Type: application/json
Content-Length: 263
{
"displayName": "John Smith",
"identities": [
{
"signInType": "federated",
"issuer": "https://login.microsoftonline.com/{tenant_id}/v2.0",
"issuerAssignedId": "{**my_user_id_from_federated_active_directory**}"
}
]
}
Как вы можете видеть, для issuerAssignedId я использую идентификатор пользователя из моего федеративного Active Directory. Однако этот код не работает, потому что, когда я использую поток входа с перенаправлением на jwt.ms , У меня есть следующая ошибка:
AADB2C99002: пользователь не существует. Пожалуйста, зарегистрируйтесь, прежде чем вы сможете войти.
Что я должен использовать для этого поля для моих федеративных пользователей?
PS У меня нет проблем с локальными учетными записями, но я не могу использовать их для своего приложения. Я должен использовать пользователей из внешнего AD.
Комментарии:
1. Используете ли вы поток учетных данных клиента для Azure ad b2c? b2c пока не поддерживает этот поток.
2. Вы используете пользовательскую политику или пользовательский поток? Когда я в последний раз делал это, я использовал идентификатор объекта пользователя AAD в issuerAssignedId для заполнения учетных записей. Вы можете проверить пользователя, который зарегистрировался, чтобы увидеть его issuerAssignedId через конечную точку бета-версии Graph Api.
Ответ №1:
Хорошо, наконец-то я понял это. Встречный AAD возвращает какую-то ерунду в поле «sub» (возможно, зависит от внутренних политик или чего-то еще), и вам нужно использовать поле «oid» (которое по сути является идентификатором объекта пользователя из AAD).
Комментарии:
1. Я хотел бы знать, что сработало для вас. Вы использовали «oid» для указания значения «issuerAssignedId»?
2. да, oid был именно тем, что я искал. это может быть любая часть токена, вы можете поместить туда «iss». это не имеет никакого смысла, но должно работать.