我们有一个场景,需要从CSV文件迁移B2B用户。我们不想再向他们发出邀请,他们住在第三方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
}
请帮忙。
这种情况可能有两个MS图形请求,
首先,您需要通过以下示例帖子请求创建用户,
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"
}
替代方法,
使用Microsoft Graph中的Azure AD B2B邀请选项,您可以选择是否发送邀请电子邮件,以及将用户添加为访客还是成员。AzureAD PowerShell模块中的New-AzureADMSInvitation
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将自动将他们检测为具有挂起邀请的外部用户,并继续执行所需的同意提示以完成邀请接受。后续登录将允许用户直接登录。这在添加B2B协作来宾用户而不发出邀请中有描述。