向主题添加最终用户身份验证

可以直接在助手对话内启用用户身份验证。 您可以将用户的基本属性(如名称和 ID)分配给变量。 您还可以提示用户使用主题中的身份验证节点登录,该节点将检索用户令牌,然后使用该令牌从后端系统检索用户的信息。

备注

在 和 Copilot Studio In Microsoft Teams 中创建的 Copilot 会自动配置为 Microsoft Entra ID 身份验证。

您还可以配置单一登录 (SSO),让您的用户无需手动登录。 有关详细信息,请参阅使用 Microsoft Entra ID 配置单一登录

先决条件

向主题添加用户身份验证,以便允许客户直接在对话中登录。 然后,您可以使用用户变量个性化对话,或代表用户访问后端系统。

使用 Microsoft Entra ID 配置手动身份验证

在您的主题中使用身份验证之前,您需要使用 Microsoft Entra ID 配置用户身份验证。

按照使用 Microsoft Entra ID 配置用户身份验证中的说明进行操作。

使用“登录系统”主题添加用户身份验证

当您创建助手时,Copilot Studio 会自动添加一个名为登录的系统主题。 若要使用,您必须将您的助手身份验证设置为手动,并且要求用户登录。 当客户开始与助手对话时,登录主题会触发,并提示用户登录。 您可以酌情针对您的助手自定义登录主题。

重要提示

建议登录主题仅用于提供 Copilot Studio 提供的身份验证方法。 不应该对其进行修改来调用任何其他操作或流,或者其他身份验证方法。

  1. 在 Copilot Studio 中打开您的助手,选择页面顶部的设置,然后选择安全性

  2. 选择身份验证

  3. 选择手动进行身份验证,然后选择要求用户登录

  4. 根据需要配置所有手动身份验证字段

  5. 选择保存

向自定义主题添加用户身份验证

登录主题在对话开始对用户进行身份验证。 若要允许用户以后登录,可以将身份验证节点添加到任何自定义主题中。

当客户输入用户名和密码时,系统可能会提示他们输入验证代码。 登录后,即使他们到达另一个 Authenticate 节点,也不会再次提示他们。

  1. 在页面顶部,选择设置,然后选择安全性

  2. 选择身份验证磁贴。

    备注

    您必须选择手动进行身份验证,才能将用户身份验证添加到自定义主题。

  3. 清除要求用户登录复选框。

  4. 根据需要配置所有手动身份验证字段

  5. 选择保存

  6. 选择页面顶部的主题

  7. 选择添加节点 () >高级>身份验证

  8. 使用配置了您的身份提供程序的用户测试您的主题

提示

针对登录成功和失败创建登录路径很重要。 登录可能由于多种原因而失败,包括标识提供者的登录体验错误。

身份验证变量

为 Copilot 配置用户身份验证时,可以在主题中使用身份验证变量。 下表根据您选择的身份验证选项比较这些变量的可用性:

有关变量的更多信息,请参阅 使用变量

身份验证变量 不进行身份验证 向 Microsoft 进行身份验证 手动进行身份验证
User.DisplayName 显示名称 不可用 有空 有空
User.FirstName 不可用 有空 有空
User.LastName 不可用 有空 有空
User.PrincipalName 不可用 有空 有空
User.Email 不可用 有空 有空
User.Id 不可用 有空 有空
User.IsLoggedIn 不可用 有空 有空
User.AccessToken 不可用 不可用 有空
SignInReason 不可用 有空 有空

User.DisplayName

警告

不保证此变量包含值。 通过标识提供者的用户进行测试,以确保您的主题可以正确运行。

User.DisplayName 变量包含存储在身份提供程序中的显示名称。 请使用此变量来问候或引用最终用户,而无需他们明确告知助手他们的姓名,让对话更加个性化。

只要在配置手动身份验证时定义了 profile 范围,Copilot Studio 就会根据标识提供者提供的 name 声明自动设置 User.DisplayName 的值。 有关范围的更多信息,请参阅使用 Microsoft Entra ID 配置用户身份验证

User.Id

警告

不保证此变量包含值。 通过标识提供者的用户进行测试,以确保您的主题可以正确运行。

User.Id 变量包含存储在身份提供程序中的用户 ID。 使用 Power Automate 流中的此变量调用将 UserID 作为值的 API。

Copilot Studio 将根据标识提供者提供的 sub 声明自动设置 User.DisplayName 的值。

User.IsLoggedIn

User.IsLoggedIn 是存储用户登录状态的布尔变量。 true 的值指示用户已登录。 可使用此变量在主题中创建分支逻辑来检查成功登录,或仅在用户已登录时获取用户信息。

User.AccessToken

警告

务必将 User.AccessToken 变量仅传递到可信源。 其中包含用户身份验证信息,如果受到威胁,可能伤害用户。

User.AccessToken 变量中包含用户登录后获取的用户令牌。 可以将此变量传递到 Power Automate 流,以使其连接到后端 API 并获取用户信息,或代表用户执行操作。

请勿在消息节点内或您不信任的流中使用 User.AccessToken

SignInReason

SignInReason 是一个 choice 类型的变量,指示用户何时必须登录。 它有两个可能的值:

  • SignInRequired 指示用户必须在对话开始时使用 Log In (登录)系统主题登录。 必须开启 Require users to log in(要求用户登录)。

  • Initializer 指示当用户未登录,并且他们到达使用身份验证变量的对话中的指向时,系统会提示他们登录。

您还可以配置单一登录 (SSO),让您的用户无需手动登录。 有关详细信息,请参阅使用 Microsoft Entra ID 配置单一登录