SOAP 消息级认证在 SAP Web Service 集成里的落地逻辑
最近做 SAP 和外围系统集成时,经常会碰到一个看起来很老派、但在生产系统里仍然很硬核的问题,SOAP Web Service 已经跑在 HTTPS 上了,为什么接口方还要求在 SOAP Header 里放 UsernameToken、X.509 Certificate Token 或 SAML Token,甚至还要做 XML Signature 和 XML Encryption。
这类要求不是多此一举。HTTPS 解决的是传输通道的保护,重点在客户端到服务端这一段连接。而 SOAP 消息级认证关注的是消息本身,认证数据跟着 SOAP Envelope 一起走,放在 SOAP Header 里,由 WS Security 的 Token Profile 表达。SAP NetWeaver AS Java 支持的典型 WS Security Token Profile 包括 UsernameToken、X.509 Certificate Token 和 SAML Token,同时还可以结合 XML Encryption、XML Signature、Message Aging 和 WS SecureConversation 等机制来保护 SOAP 消息。SAP 官方文档对这个定位说得很直接,认证数据位于 SOAP Header,机制基于 WS Security Token Profile。(
