理解客户端身份验证

学习目标

  • 说明基本身份验证和基于证书的身份验证方法、它们的区别,以及如何在 SAP 系统中维护客户端身份验证详细信息

客户端身份验证

客户端身份验证是计算机网络和系统中使用的一个过程,用于验证尝试访问服务器或服务的客户端(用户或设备)的身份。它是一种安全机制,确保只有经过授权的客户端才能访问受保护的资源。

客户端在获得访问权限之前需要向服务器提供凭据。服务器随后验证这些凭据,以确定客户端是否如其声称的身份。我们将重点介绍用于通过 Cloud Integration 将 SAP Sales and Service Cloud 与 SAP S/4HANA 集成的两种相关凭据类型/身份验证方法。它们是:

  • 基本身份验证:客户端发送用户名和密码(机密)。

  • 基于证书的身份验证:客户端使用其私钥解决密码学挑战来证明其身份,而不将私钥(机密)暴露给服务器。

基本身份验证

基本身份验证是 HTTP 协议中使用的一种简单身份验证方法,客户端通过在 HTTP 请求头中向服务器发送用户名和密码来证明其身份。在 HTTP 请求头中,用户名和密码经过 Base64 编码,但未加密。因此,此身份验证方法强烈依赖传输层加密,例如 HTTPS。

  • 优点:

设置简单,没有外部依赖。它易于实现且易于理解,因此在互联网上被广泛使用。

  • 缺点:

除传输层加密外,密码以纯文本形式发送到服务器。如果连接被拦截或服务器被攻破,有人可能窃取密码,从而冒充客户端的身份。此外,定期终止加密 TLS 连接的网络组件(例如反向代理)也可以看到纯文本形式的密码。如果这些组件的日志记录过程配置不正确,密码甚至可能被写入日志文件。

  • 基本身份验证小结:

基本身份验证只应与提供传输层加密的协议一起使用,如 HTTPS 那样。此外,密码应足够强。这意味着不能太短、不易被猜到,并由不同的字符类别组成以确保足够的复杂性。此外,密码应在一段时间后更改。

基于证书的身份验证

基于证书的身份验证是一种依赖数字证书来验证用户或设备身份的身份验证方法。因此,它涉及使用**公钥基础设施(PKI)**来颁发和管理证书。

基于证书的身份验证在连接建立期间的 TLS 握手过程中进行。该过程与建立到服务器的信任关系类似,但这次客户端出示由服务器信任的证书颁发机构(CA)颁发的证书。由于在此身份验证方法中服务器和客户端都要证明自己的身份,因此它通常被称为双向身份验证

作为身份验证过程的一部分,客户端将其证书(包括公钥,但不包括私钥!)发送给服务器。在服务器验证证书有效且受信任后,客户端必须证明其拥有该证书,即拥有相应的私钥。客户端可以通过使用其私钥对数据签名并将其发送到服务器来做到这一点,服务器则可以用相应的公钥验证该签名。

如果此过程成功,就会建立一个使用新的唯一机密(也称为会话密钥)的安全通信通道。这降低了重放攻击的可能性,即通信被拦截并以恶意方式重新传输。

Note

与基本身份验证的一个重要区别是,客户端不向服务器发送任何机密。

  • 优点:

基于证书的身份验证提供强大的安全性,因为它使用公钥加密。与证书关联的私钥被保密,在身份验证期间从不传输到服务器。即使攻击者能够窃听现有通信,也无法用它来冒充客户端的身份。

  • 缺点:

由于涉及 PKI,实施或设置基于证书的身份验证更为复杂。它需要证书颁发机构、管理证书,并确保私钥的安全存储。这通常会带来额外成本,无论是使用现有的公共 PKI 还是运行自己的 PKI。最后,证书在创建时具有指定的有效期,必须在到期前续订。虽然从安全角度看这实际上是一个优势,但它增加了维护工作量,并带来了错过到期日的风险,这会导致连接中断,是一个常见的陷阱。

  • 基于证书的身份验证小结:

基于证书的身份验证以更多的设置和维护工作量为代价,提供强大的安全性。跟踪证书的有效期是保持集成场景不间断运行的重要步骤。

总体小结

Note

使用客户端证书可确保通信过程具有更高的安全性。它们是明确的建议,尤其是在生产环境中。

在集成项目开始时,即在设置集成以测试基本连接性时,基本身份验证可能有用。对于测试环境,根据系统的角色和其中存储的数据,保留基本身份验证可能就足够了。然而,在生产环境中,应避免使用基本身份验证。

在 SAP 系统中维护客户端凭据

在不同的 SAP 解决方案中,维护客户端凭据的处理方式不同。以下列表简要概述了涉及的解决方案。更多细节将在配置课程中展示。

SAP Sales and Service Cloud

无论 SAP Sales and Service Cloud 充当客户端还是服务器,凭据都是按通信安排维护的,无论是基本身份验证还是基于证书的身份验证。它们可以在以下位置找到:

Work Center AdministratorView General SettingsCommunication Arrangements

Cloud Integration

入站连接的凭据在 SAP Business Technology Platform (BTP) cockpit 中维护。

出站连接的凭据在 Monitor/Operations 视图中维护:

  • Security Materials 用于密码

  • Keystore 用于证书

Note

Cloud Integration 前面有一个负载均衡器,它终止 TLS 连接并负责验证客户端证书。这意味着当使用客户端证书向 Cloud Integration 进行身份验证时,客户端证书必须由负载均衡器组件信任的某个证书颁发机构(CA)签名。您可以在 SAP Help Portal 上找到更多详细信息。请注意,这就是为什么您无法使用自己 PKI 的客户端证书,即使您将相关 CA 证书添加到 Cloud Integration 的密钥库中也是如此。

SAP S/4HANA

客户端凭据根据所使用的协议(IDoc/SOAP)在不同位置维护,而证书则在另一个集中位置维护:

  • 基于 iDoc 的通信使用事务 SM59 中的 RFC 目标

  • 基于 Web 服务的通信使用事务 SOAMANAGER 中的使用者代理

  • 证书维护使用事务 STRUST