为应用程序层加密和签名配置 SSL 证书
为应用程序 (例如 ThingWorx 和 PingFederate) 配置 SSL 证书,以达到如下目的:
• SAML 签名和签名验证 - 建立信任并验证原始请求源。
• XML 加密和解密 - 提供 SAML 响应的安全通信。
SAML 签名和签名验证
签名由私钥完成,签名验证由公钥完成。
在签名和签名验证过程中:
◦ 服务提供者与 CAS 间的任何通信均由服务提供者私有证书签名。在 CAS 上,签名验证由服务提供者公用证书完成。此外,在 CAS 上,通信由 CAS 私有证书再次签名,在标识提供者 (IdP) 上,签名验证由 CAS 公用证书完成。
◦ IdP 与 CAS 间的任何通信均由 IdP 私有证书签名。在 CAS 上,签名验证由 IdP 公用证书完成。此外,在 CAS 上,通信由 CAS 私有证书再次签名,在服务提供者上,签名验证由 CAS 公用证书完成。
下图显示了各种应用程序间的签名和签名验证过程。
在图中:
◦ ThingWorx 为服务提供者,PingFederate 为 CAS。
◦ ThingWorx 私有证书和 PingFederate 公用证书在由 ThingWorx SSO 配置所引用的 KeyStore 文件中进行配置。
◦ ThingWorx 公用证书和 PingFederate 私有证书在 PingFederate 服务器上的 IdP 配置部分中进行配置。
◦ IdP 公用证书和 PingFederate 私有证书在 PingFederate 服务器上的服务提供者配置部分中进行配置。IdP 公用证书包含在 IdP Metadata.xml 文件中。
◦ PingFederate 公用证书在 IdP 上的信赖方配置中进行配置。此证书包含在从 PingFederate 服务器导出的服务提供者的 Metadata.xml 文件中。
XML 加密和解密
加密和解密 SAML 响应 (其中也包含从 IdP 到 CAS 以及从 CAS 到服务提供者的声明)。签名和加密使用相同的证书。
IdP 与 CAS 间的任何通信均由 CAS 公用证书加密,在 CAS 上,通信由 CAS 私有证书解密。此外,在 CAS 上,通信由服务提供者公用证书再次加密。在服务提供者上,通信由服务提供者私有证书解密。
下图显示了 XML 加密和解密过程。
在图中:
◦ ThingWorx 为服务提供者,PingFederate 为 CAS。
◦ ThingWorx 私有证书在 sso-settings.json 文件中所引用的 ThingWorx 服务器上的 KeyStore 文件中进行配置。
◦ ThingWorx 公用证书和 PingFederate 私有证书在 PingFederate 服务器上的服务提供者配置部分中进行配置。