使用 Microsoft Entra ID 配置单点登录

Copilot Studio 支持单一登录 (SSO)。 SSO允许网站上的助手为已经登录已部署助手的页面或应用程序的客户进行登录。

例如,助手托管在用户已登录的企业 Intranet 中或应用中。

为 Copilot Studio 配置 SSO 主要分四个步骤:

  1. 在 Microsoft Entra ID 中为您的自定义画布创建一个应用程序注册。

  2. 要为助手定义自定义范围:

  3. 在 Copilot Studio 中配置身份验证以启用 SSO。

  4. 配置您的自定义区域 HTML 代码以启用 SSO。

先决条件

备注

要使用其他 OAuth 2.0 提供程序配置 SSO,请参阅 使用通用 OAuth 提供程序配置单点登录。

支持的渠道

下表详细介绍了当前支持 SSO 的渠道。 您可以在 Microsoft Copilot Studio 创意论坛中建议支持其他渠道。

频道 受支持
Azure 机器人服务通道 不支持
自定义网站 受支持
演示网站 不支持
Facebook 不支持
Microsoft Teams1 受支持
移动应用程序 不支持
Customer Service 全渠道2 受支持

1 如果还启用了 Teams 通道,则需要在文档中的使用 ID 为 copilots 配置单 点登录上跟随 Microsoft Entra 配置说明 Microsoft Teams 。 未能按照该页面上的说明配置 Teams SSO 设置,会致使您的用户在使用 Teams 渠道时始终无法通过身份验证。

2 仅支持实时聊天频道。 有关详细信息,请参阅配置转接到 Dynamics 365 Customer Service

重要提示

当助手出现以下任一情况时,目前不支持 SSO:

但是,作为 SPFx 组件发布到 SharePoint 网站的助手支持SSO。

为自定义网站创建应用注册

要启用 SSO,您需要创建两个单独的应用注册:

  • 身份验证应用程序注册,为您的助手启用 Microsoft Entra ID 用户身份验证
  • 一个画布应用注册,它支持自定义网页的 SSO

出于安全原因,我们不建议在您的助手和自定义网站上重复使用相同的应用程序注册。

  1. 按照使用 Microsoft Entra ID 配置用户身份验证中的说明创建身份验证应用程序注册。

  2. 跟随说明再次创建身份验证应用注册,以创建第二个应用注册,用作画布应用注册。

  3. 将画布应用程序注册 ID 添加到身份验证应用程序注册中。

添加令牌交换 URL

若要更新 Copilot Studio 中的 Microsoft Entra ID 身份验证设置,您需要添加令牌交换 URL 以允许您的应用程序和 Copilot Studio 共享信息。

  1. 在身份验证应用注册边栏选项卡上的 Azure 门户中,转到公开 API

  2. 在 Scopes(范围) ,选择 Copy to clipboard( 复制到剪贴板 )图标。

  3. 在 Copilot Studio 内的导航菜单中的设置下面,选择安全性,然后选择身份验证磁贴。

  4. 对于令牌交换 URL(SSO 需要),粘贴之前复制的范围。

  5. 选择保存

配置画布应用注册

  1. 创建画布应用注册后,转到身份验证,然后选择添加平台

  2. 平台配置下,选择添加平台,然后选择 Web

  3. 重定向 URL 下,输入您的网页的 URL,例如 http://contoso.com/index.html

    配置网页的屏幕截图。

  4. 隐式授权和混合流部分中,打开访问令牌(用于隐式流)ID 令牌(用于隐式和混合流)

  5. 选择配置

查找您的助手令牌终结点 URL

  1. 在 Copilot Studio 中,打开助手,然后选择渠道

  2. 选择移动应用

  3. 令牌终结点下面,选择复制

    在 Copilot Studio 中复制令牌终结点 URL 的屏幕截图。

在网页中配置 SSO

使用 Copilot Studio 的 GitHub 存储库中提供的代码为重定向 URL 创建网页。 从 GitHub 存储库复制代码,并按照以下说明对其进行修改。

备注

GitHub 存储库中的代码要求用户选择一个登录按钮或从不同的站点登录。 要启用自动登录,请将以下代码添加到以下代码 aysnc function main()的开头:

    (async function main() {
        if (clientApplication.getAccount() == null) {
           await clientApplication.loginPopup(requestObj).then(onSignin).catch(function (error) {console.log(error) });
        }
        // Add your BOT ID below 
        var theURL =
  1. 转到 Azure 门户内的概览页面,从画布应用注册中复制应用程序(客户端)ID目录(租户)ID

    Azure 门户中应用注册概览页面的屏幕截图,突出显示概览、应用程序 ID 和目录 ID。

  2. 要配置 Microsoft 身份验证库 (MSAL):

    • clientId 分配给您的应用程序(客户端)ID
    • authority 分配给 https://login.microsoftonline.com/,将您的目录(租户)ID 添加到末尾。

    例如:

    var clientApplication;
        (function (){
        var msalConfig = {
            auth: {
                clientId: '692e92c7-xxxx-4060-76d3-b381798f4d9c',
                authority: 'https://login.microsoftonline.com/7ef988bf-xxxx-51af-01ab-2d7fd011db47'     
            },
    
  3. theURL 变量设置为以前复制的令牌终结点 URL。 例如:

    (async function main() {
    
        var theURL = "https://1c0.0.environment.api.powerplatform.com/powervirtualagents/bots/5a099fd/directline/token?api-version=2022-03-01-preview"
    
  4. 编辑 userId 的值以包含自定义前缀。 例如:

    var userId = clientApplication.account?.accountIdentifier != null ? 
            ("My-custom-prefix" + clientApplication.account.accountIdentifier).substr(0, 64) 
            : (Math.random().toString() + Date.now().toString()).substr(0,64);
    
  5. 保存您的更改。

使用您的网页测试您的助手

  1. 在浏览器中打开网页。

  2. 选择登录

    使用验证码登录的屏幕截图

    备注

    如果您的浏览器阻止弹出窗口,或者您正在使用匿名或隐私浏览窗口,系统会提示您登录。 否则,使用验证码完成登录。

    新的浏览器选项卡将打开。

  3. 切换到新标签页,复制验证码。

  4. 使用您的助手切换回该选项卡,并将验证码粘贴到助手对话中。