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

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

备注

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

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

先决条件

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

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

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

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

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

当您创建代理时, Copilot Studio 会自动添加一个名为 log in 的系统主题。 要使用它,您必须将代理的身份验证设置为手动并要求用户登录。 当客户使用代理开始对话时, 将触发 login in 主题并提示用户登录。 您可以根据您的代理自定义 登录 主题。

重要提示

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

  1. 打开你的代理 Copilot Studio,选择 页面顶部的设置 ,然后选择 安全

  2. 选择身份验证

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

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

  5. 选择保存

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

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

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

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

  2. 选择身份验证磁贴。

    备注

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

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

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

  5. 选择保存

  6. 选择页面顶部的主题

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

  8. 使用配置有标识提供者的用户测试主题

提示

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

身份验证变量

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

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

身份验证变量 不进行身份验证 向 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是一个选择类型变量,指示用户何时必须登录。 它有两个可能的值:

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

  • Initializer 表示如果用户尚未登录,并且他们在对话中达到使用身份验证变量的时刻,则会提示他们登录。

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