邀请内部用户参与 B2B 协作
适用于: 员工租户 外部租户(了解详细信息)
在 Microsoft Entra B2B 协作可供使用之前,组织可以通过为分销商、供应商、提供商和其他来宾用户设置内部凭据来与其进行合作。 如果有类似于以上的内部来宾用户,可以邀请他们使用 B2B 协作。 这些 B2B 来宾用户将能够使用自己的标识和凭据登录,而无需进行密码维护或帐户生命周期管理。
通过向现有内部帐户发送邀请,你可以保留该用户的对象 ID、UPN、组成员身份和应用分配。 无需手动删除并重新邀请用户,也不必重新分配资源。 要邀请用户,可以使用邀请 API 同时传递内部用户对象和来宾用户的电子邮件地址以及邀请。 用户接受邀请后,B2B 服务会将现有的内部用户对象更改为 B2B 用户。 今后,用户必须使用其 B2B 凭据登录到云资源服务。
注意事项
访问本地资源:在邀请用户参加 B2B 协作后,用户仍可使用其内部凭据访问本地资源。 你可以通过重置或更改内部帐户的密码来防止这种情况。
计费:此功能不会更改用户的 UserType,因此也就不会将用户的计费模式自动切换为外部 ID 每月活动用户 (MAU) 定价。 要激活用户的 MAU 定价,请将用户的 UserType 更改为
guest
。 另请注意,必须将 Microsoft Entra 租户链接到 Azure 订阅才能激活 MAU 计费。Teams:当用户使用其外部凭据访问 Teams 时,其租户最初在 Teams 租户选取器中不可用。 用户可以使用包含租户上下文的 URL 访问 Teams,例如:
https://teams.microsoft.com/?tenantId=<TenantId>
。 之后,租户将在 Teams 租户选取器中变为可用。本地同步的用户:对于在本地与云之间同步的用户帐户,本地目录在被邀请使用 B2B 协作后仍会保留授权源。 对本地帐户所做的任何更改都将同步到云帐户,包括禁用或删除帐户。 因此,如果要阻止用户登录到本地帐户,同时还要保留其云帐户,那么只是删除本地帐户无法做到这一点。 相反,你可以将本地帐户密码设置为随机 GUID 或其他未知值。
注意
在 Microsoft Entra Connect 同步中,有一个将 onPremisesUserPrincipalName 属性写入用户对象的默认规则。 由于存在此属性会阻止用户使用外部凭据进行登录,因此会阻止具有此属性的用户对象进行内部到外部的转换。 如果使用的是 Microsoft Entra Connect 并且希望能够邀请内部用户参与 B2B 协作,则需要修改默认规则,使 onPremisesUserPrincipalName 属性不会写入用户对象。
如何邀请内部用户进行 B2B 协作
你可以使用 Microsoft Entra 管理中心、PowerShell 或邀请 API 将 B2B 邀请发送给内部用户。 需要注意的一些事项:
邀请用户之前,请确保将内部用户对象的
User.Mail
属性(Microsoft Entra 管理中心内用户的电子邮件属性)设置为他们将用于 B2B 协作的外部电子邮件地址。 如果内部用户具有现有邮箱,则无法将此属性更改为外部电子邮件地址。 必须在 Exchange 管理中心更新其属性。邀请用户时,会通过电子邮件向用户发送邀请。 如果使用 PowerShell 或邀请 API,则可以通过将
SendInvitationMessage
设置为False
来禁用此电子邮件。 然后采用其他方式通知用户。 详细了解邀请 API。当用户兑换邀请时,他们所使用的帐户必须与
User.Mail
属性中的域相匹配。 否则,某些服务(例如 Teams)将无法对用户进行身份验证。
使用 Microsoft Entra 管理中心发送 B2B 邀请
提示
本文中的步骤可能因开始使用的门户而略有不同。
至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“用户”>“所有用户”。
在列表中查找用户,或者使用搜索框。 然后选择用户。
在“概述”选项卡的“我的源”下,选择“转换为外部用户”。
注意
如果卡显示“重新发送此 B2B 用户的邀请或重置其兑换状态。”, 则表示已邀请该用户使用外部凭据进行 B2B 协作。
此时将显示一条确认消息,并通过电子邮件向用户发送邀请。 然后,用户可以使用其外部凭据兑换邀请。
使用 PowerShell 发送 B2B 邀请
你将需要 Microsoft Graph PowerShell 模块。 使用以下命令更新到最新的模块,并邀请内部用户进行 B2B 协作:
Update-Module Microsoft.Graph
Get-MgUser -UserId '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
New-MgInvitation -InvitedUserEmailAddress John@contoso.com -SendInvitationMessage:$true -InviteRedirectUrl "https://myapplications.windowsazure.cn" -InvitedUser $msGraphUser
使用邀请 API 发送 B2B 邀请
下面的示例演示了如何调用邀请 API 来邀请内部用户作为 B2B 用户。
POST https://microsoftgraph.chinacloudapi.cn/v1.0/invitations
Authorization: Bearer eyJ0eX...
ContentType: application/json
{
"invitedUserEmailAddress": "<<external email>>",
"sendInvitationMessage": true,
"invitedUserMessageInfo": {
"messageLanguage": "en-US",
"ccRecipients": [
{
"emailAddress": {
"name": null,
"address": "<<optional additional notification email>>"
}
}
],
"customizedMessageBody": "<<custom message>>"
},
"inviteRedirectUrl": "https://myapplications.windowsazure.cn?tenantId=",
"invitedUser": {
"id": "<<ID for the user you want to convert>>"
}
}
对 API 的响应与你邀请新的来宾用户访问目录时获得的响应相同。