在 Azure AD B2B 中批量创建用户

时间:2021-01-13 13:41:39

标签: microsoft-graph-api azure-ad-b2b

我们有一个场景,需要从 CSV 文件迁移 B2B 用户。我们不想再次向他们发送邀请,他们居住在第 3 方 IDP。

有没有办法通过 GRAPH API 或 PowerShell 在宿主租户中创建用户?我尝试使用下面的正文,但来源变成了不正确的“Azure AD”。

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

请帮忙。

1 个答案:

答案 0 :(得分:0)

这种情况可以通过两个 MS Graph 请求实现,

首先,您需要通过以下示例发布请求创建用户,

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

{
  "accountEnabled": true,
  "displayName": "Adele Vance",
  "mailNickname": "AdeleV",
  "userPrincipalName": "AdeleV@contoso.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "xWwvJ]6NMw+bWH-d"
  }
}

现在在第二个请求中,您需要将用户更新为 B2B,

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

  {

        "displayName": "Adele Vance",
        "mailNickname": "AdeleV",
        "userPrincipalName": "AdeleV@contoso.onmicrosoft.com"

        "userType": "Guest"

  }

替代方法,

使用 Azure AD B2B invitation options in Microsoft Graph,您可以选择是否发送邀请电子邮件,以及将用户添加为访客还是会员< /em>。 New-AzureADMSInvitation PowerShell 模块中的 AzureAD cmdlet 只是此 API 的简单包装器,因此 PowerShell 中提供了相同的功能。

在不发送电子邮件的情况下邀请用户成为会员

使用 Microsoft Graph:

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

{
  "invitedUserEmailAddress": "user@example.com",
  "inviteRedirectUrl": "https://example.com",
  "sendInvitationMessage": false,
  "invitedUserType": "Member"
}

使用 Azure AD PowerShell:

New-AzureADMSInvitation -InvitedUserEmailAddress "user@example.com" `#`
                        -InviteRedirectUrl "https://example.com" `#`
                        -SendInvitationMessage $false `#`
                        -InvitedUserType "Member"

创建邀请后,用户可以直接尝试登录他们有权访问的任何特定于租户的应用程序(例如 https://contoso.sharepoint.comhttps://portal.azure.com/contoso.onmicrosoft.comhttps://yourapp.example.com) ,使用受邀电子邮件地址作为他们的用户名。

他们第一次执行此操作时,Azure AD 会自动将他们检测为具有待处理邀请的外部用户,并继续进行所需的同意提示以完成邀请接受。后续登录将允许用户直接登录。这在 Add B2B collaboration guest users without an invitation 中有描述。