Массовое создание пользователей в Azure AD B2B

У нас есть сценарий, в котором нам нужно перенести пользователей B2B из файла CSV. Мы не хотим снова отправлять им приглашения, поскольку они проживают в стороннем IDP.

Есть ли способ через GRAPH API или PowerShell для создания пользователей в хост-клиенте? Я попытался использовать тело ниже, но источник становится «Azure AD», что неверно.

{
    "mailNickname": "Test",
    "displayName": "Test User",
    "givenName": "Test",
    "mail": "[email protected]",
    "surname": "User",
    "passwordProfile": {
        "forceChangePasswordNextSignIn": false,
        "password": "xWwvJ]6NMw+bWH-d"
    },
    "userPrincipalName": "test.user_customdomain.com#EXT#@abc.onmicrosoft.com",
    "userType": "Guest",
    "accountEnabled": true
}

Пожалуйста помоги.


person Sushmita Das    schedule 13.01.2021    source источник


Ответы (1)


Этот сценарий возможен с двумя запросами MS Graph,

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

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "Adele Vance",
  "mailNickname": "AdeleV",
  "userPrincipalName": "[email protected]",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "xWwvJ]6NMw+bWH-d"
  }
}

Теперь во втором запросе вам нужно обновить пользователя до B2B,

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

  {

        "displayName": "Adele Vance",
        "mailNickname": "AdeleV",
        "userPrincipalName": "[email protected]"

        "userType": "Guest"

  }

Альтернативный подход

С помощью вариантов приглашения в Microsoft Graph в Azure AD B2B, вы можете выбрать, следует ли отправлять электронное письмо с приглашением и следует ли добавить пользователя в качестве гостя или в качестве участника. Командлеты New-AzureADMSInvitation от модуль AzureAD PowerShell - это просто простая оболочка вокруг этого API, поэтому те же возможности доступны в PowerShell.

Пригласите пользователя в качестве участника, не отправляя электронное письмо

С Microsoft Graph:

POST https://graph.microsoft.com/v1.0/invitations

{
  "invitedUserEmailAddress": "[email protected]",
  "inviteRedirectUrl": "https://example.com",
  "sendInvitationMessage": false,
  "invitedUserType": "Member"
}

С помощью Azure AD PowerShell:

New-AzureADMSInvitation -InvitedUserEmailAddress "[email protected]" `#`
                        -InviteRedirectUrl "https://example.com" `#`
                        -SendInvitationMessage $false `#`
                        -InvitedUserType "Member"

После создания приглашения пользователь может напрямую попытаться войти в любое приложение для конкретного клиента, к которому у него есть доступ (например, https://contoso.sharepoint.com или https://portal.azure.com/contoso.onmicrosoft.com или https://yourapp.example.com), используя приглашенный адрес электронной почты в качестве имени пользователя.

В первый раз, когда они это сделают, Azure AD автоматически обнаружит их как внешнего пользователя с ожидающим приглашением и продолжит запрашивать согласие, чтобы завершить принятие приглашения. Последующие входы позволят пользователю войти в систему напрямую. Это описано в разделе Добавить гостя для совместной работы B2B. пользователи без приглашения.

person Hari Krishna    schedule 13.01.2021
comment
Но источником остается Azure Active Directory. Могу я это обновить? Источником на самом деле является сторонний IDP с поддержкой SAML. - person Sushmita Das; 13.01.2021
comment
Привет @SushmitaDas! Обновить источник невозможно. Я обновил свой ответ альтернативным подходом, который поможет. - person Hari Krishna; 13.01.2021