邀请内部用户参与 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 的租户选择器中。 用户可以使用包含租户上下文的 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. 添加外部电子邮件地址,然后选择“发送”。

    显示“转换为外部用户”页的屏幕截图。

    注意

    如果此选项不可用,请务必将用户的 Email 属性设置为应会用于 B2B 协作的外部电子邮件地址。

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

使用 PowerShell 发送 B2B 邀请

你将需要最新的 Microsoft Graph PowerShell 模块。 使用以下命令更新到最新的模块,并邀请内部用户进行 B2B 协作:

Update-Module Microsoft.Graph
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "User.ReadWrite.All"
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 的响应与你邀请新的来宾用户访问目录时获得的响应相同。