2.9.2. 断言中的数字签名
数字签名允许 IDP 为 SAML v2 安全断言签名,并让 SP 验证这些签名和断言。这对于验证断言的真实性非常有用,特别是对于以不安全的方式传输的断言(例如不使用 SSL/TLS)时。
要在安全断言中直接在 IDP 和 SP 中启用数字签名,必须在 IDP 和 SP picket link.xml
文件中执行以下步骤:
启用
SupportsSignatures
。要启用数字签名,必须更新
<PicketLinkIDP>
和<PicketLinkSP>
元素。对于 IDP 和 SP,添加或更新
<PicketLinkSP>
中的SupportsSignatures 属性
为 true:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加处理程序.
此外,处理器必须添加到
<Handlers>
。对于 IDP 和 SP,将
SAML2SignatureGenerationHandler
和SAML2SignatureValidationHandler
添加到picketlink.xml
文件中:IDP picketlink.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SP picketlink.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告处理程序通过责任链来实施,每个处理程序按照 selectet
link.xml
定义的顺序执行请求和响应的逻辑。务必要注意处理程序的配置顺序。SAML2SignatureGenerationHandler
不能在与SAML2EncryptionHandler
相同的链中配置。这将导致 SAML 消息签名多次。配置密钥提供程序.
最后,必须将
<KeyProvider>
元素添加到 BOTH picketlink.xml
文件中。此元素提供访问用于签署安全断言的 Java 密钥存储的位置和凭据。有关生成 Java 密钥存储的示例,请参阅 JBoss EAP如何配置服务器安全指南 。对于 IDP,该元素应添加到
<PicketLinkIDP>
中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 SP,该元素应添加到
<PicketLinkSP>
中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意为了正确加密和解密断言,IDP 需要生成签名,SP 需要验证这些签名并确定签名的来源。这通过
<ValidatingAlias>
元素来完成。对于受信任的每个可信服务器/域,需要有一个 <ValidatingAlias>
;,这是<Trust>
元素中的每个条目。SPS 需要为每个包含 IDP 的服务器/域都有一个 <ValidatingAlias>
。