在 Copilot Studio 中配置用户身份验证

身份验证允许用户登录,从而允许您的代理访问受限资源或信息。 用户可以使用Microsoft Entra ID 或任何 OAuth2 身份提供程序登录,如 Google 或 Facebook。

备注

在 Microsoft Teams 中,您可以配置 Copilot Studio 代理以提供身份验证功能,以便用户可以使用 Microsoft Entra ID 或任何 OAuth2 身份提供程序登录,例如 Microsoft 或 Facebook 帐户。

编辑主题时,您可以向主题添加用户身份验证

重要提示

对身份验证配置所作的更改只有在您发布代理后才会生效。 在对代理进行身份验证更改之前,请务必提前计划。

选择身份验证选项

Copilot Studio 支持多个身份验证选项。 请选择满足您需求的那一个。

  1. 转到您的代理的设置,然后选择安全性

  2. 选择身份验证

    提供以下身份验证选项:

  3. 选择保存

不进行身份验证

不进行身份验证意味着您的代理允许用户在未登录的情况下与代理交互。 未经身份验证的配置意味着您的代理只能访问公共信息和资源。 默认情况下,经典聊天机器人配置为需要身份验证。

注意

选择无身份验证选项将允许拥有链接的任何人与您的机器人或代理聊天和交互。

我们建议您应用身份验证,特别是当您在组织内或针对特定用户使用机器人或代理时,以及其他安全和治理控制

向 Microsoft 进行身份验证

重要提示

选择向 Microsoft 进行身份验证选项后,除 Teams 渠道外的所有渠道都将被禁用。

此外,使用 Microsoft 进行身份验证选项不适用于与 Dynamics 365 Customer Service 集成的代理。

此配置自动为 Teams 设置 Microsoft Entra ID 身份验证,无需任何手动配置。 由于 Teams 身份验证本身会识别用户,因此当用户位于 Teams 中时,系统不会提示用户登录,除非您的代理需要扩展范围。

如果您选择本选项,则仅 Teams 渠道可用。 如果您需要将代理发布到其他渠道,但仍希望对代理进行身份验证,请选择手动进行身份验证

如果您选择向 Microsoft 进行身份验证,创作画布中将提供以下变量:

  • User.ID
  • User.DisplayName

有关这些变量以及如何使用它们的详细信息,请参阅向主题添加用户身份验证

User.AccessTokenUser.IsLoggedIn 变量对于此选项不可用。 如果您需要身份验证令牌,请使用手动身份验证选项。

如果您从手动身份验证更改为向 Microsoft 进行身份验证,并且您的主题包含变量 User.AccessTokenUser.IsLoggedIn,则在更改后它们会显示为未知变量。 请确保在发布代理之前更正任何有错误的主题。

手动进行身份验证

Copilot Studio 在手动身份验证选项下支持以下身份验证提供程序:

  • Azure Active Directory
  • Azure Active Directory v2
  • 带证书的 Azure Active Directory v2
  • 通用 OAuth 2 - 任何符合 OAuth2 标准的标识提供者

配置手动身份验证后,创作画布中将提供以下变量:

  • User.Id
  • User.DisplayName
  • User.AccessToken
  • User.IsLoggedIn

有关这些变量以及如何使用它们的详细信息,请参阅向主题添加用户身份验证

保存配置后,请确保发布您的代理,使更改生效。

备注

  • 身份验证更改仅在代理发布后生效。
  • 此设置可由 Power Platform 中相应的管理控件控制。 启用该控件后,它会阻止在 Copilot Studio 内启用或禁用手动身份验证选项。 该控件始终处于启用状态,并且不能在 Copilot Studio 中修改手动身份验证选项。

需要用户登录和代理共享

需要用户登录确定用户在与代理交谈之前是否需要登录。 我们强烈建议您在代理需要访问敏感或受限信息时打开此设置。

此选项不适用于无身份验证向 Microsoft 进行身份验证选项。

备注

当 Power Platform 管理中心中的 DLP 策略配置为要求身份验证时,此选项也不可配置。 有关详细信息,请参阅 数据丢失防护示例 - 要求在代理中进行用户身份验证。

如果您关闭此选项,您的代理不会要求用户登录,直到遇到需要用户登录的主题。

当您打开此选项时,它会创建一个名为需要用户登录的系统主题。 本主题仅与手动验证设置相关。 用户始终在 Teams 上进行身份验证。

需要用户登录主题会为任何与代理交谈但未经身份验证的用户自动触发。 如果用户登录失败,主题将重定向到升级系统主题。

此主题是只读的,无法自定义。 要查看,选择转到创作画布

控制谁可以与组织中的代理聊天

您的代理的身份验证选项和需要用户登录设置组合确定您是否可以共享代理来控制组织中的哪些人可以与您的代理聊天。 身份验证设置不会影响为进行协作共享代理。

  • 不进行身份验证 - 任何具有指向代理的链接(或者可以在您的网站上找到它)的用户都可以与代理聊天。 您无法控制组织中的哪些用户可以与代理聊天。

  • 使用 Microsoft 进行身份验证:代理仅适用于 Teams 频道。 由于用户始终保持登录状态,因此需要用户登录设置已打开且无法关闭。 您可以使用代理共享来控制组织中的哪些人可以与代理聊天。

  • 手动身份验证

    • 如果服务提供程序是 Azure Active DirectoryMicrosoft Entra ID,您可以打开需要用户登录,使用代理共享控制组织中的哪些人可以与代理聊天。

    • 如果服务提供程序是通用 OAuth2,您可以打开或关闭需要用户登录。 打开后,登录的用户可以与代理聊天。 您无法使用代理共享控制组织中的哪些特定用户可以与代理聊天。

当代理的身份验证设置无法控制谁可以与代理聊天时,如果您在代理概览页面上选择共享,会有一条消息通知您任何人都可以与您的代理聊天。

手动身份验证字段

以下是您在配置手动身份验证时可能会看到的所有字段。 您将看到哪些字段取决于您对服务提供程序的选择。

字段名称 说明
授权 URL 模板 用于授权的 URL 模板,由标识提供者定义。 例如,https://login.microsoftonline.com/common/oauth2/v2.0/authorize
授权 URL 查询字符串模板 用于授权的查询模板,由您的标识提供者提供。 查询字符串模板中的密钥取决于标识提供者 (?client_id={ClientId}&response_type=code&redirect_uri={RedirectUrl}&scope={Scopes}&state={State})。
Client ID 从标识提供者获取的客户端 ID。
Client secret 您的客户端密码,在您创建标识提供者应用注册时获取。
刷新正文模板 刷新正文 (refresh_token={RefreshToken}&redirect_uri={RedirectUrl}&grant_type=refresh_token&client_id={ClientId}&client_secret={ClientSecret}) 的模板。
刷新 URL 查询字符串模板 令牌 URL 的刷新 URL 查询字符串分隔符,通常是问号 (?)。
刷新 URL 模板 刷新的 URL 模板;例如,https://login.microsoftonline.com/common/oauth2/v2.0/token
范围列表分隔符 范围列表的分隔字符。 此字段不支持空格。1
范围 您希望用户在登录后获取的范围列表。 使用范围列表分隔符分隔多个范围。1只设置必要的范围,遵照最小特权访问控制原则
服务提供商 您要用于身份验证的服务提供程序。 有关更多信息,请参见 OAuth 通用提供程序
Tenant ID 您的 Microsoft Entra ID 租户 ID。 请参考使用现有的 Microsoft Entra ID 租户,了解如何找到您的租户 ID。
令牌正文模板 令牌正文的模板。 (code={Code}&grant_type=authorization_code&redirect_uri={RedirectUrl}&client_id={ClientId}&client_secret={ClientSecret})
令牌交换 URL (SSO 必需) 此可选字段在您配置单点登录时使用。
令牌 URL 模板 令牌的 URL 模板,由您的标识提供者提供;例如,https://login.microsoftonline.com/common/oauth2/v2.0/token
令牌 URL 查询字符串模板 令牌 URL 的查询字符串分隔符,通常是问号 (?)。

1如果标识提供者需要,您可以在范围字段中使用空格。 在这种情况下,在范围列表分隔符中输入逗号 (,),在范围字段中输入空格。

关闭身份验证

  1. 打开代理后,选择顶部菜单栏上的设置

  2. 选择安全,然后选择身份验证

  3. 选择无身份验证

    如果在主题中使用身份验证变量,它们将成为未知变量。 转到主题页面,查看哪些主题有错误,并在发布前修复这些错误。

  4. 发布代理。

重要提示

如果您的代理具有配置为需要最终用户凭据操作,请勿在代理级别关闭身份验证,这样将会阻止这些操作正常工作。