附录

配置 XSP 身份验证服务(使用 MTLS)

完成本附录中的步骤可在 BroadWorks 上将身份验证服务配置为使用 MTLS 身份验证。 在不支持 CI 令牌验证(使用 TLS)的情况中,必须使用 MTLS 身份验证,包括下列情况:

  • 您使用的是 R21SP1

  • 您使用的是 R22 或更高版本,但有多个 Webex 组织运行在同一 XSP 服务器上


如果您使用的是 R22 或更高版本,并且没有在同一 XSP 服务器上运行多个 Webex 组织,建议对身份认证服务使用 CI 令牌验证(使用 TLS)。

安装身份验证服务

BroadWorks 21SP1 上的身份验证服务是非托管应用程序。 请完成以下步骤以便安装:

  1. 从 Xchange 下载 authenticationService_1.0.war(Web 应用程序资源)文件 (https://xchange.broadsoft.com/node/499012)。

    在 Webex 使用的每个 XSP 上执行以下操作:

  2. 将 .war 文件复制到 XSP 上的临时位置,例如 /tmp/

  3. 使用以下 CLI 上下文和命令安装身份验证服务应用程序:

    XSP_CLI/Maintenance/ManagedObjects> install application /tmp/authenticationService_1.0.war

配置身份验证服务

BroadWorks 长效令牌由托管在 XSP 上的身份验证服务生成并验证。

要求

  • 托管身份验证服务的 XSP 服务器必须配置 mTLS 接口。

  • 所有 XSP 用于加密/解密 BroadWorks 长效令牌的密钥必须相同。 将这些密钥复制到每个 XSP 是手动过程。

  • XSP 必须与 NTP 同步。

配置概述

XSP 上的基本配置包括:

  • 部署身份验证服务。

  • 将令牌持续时间配置为至少 60 天(颁发者保留为 BroadWorks)。

  • 生成 RSA 密钥并在所有 XSP 上共享。

  • 向 Web 容器提供 authService URL。

在 XSP 上部署身份验证服务

对于 Webex 使用的每个 XSP:

  1. 使用以下路径启用身份验证服务应用程序: /authService (必须使用此路径):

    XSP_CLI/Maintenance/ManagedObjects> activate application authenticationService <version> /authService

    (其中 <version>1.0 ,适用于 21SP1 上的非托管应用程序)。

  2. 部署应用程序:

    XSP_CLI/Maintenance/ManagedObjects> deploy application /authService

配置令牌持续时间

  1. 检查现有令牌配置(小时):

    在 21SP1 上: XSP_CLI/Applications/authenticationService_1.0/TokenManagement> get

  2. 将持续时间设为 60 天(最长为 180 天):

    在 21SP1 上: XSP_CLI/Applications/authenticationService_1.0/TokenManagement> set tokenDuration 1440

生成并共享 RSA 密钥

  • 身份验证服务的所有实例必须使用相同的公钥/私钥对进行令牌加密/解密。

  • 首次收到颁发令牌要求时,身份验证服务会生成密钥对。

由于以上两个因素,您需要在一个 XSP 上生成密钥,然后将密钥复制到所有其他 XSP。


如果循环密钥或更改密钥长度,需要重复以下配置并重启所有 XSP。

  1. 选择一个 XSP 用于生成密钥对。

  2. 使用客户端向该 XSP 请求加密令牌,方式是从客户端浏览器请求以下 URL:

    https://<XSP-IPAddress>/authService/token?key=BASE64URL(clientPublicKey)

    (如果 XSP 上没有私钥/公钥对,则会生成一个私钥/公钥对)

  3. (仅适用于 21SP1)使用以下命令检查可配置密钥的位置:

    XSP_CLI/Applications/authenticationService_1.0/KeyManagement> get

  4. (仅适用于 21SP1)记录返回的 fileLocation 参数。

  5. (仅适用于 21SP1)将整个 fileLocation 目录,其中包含 publicprivate 子目录,复制到所有其他 XSP。

向 Web 容器提供 authService URL

XSP 的 Web 容器需要 authService URL 以便验证令牌。

在每个 XSP 上:

  1. 添加身份验证服务 URL 作为 BroadWorks Communications Utility 的外部身份验证服务:

    XSP_CLI/System/CommunicationUtility/DefaultSettings/ExternalAuthentication/AuthService> set url http://127.0.0.1/authService

  2. 将身份验证服务 URL 添加到容器:

    XSP_CLI/Maintenance/ContainerOptions> add tomcat bw.authservice.authServiceUrl http://127.0.0.1/authService

    这样,Cisco Webex 即可使用身份验证服务来验证作为凭据提交的令牌。

  3. 用下列命令检查参数: get

  4. 重启 XSP。

配置身份验证服务的信任(使用 MTLS)

配置信任 (R21 SP1)
  1. 登录合作伙伴中心。

  2. 转至 设置 > BroadWorks Calling,然后单击下载 Webex CA 证书以将CombinedCertChain.txt 下载至您的本地计算机。


    此文件包含两个证书。 在将文件上传到 XSP 之前,您需要先拆分文件。
  3. 将证书链分割为两个证书:

    1. 打开 combinedcertchain.txt (在文本编辑器中)。

    2. 选择并剪切第一个文本块,包括行 -----BEGIN CERTIFICATE----------END CERTIFICATE----- ,然后将文本块粘贴到新文件中。

    3. 将新文件另存为 broadcloudroot.txt

    4. 将原始文件另存为 broadcloudissuing.txt

      原始文件现在应只包含一个文本块,周围环绕着行 -----BEGIN CERTIFICATE----------END CERTIFICATE-----

  4. 将两个文本文件复制到您保护的 XSP 上的临时位置,例如 /tmp/broadcloudroot.txt/tmp/broadcloudissuing.txt

  5. 登录 XSP 并导航至 /XSP_CLI/Interface/Http/ClientAuthentication>

  6. 运行 get 命令并阅读 chainDepth 参数。

    (默认情况下 chainDepth 为 1,这对于拥有两个证书的 Webex 链太低)

  7. 如果 chainDepth 不大于 2,请运行 set chainDepth 2

  8. (可选)运行 help updateTrust 以查看参数和命令格式。

  9. 将证书文件上传到新的信任锚:

    XSP_CLI/Interface/Http/ClientAuthentication/Trusts> updateTrust webexclientroot /tmp/broadcloudroot.txt

    XSP_CLI/Interface/Http/ClientAuthentication/Trusts> updateTrust webexclientissuing /tmp/broadcloudissuing.txt


    webexclientrootwebexclientissuing 是信任锚的示例别名;您可以使用自己的别名。
  10. 确认两个证书均已上传:

    /XSP_CLI/Interface/Http/ClientAuthentication/Trusts> get

配置信任(R22 及以上版本)

  1. 使用合作伙伴管理员帐户登录控制中心。

  2. 转至 设置 > BroadWorks Calling,然后单击下载 Webex CA 证书以将CombinedCertChain.txt 下载至您的本地计算机。


    此文件包含两个证书。 在将文件上传到 XSP 之前,您需要先拆分文件。
  3. 将证书链分割为两个证书:

    1. 打开 combinedcertchain.txt (在文本编辑器中)。

    2. 选择并剪切第一个文本块,包括行 -----BEGIN CERTIFICATE----------END CERTIFICATE----- ,然后将文本块粘贴到新文件中。

    3. 将新文件另存为 broadcloudroot.txt

    4. 将原始文件另存为 broadcloudissuing.txt

      原始文件现在应只包含一个文本块,周围环绕着行 -----BEGIN CERTIFICATE----------END CERTIFICATE-----

  4. 将两个文本文件复制到您保护的 XSP 上的临时位置,例如 /tmp/broadcloudroot.txt/tmp/broadcloudissuing.txt

  5. (可选)运行 help UpdateTrust 以查看参数和命令格式。

  6. 将证书文件上传到新的信任锚:

    XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/Trusts> updateTrust webexclientroot /tmp/broadcloudroot.txt

    XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/Trusts> updateTrust webexclientissuing /tmp/broadcloudissuing.txt


    webexclientrootwebexclientissuing 是信任锚的示例别名;您可以使用自己的别名。
  7. 确认已更新锚:

    XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/Trusts> get

      Alias   Owner                                   Issuer
    =============================================================================
    webexclientissuing    BroadCloud Commercial Issuing CA – DA3     BroadCloud Commercial Trusted Root CA
    webexclientroot       BroadCloud Commercial Trusted Root CA      BroadCloud Commercial Trusted Root CA[self-signed]

(选项)在 HTTP 接口/端口级别配置 mTLS

可在 HTTP 接口端口级别或基于每个 Web 应用程序配置 mTLS。

为应用程序启用 mTLS 的方式取决于您在 XSP 上托管的应用程序。 如果您托管的多个应用程序需要 mTLS,应在接口上启用 mTLS。 如果您只需要保护多个使用相同 HTTP 接口的应用程序之一,可在应用程序级别配置 mTLS。

在 HTTP 接口/端口级别配置 mTLS 时,通过该接口/端口访问的所有托管 Web 应用程序都需要 mTLS。

  1. 登录要配置接口的 XSP。

  2. 导航至 XSP_CLI/Interface/Http/HttpServer> 并运行 get 命令以查看接口。

  3. 要添加接口并要求客户端身份验证(即与 mTLS 相同):

    XSP_CLI/Interface/Http/HttpServer> add IPAddress Port Name true true

    有关详细信息,请参阅 XSP CLI 文档。 基本上,第一个 true 使用 TLS 保护接口(必要时创建服务器证书),第二个 true 强制接口要求对客户端证书进行身份验证(它们都是 MTLS)。

例如:

XSP_CLI/Interface/Http/HttpServer> get

Interface Port Name Secure Client Auth Req Cluster Fqdn
         =======================================================
         192.0.2.7 443 xsp01.collab.example.net true false 
         192.0.2.7 444 xsp01.collab.example.net true true

在此例中,MTLS (Client Auth Req = true) 已在下列位置启用: 192.0.2.7 端口 444 。 TLS 已在下列位置启用: 192.0.2.7 端口 443

(选项)为特定 Web 应用程序配置 mTLS

可在 HTTP 接口端口级别或基于每个 Web 应用程序配置 mTLS。

为应用程序启用 mTLS 的方式取决于您在 XSP 上托管的应用程序。 如果您托管的多个应用程序需要 mTLS,应在接口上启用 mTLS。 如果您只需要保护多个使用相同 HTTP 接口的应用程序之一,可在应用程序级别配置 mTLS。

在应用程序级别配置 mTLS 时,无论 HTTP 服务器接口配置如何,该应用程序都需要 mTLS。

  1. 登录要配置接口的 XSP。

  2. 导航至 XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/WebApps> 并运行 get 命令以查看正在运行的应用程序。

  3. 要添加应用程序并要求客户端身份验证(即与 mTLS 相同):

    XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/WebApps> add IPAddress Port ApplicationName true

    有关详细信息,请参阅 XSP CLI 文档。 应用程序名称在此枚举。 该 true (在该命令中)会启用 mTLS。

例如:

XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/WebApps> add 192.0.2.7 443 AuthenticationService true

此示例命令将 AuthenticationService 应用程序添加到 192.0.2.7:443 中,并要求该应用程序从客户端请求并验证证书。

使用 get 检查:

XSP_CLI/Interface/Http/SSLCommonSettings/ClientAuthentication/WebApps> get

Interface Ip Port Application Name Client Auth Req
         ===================================================
         192.0.2.7 443 AuthenticationService      true          

针对 AuthService 进行相互 TLS 身份验证的其他证书要求

Cisco Webex 通过经过相互 TLS 身份验证的连接与验证服务进行交互。 这意味着 Webex 会出示客户端证书,而且 XSP 必须对其进行验证。 要信任此证书,请使用 Webex CA 证书链在 XSP(或代理)上创建一个信任锚。 可通过 Partner Hub 下载证书链:

  1. 转到设置 > BroadWorks Calling

  2. 单击“下载证书”链接。


部署此 Webex CA 证书链时,具体的要求取决于您面向公众的 XSP 的部署方式:

  • 通过 TLS 桥接代理

  • 通过 TLS 传递代理

  • 直接连接到 XSP

下图总结了在下面这三种情况下必须部署 Webex CA 证书的位置。

TLS 桥接代理的相互 TLS 证书要求

  • Webex 向代理出示 Webex CA 签发的客户端证书。

  • Webex CA 证书链部署在代理信任库上,因此代理会信任客户端证书。

  • 还要将公开签发的 XSP 服务器证书加载到代理中。

  • 代理向 Webex 出示公开签发的服务器证书。

  • Webex 信任签发代理服务器证书的公共 CA。

  • 代理向 XSP 出示内部签发的客户端证书。

    此证书必须在 x509.v3 扩展字段扩展密钥用法中填充 BroadWorks OID 1.3.6.1.4.1.6431.1.1.8.2.1.3 和 TLS clientAuth 目的。 例如:

    X509v3 extensions:

    X509v3 Extended Key Usage:

    1.3.6.1.4.1.6431.1.1.8.2.1.3, TLS Web Client
                  Authentication 

    请注意,当为代理生成内部客户端证书时,不支持 SAN 证书。 XSP 的内部服务器证书可以是 SAN。

  • XSP 信任内部 CA。

  • XSP 出示内部签发的服务器证书。

  • 代理信任内部 CA。

DMZ 中的 TLS 传递代理或 XSP 的相互 TLS 证书要求

  • Webex 向 XSP 出示 Webex CA 签发的客户端证书。

  • Webex CA 证书链部署在 XSP 的信任库上,因此 XSP 会信任客户端证书。

  • 还要将公开签发的 XSP 服务器证书加载到 XSP 中。

  • XSP 向 Webex 出示公开签发的服务器证书。

  • Webex 信任签发 XSP 服务器证书的公共 CA。