Предварительное создание федеративных пользователей в Azure B2C с помощью Графика

#azure-active-directory #azure-ad-b2c

Вопрос:

Можно ли предварительно создать федеративных пользователей в Azure B2C с помощью API Graph? Вот такой сценарий:

Я добавил в свой клиент B2C арендатора Azure AD в качестве IdP. Однако я не хочу, чтобы федеративные пользователи могли зарегистрироваться. Я хочу, чтобы они могли войти в систему только в том случае, если они уже присутствуют в каталоге B2C. Поэтому, если это не так, они получат сообщение об ошибке. Поэтому я подумал, что мог бы создать федеративных пользователей, используя вместо этого график. Ниже приведен текст запроса, который я попытался использовать, но я получаю следующую ошибку, в которой говорится, что UPN должен использовать один из доменов в организации. Возможно ли достичь того, чего я хочу достичь с помощью Graph? Если не с помощью Graph API, то как я могу это сделать? Вызов API REST в пользовательской политике нежелателен.

 {
    "givenName": "John",
    "identities": [
        {
            "signInType": "federated",
            "issuer": "abc.com",
            "issuerAssignedId": "jdoe@abc.com"
        }
    ],
    "surName": "Doe",
    "mail": "jdoe@abc.com",
    "accountEnabled": true,
    "displayName": "John Doe",
    "mailNickname": "jdoe",
    "userPrincipalName": "jdoe@abc.com",
    "passwordPolicies": "DisablePasswordExpiration"
}
 

{

     "error": {
        "code": "Request_BadRequest",
        "message": "The domain portion of the userPrincipalName property is invalid. You must use one of the verified domain names in your organization.",
        "innerError": {
            "date": "2020-08-05T03:45:26",
            "request-id": "xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx"
        },
        "details": [
            {
                "target": "userPrincipalName",
                "code": "InvalidValue"
            }
        ]
    }
}
 
 

Ответ №1:

Удаление "userPrincipalName": "jdoe@abc.com", устранит эту проблему.

Microsoft Graph, похоже, не позволяет нам устанавливать userPrincipalName параметры при создании пользователя для Azure B2C. Он будет генерировать userPrincipalName as {object id}@abc.com .

И тогда вы могли бы обновить userPrincipalName .

 PATCH https://graph.microsoft.com/v1.0/users/{object id}

{"userPrincipalName":"jdoe@abc.com"}
 

Комментарии:

1. Спасибо тебе @Allen! Удаление имени пользователя позволило мне выполнить запрос. Но ИСПРАВЛЕНИЕ не было разрешено из-за той же ошибки, о которой я сообщал ранее. Есть ли способ обойти это?

2. Если нет, я отмечу ваш ответ правильным. На всякий случай еще кто-то приходит через это, чтобы предотвратить различные учетные записи создаются, когда я пытался авторизоваться с помощью учетной записи, мне пришлось изменить имена часть «идентификаторы»: [ { «signInType»: «федеративные», «эмитент»: » login.microsoftonline.com {tenant_id}/В2.0″, «issuerAssignedId»: «{tobjid_in_home_tenant}» } ]

3. @Rock я могу использовать PATCH для обновления UPN . Не могли бы вы, пожалуйста, поделиться полным PATCH запросом?

4. [Арендатор B2C: xyz.onmicrosoft.com] ПАТЧ graph.microsoft.com/beta/object_id {«Имя пользователя»:»jdoe@abc.com»} abc.com не является проверенным доменом в xyz.onmicrosoft.com отсюда и ошибка.

5. @Rock Вы должны добавить abc.com как ВПЛ в B2C, следуя docs.microsoft.com/en-us/azure/active-directory-b2c/. … Если abc не является проверенным доменом, я не думаю, что вы сможете его ИСПРАВИТЬ.