在 Microsoft Teams 中为代理配置使用 Microsoft Entra ID 的单点登录
Copilot Studio 支持对发布到 Microsoft Teams 1:1 聊天的代理进行单点登录(SSO),这意味着代理可以使用用户的凭据 Microsoft Teams 自动登录用户。 仅在使用 Microsoft Entra ID 时支持 SSO。 其他服务提供程序(如 Azure AD v1)在 Microsoft Teams 中不支持 SSO。
重要提示
现在可以在 Microsoft Teams 聊天中使用 SSO,而不需要手动身份验证。 若要将此方法用于以前发布的代理,请重新配置代理以使用 Microsoft 进行身份验证,然后再次发布到 Microsoft Teams。 可能需要几个小时的时间才能使此更改生效。 如果用户正在对话中,但更改似乎尚未生效,则他们可在聊天中键入“重新开始”,强制对话以使用最新版本的代理重新启动。 这些更改现在可用于用户与代理之间的 Teams 1:1 聊天。 它们还不能用于群聊或频道消息。
与 Dynamics 365 Customer Service 集成的代理不支持 SSO。
请勿继续执行以下文档,除非必要。 如果要对代理使用手动身份验证,请参阅 使用 Microsoft Entra ID 配置用户身份验证。
备注
如果将 Teams SSO 身份验证与手动身份验证选项结合使用,并且同时在自定义网站上使用代理,则必须使用应用清单部署 Teams 应用。
有关详细信息,请参阅 下载代理 的 Teams 应用清单。
其他配置(如除手动以外的身份验证选项,或通过使用 Copilot Studio 一键式部署的 Teams 部署)将不起作用。
先决条件
配置应用注册
在为 Teams 配置 SSO 之前,您需要使用 Microsoft Entra ID 配置用户身份验证。 此过程创建设置 SSO 所需的应用程序注册。
创建应用注册。 请参阅使用 Microsoft Entra ID 配置用户身份验证中的说明。
添加重定向 URL。
生成客户端密码。
配置手动身份验证。
查找 Microsoft Teams 渠道应用 ID
在其中 Copilot Studio,打开要为其配置 SSO 的代理。
在代理的设置下,选择 频道。 选择 Microsoft Teams 磁贴。
如果频道 Microsoft Teams 尚未连接到你的代理,请选择打开 Teams。 有关详细信息,请参阅 将代理连接到 Microsoft Teams 频道。
选择编辑详细信息,展开更多,然后选择应用 ID 字段旁边的复制。
将 Microsoft Teams 渠道应用 ID 添加到应用注册中
转到 Azure 门户。 打开在为代理配置用户身份验证时创建的应用注册的“应用注册”边栏选项卡。
在侧窗格上选择公开 API。 为应用程序 ID URI 选择设置。
输入
api://botid-{teamsbotid}
,将{teamsbotid}
替换为您之前找到的 Teams 渠道应用 ID。选择保存。
授权管理员同意
应用程序在同意过程中被用户/管理员授予权限时,可以调用 API。 要详细了解同意,请参阅 Microsoft 标识平台中的权限和同意。
如果存在“管理员同意”选项,则必须授予同意:
在应用注册边栏选项卡上的 Azure 门户中,转到 API 权限。
选择为 <您的租户名称> 授予管理员同意,然后选择是。
重要提示
为避免用户必须同意每个应用程序,至少分配给应用程序管理员或云应用程序管理员角色的人员可以授予整个租户对应用程序注册的同意。
添加 API 权限
在应用注册边栏选项卡上的 Azure 门户中,转到 API 权限。
选择添加权限,选择 Microsoft Graph。
选择委托的权限。 权限列表将显示。
展开 OpenId 权限。
选择 openid 和配置文件。
选择添加权限。
为代理定义自定义范围
在应用注册边栏选项卡上的 Azure 门户中,转到公开 API。
选择添加范围。
设置以下属性:
属性 价值 范围名称 输入 Test.Read
谁可以同意? 选择管理员和用户 管理员同意显示名称 输入 Test.Read
管理员同意说明 输入 Allows the app to sign the user in.
州 选择已启用 备注
范围名称
Test.Read
是一个占位符值,应替换为在您的环境中有意义的名称。选择添加范围。
添加 Microsoft Teams 客户端 ID
重要提示
在以下步骤中,应直接使用为 Microsoft Teams 客户端 ID 提供的值,因为它们在所有租户中是相同的。
在 Azure 门户中,在应用注册边栏选项卡上,转到 公开 API,选择添加客户端应用程序。
在客户端 ID 字段中,输入 Microsoft Teams 移动/桌面的客户端 ID,即
1fec8e78-bce4-4aaf-ab1b-5451cc387264
。 选中您先前创建的范围的复选框。选择添加应用程序。
重复前面的步骤,但对于客户端 ID,在 Web 上输入 Microsoft Teams 的客户端 ID,即
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
。确认公开 API 页面将列出 Microsoft Teams 客户端应用 ID。
总之,添加到公开 API 页的两个 Microsoft Teams 客户端 ID 是:
1fec8e78-bce4-4aaf-ab1b-5451cc387264
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
将令牌交换 URL 添加到代理的身份验证设置
若要在 Microsoft Entra 中 Copilot Studio更新 ID 身份验证设置,必须添加令牌交换 URL 以允许 Microsoft Teams 和 Copilot Studio 共享信息。
在应用注册边栏选项卡上的 Azure 门户中,转到公开 API。
在范围下,选择复制到剪贴板图标。
在 Copilot Studio 代理的设置下,选择安全,然后选择身份验证磁贴。
对于令牌交换 URL(SSO 需要),粘贴之前复制的范围。
选择保存。
将 SSO 添加到您的代理 Microsoft Teams 频道
在 Copilot Studio 代理的设置下,选择 频道。
选择 Microsoft Teams 磁贴。
选择编辑详细信息,展开更多。
对于 AAD 应用程序的客户端 ID,从应用注册输入应用程序(客户端)ID。
要获取此值,打开 Azure 门户。 然后,在应用注册边栏选项卡中,转到概览。 复制应用程序(客户端)ID 框中的值。
对于资源 URI,从应用注册输入应用程序 ID URI。
要获取此值,打开 Azure 门户。 然后,在应用注册边栏选项卡中,转到公开 API。 复制应用程序 ID URI 框中的值。
选择保存,然后选择关闭。
再次发布代理,向客户提供最新更改。
选择在 Teams 中打开代理,使用你的代理 Microsoft Teams 开始新的对话,并验证它是否自动让你登录。
已知问题
如果您首次使用没有 Teams SSO 的手动身份验证发布您的代理,则团队中的代理将持续提示用户登录。