单点登录和 Control Hub

单点登录 (SSO) 是一种会话或用户验证的流程,允许用户通过提供凭证来访问一个或多个应用程序。 此流程能够为用户已获得授权的所有应用程序验证用户。 这样用户在特定会话期间切换应用程序时,不会再看到额外提示。

安全断言标记语言 (SAML 2.0) 联合协议用于提供 Webex 云与您的身份提供商 (IdP) 之间的 SSO 验证。

档案

Webex 应用程序仅支持 Web 浏览器 SSO 档案。 在 Web 浏览器 SSO 档案中,Webex 应用程序支持下列绑定:

  • SP 发起的 POST->POST 绑定

  • SP 发起的 REDIRECT->POST 绑定

NameID 格式

为了传达关于特定用户的信息,SAML 2.0 协议支持多种 NameID 格式。 Webex 应用程序支持以下 NameID 格式。

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

在您从 IdP 加载的元数据中,第一个条目为在 Webex 中使用而配置。

单点注销

Webex 应用程序支持单点注销档案。 在 Webex 应用程序中,当用户注销应用程序时,系统会使用 SAML 单点注销协议结束会话并与您的 IdP 确认该注销操作。 请确保您的 IdP 经过单点注销配置。

将 Control Hub 与 ADFS 集成


 

配置指南给出了 SSO 集成的特定示例,但没有提供针对所有可能性的详细配置。 例如,记录了 nameid-format urn:oasis:names:tc:SAML:2.0:nameid-format:transient 的集成步骤。 其他格式,例如 urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified or urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress ,将适用于 SSO 集成,但不在我们文档的讨论范围之内。

为 Webex 组织(包括 Webex 应用程序、Webex Meetings 以及 Control Hub 中管理的其他服务)中的用户设置此集成。 如果 Webex 站点集成在 Control Hub 中,Webex 站点会继承用户管理。 如果您无法用这种方式访问 Webex Meetings,且其不受 Control Hub 管理,则必须另外执行集成来为 Webex Meetings 启用 SSO。 (请参阅配置 Webex 的单点登录了解站点管理中 SSO 集成的更多信息。)

根据在 ADFS 的验证机制中配置的内容,缺省情况下可以启用集成 Windows 验证(IWA)。 如果启用,通过 Windows 启动的应用程序(例如 Webex 应用程序和 Cisco 目录连接器)就会以已登录用户的身份进行验证,而与初始电子邮件提示过程中输入的电子邮件地址无关。

下载 Webex 元数据到本地系统

1

https://admin.webex.com中的客户视图,转至管理 > 组织设置,然后滚动至身份验证,然后打开单点登录设置以启动设置向导。

2

选择组织的证书类型:

  • 由 Cisco 自签名 — 我们推荐此选择。 我们在证书上签名,您只需每五年续订一次。
  • 由公共认证中心签名 — 安全性更高,但需要经常更新元数据(除非 IdP 供应商支持信任锚)。

 

信任锚是充当验证数字签名证书的认证中心的公共密钥。 有关更多信息,请参阅 IdP 文档。

3

下载元数据文件。

Webex 元数据文件名是 idb-meta--SP.xml。<org-ID>

在 ADFS 中安装 Webex 元数据

准备工作

Control Hub 支持 ADFS 2.x 或更高版本。

Windows 2008 R2 只包括 ADFS 1.0。 您必须从 Microsoft 安装版本至少为 2.x 的 ADFS。

对于 SSO 和 Webex 服务,身份提供程序 (IdP) 必须符合以下 SAML 2.0 规范:

  • 将“NameID 格式”属性设置为 urn:oasis:names:tc:SAML:2.0:nameid-format:transient

  • 配置 IdP 声明,包括 uid 属性名称,其值要映射到在 Cisco 目录连接器中选择的属性或者映射到用户属性,而用户属性应与 Webex 身份服务中选择的用户属性匹配。 (例如,该属性可以是电子邮件地址,也可以是用户主体名称。) 请参阅 https://www.cisco.com/go/hybrid-services-directory 中的自定义属性信息获取指导。

1

使用具有管理员权限的凭证登录 ADFS 服务器。

2

打开 ADFS 管理控制台,浏览至信任关系 > 信赖方信任 > 添加信赖方信任

3

从“添加依赖方信任向导”窗口中选择“开始”。

4

在选择数据源步骤中,选择通过文件导入信赖方数据,然后浏览至您下载的 Control Hub 元数据文件,选择下一步。

5

对于指定显示名称,为该依赖方信任创建显示名称,例如 Webex,然后选择下一步

6

选择颁发授权规则步骤中,选择允许所有用户访问该依赖方,然后选择下一步

7

可以添加信任步骤中,选择下一步,完成向 ADFS 添加信赖方信任的操作。

创建 Webex 身份验证声明规则

1

在 ADFS 主面板中,选择您创建的信任关系,然后选择编辑声明规则。 从“颁发转换规则”标签页中,选择“添加规则”。

2

在“选择规则类型”步骤中,选择“以声明形式发送 LDAP 属性”,然后选择“下一步”。

  1. 输入“声明规则名称”。

  2. 选择 Active Directory 作为“属性存储库”。

  3. 将 LDAP 属性“电子邮件地址”映射到“uid”出站声明类型。

    此规则告诉 ADFS 将哪些字段映射到 Webex 以识别用户。 出站声明类型的拼写要与显示的完全相同。

  4. 保存更改。

3

再次选择添加规则,选择使用自定义规则发送声明,然后选择下一步

此规则用于为 ADFS 提供“spname qualifier”属性,而 Webex 不提供这一属性。

  1. 打开您的文本编辑器,复制下列内容。

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/namequalifier"] = "URL1", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/spnamequalifier"] = "URL2");

    按如下所示替换这段文本中的 URL1 和 URL2:

    • URL1 是您下载的 ADFS 元数据文件中的 entityID。

      例如,以下就是您看到的内容示例: <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://ad0a.identitylab20.ciscolabs.com/adfs/services/trust" ID="_55515dde-8147-4183-8a85-b704d26b5dba">

      仅复制 ADFS 元数据文件中的 entityID,将它粘贴到文本文件中以替换 URL1

    • URL2 出现在您下载的 Webex 元数据文件的第一行。

      例如,以下就是您看到的内容示例: <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID=" https://idbroker.webex.com/35a15b0a-0eg1-4029-9f63-a8c54df5df59">

      仅复制 Webex 元数据文件中的 entityID,将其粘贴到文本文件中以替换 URL2。

  2. 完成 URL 的更新后,从文本编辑器中复制该规则(从“c:”处开始),然后将它粘贴到 ADFS 服务器上的自定义规则框中。

    完整的规则应类似以下示例:

  3. 选择“完成”以创建该规则,然后退出“编辑声明规则”窗口。

4

选择主窗口中的“依赖方信任”,然后选择右侧面板中的“属性”。

5

当“属性”窗口显示时,浏览至高级标签页,选择 SHA-256,然后选择确定保存更改。

6

在内部 ADFS 服务器上浏览至以下 URL 来下载文件: https://<AD_FS_Server>/FederationMetadata/2007-06/FederationMetadata.xml


 

您可能需要右键单击该页面并查看页面源代码,才能得到正确格式的 XML 文件。

7

在本地计算机上保存文件。

下一步

您现在已准备就绪,可以从管理门户将 ADFS 元数据重新导入 Webex。

导入 IdP 元数据并在测试后启用单点登录

导出 Webex 元数据,配置 IdP,并将 IdP 元数据下载到本地系统后,您即可以将该元数据导入到 Webex 组织中(从 Control Hub 导入)。

准备工作

请勿从身份提供程序 (IdP) 界面测试 SSO 集成。 我们仅支持服务商启动(SP 启动)的流程,因此您必须将 Control Hub SSO 测试用于此集成。

1

选择一种:

  • 返回 Control Hub — 浏览器的证书选择页面,然后单击下一步。
  • 如果在浏览器选项卡中不再打开 Control Hub,从中的客户视图转至管理 > 组织设置,滚动至身份验证,然后选择操作 > 导入元数据。https://admin.webex.com
2

在“导入 IdP 元数据”页面中,将 IdP 元数据文件拖放到该页面,或使用文件浏览器选项来找到和上传该元数据文件。 单击下一步

如果可以,请使用安全性较高选项。 只有当您的 IdP 使用公共 CA 签署元数据时,这才有可能。

在所有其他情况下,则必须使用安全性较低选项。 这包括元数据未签名、自签名或由私有 CA 签名。


 

Okta 不会签署元数据,因此您必须为 Okta SSO 集成选择安全级别较低

3

选择测试 SSO 设置,当新的浏览器选项卡打开时,登录并使用 IdP 进行身份验证。


 

如果您收到验证错误,可能是凭证有问题。 请检查用户名和密码并重试。

Webex 应用程序错误往往意味着 SSO 设置有问题。 在此情况下,请再检查一遍操作步骤,特别是将 Control Hub 元数据复制粘贴到 IdP 设置中的步骤。


 

若要直接查看 SSO 登录体验,您还可以从此屏幕单击将 URL 复制到剪贴板,并将其粘贴到私密浏览器窗口中。 在此处,您可以使用 SSO 登录。 由于您登录的现有会话中可能存在的访问令牌,此步骤会阻止误报结果。

4

返回到 Control Hub 浏览器标签页。

  • 成功完成测试后,选择测试成功。 打开 SSO,然后单击下一步
  • 如果未成功完成测试,选择测试未成功。 关闭 SSO 并单击下一步

 

除非您选择第一个单选按钮并激活 SSO,否则 SSO 配置在组织中不起作用。

下一步

如果您要从 Okta 中将用户预先配置到 Webex 云,请使用将 Okta 用户同步到 Cisco Webex Control Hub 中的过程。

如果您要从 Azure AD 中将用户预先配置到 Webex 云,请使用将 Azure Active Directory 用户同步到 Cisco Webex Control Hub 中的过程。

您可以按照阻止自动电子邮件中的过程禁用发送给组织中新 Webex 应用程序用户的电子邮件。 文档中还包含向组织中用户发送通信的最佳实践。

更新 ADFS 中的 Webex 信赖方信任

此任务专门涉及使用来自 Webex 的新 SAML 元数据更新 ADFS。 如果需要,请参阅相关文章使用 ADFS 配置 SSO ,或者如果您需要使用新的 Webex SSO 证书的 SAML 元数据更新(其他)IdP

准备工作

您需要先从 Control Hub 导出 SAML 元数据文件,然后才能更新 ADFS 中的 Webex 信赖方信任。

1

使用具有管理员权限的凭证登录 ADFS 服务器。

2

将 SAML 元数据文件从 Webex 上传到 ADFS 服务器上的本地临时文件夹,例如 . //ADFS_servername/temp/idb-meta-<org-ID>-SP.xml

3

打开 Powershell。

4

运行 Get-AdfsRelyingPartyTrust 来读取所有信赖方信任。

注意 TargetName Webex 信赖方信任的参数。 我们使用了示例“Webex”,但在 ADFS 中可能会有所不同。

5

运行 Update-AdfsRelyingPartyTrust -MetadataFile "//ADFS_servername/temp/idb-meta-<org-ID>-SP.xml" -TargetName "Webex"

确保用环境中正确的值替换文件名和目标名称。

请参阅 https://docs.microsoft.com/powershell/module/adfs/update-adfsrelyingpartytrust

 

如果您下载了 Webex SP 5 年期证书,并打开了签名或加密证书吊销功能,则需要运行这两个命令: Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None -TargetName "Webex"

6

登录 Control Hub,然后测试 SSO 集成:

  1. 转至管理 > 组织设置,然后滚动至身份验证,然后打开单点登录设置,以启动设置向导。

  2. 单击下一步跳过导入 IdP 元数据页。

    您之前已导入 IdP 元数据,因此无需重复该步骤。

  3. 请先测试 SSO 连接,然后再启用它。 此步骤就像试运行,在下一步启用 SSO 之前不会影响您的组织设置。


     

    若要直接查看 SSO 登录体验,您还可以从此屏幕单击将 URL 复制到剪贴板,并将其粘贴到私密浏览器窗口中。 在此处,您可以使用 SSO 登录。 这有助于删除在 Web 浏览器中缓存的任何信息,这些信息可能会在测试 SSO 配置时提供误报结果。

  4. 登录完成测试。

ADFS 疑难解答

Windows 日志中的 ADFS 错误

在 Windows 日志中,您可能会看到 ADFS 事件日志错误代码 364。 事件详细信息指出证书无效。 在此类情况下,表示不允许 ADFS 主机通过防火墙端口 80 验证证书。

在尝试为信赖方信任构建证书链时发生了错误

在更新 SSO 证书时,您在登录时可能会遇到此错误: Invalid status code in response

如果您看到该错误,请检查 ADFS 服务器上的事件查看器日志,并查找以下错误: An error occurred during an attempt to build the certificate chain for the relying party trust 'https://idbroker.webex.com/<org-ID>' certificate identified by thumbprint '754B9208F1F75C5CC122740F3675C5D129471D80' 。 潜在原因包括证书已被撤销,证书链无法按照信赖方信任的加密证书撤销设置的规定进行验证,或者证书不在有效期内。

如果发生此错误,则必须运行命令 Set-ADFSRelyingPartyTrust -TargetIdentifier https://idbroker.webex.com/<orgID> -EncryptionCertificateRevocationCheck None

联合标识

“联合标识”区分大小写。 如果这是组织的电子邮件地址,请确保输入的值与 ADFS 发送的完全相同,否则 Webex 无法找到匹配的用户。

无法编写自定义声明规则,以在 LDAP 属性发送前对其进行规范化处理。

从您在环境中设置的 AD FS 服务器导入元数据。

如有必要,您可以验证 URL:在“ADFS 管理”中导航至服务 > 终端 > 元数据 > 类型:联合元数据

时间同步

确保您的 ADFS 服务器的系统时钟已经同步到使用网络时间协议 (NTP) 的可靠因特网时间源。 请使用以下 PowerShell 命令来调整时钟偏移(仅适用于 Webex 信赖方信任关系)。

Set-ADFSRelyingPartyTrust -TargetIdentifier "https://idbroker.webex.com/$ENTITY_ID_HEX_VALUE" -NotBeforeSkew 3

此十六进制值对于您的环境而言是唯一的。 请替换 Webex 元数据文件中的 SP EntityDescriptor ID 值。 例如:

<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID=" https://idbroker.webex.com/c0cb726f-a187-4ef6-b89d-46749e1abd7a">