我们有一个场景,需要从 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
}
请帮忙。
答案 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.com 或 https://portal.azure.com/contoso.onmicrosoft.com 或 https://yourapp.example.com) ,使用受邀电子邮件地址作为他们的用户名。
他们第一次执行此操作时,Azure AD 会自动将他们检测为具有待处理邀请的外部用户,并继续进行所需的同意提示以完成邀请接受。后续登录将允许用户直接登录。这在 Add B2B collaboration guest users without an invitation 中有描述。