邀请内部用户参与 B2B 协作

适用于:带白色勾号的绿色圆圈。 员工租户 带灰色 X 号的白色圆圈。 外部租户(了解详细信息

在 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 邀请

提示

本文中的步骤可能因开始使用的门户而略有不同。

  1. 至少以外部标识提供者管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“用户”>“所有用户”。

  3. 在列表中查找用户,或者使用搜索框。 然后选择用户。

  4. 在“概述”选项卡的“我的源”下,选择“转换为外部用户”。

    该屏幕截图显示了包含 B2B 协作卡的用户配置文件“概述”选项卡。

    注意

    如果卡显示“重新发送此 B2B 用户的邀请或重置其兑换状态。”, 则表示已邀请该用户使用外部凭据进行 B2B 协作。

  5. 此时将显示一条确认消息,并通过电子邮件向用户发送邀请。 然后,用户可以使用其外部凭据兑换邀请。

使用 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 的响应与你邀请新的来宾用户访问目录时获得的响应相同。

后续步骤