2015-08-03 541 views

回答

0

基於大多數聯合SAML系統的一個常見答案是您需要使用元數據中的公鑰來驗證已簽名的響應。如果使用公鑰驗證簽名是一個陌生的概念,那麼花一點時間閱讀PKI或「公鑰基礎結構」。然後,您應該轉到XML Signature Specification.

我注意到CAS使用SAML2,但不會在簽名上構建其信任基礎架構,但不會在允許展示令牌的服務提供商的白名單上構建其信任基礎架構。

如果您使用的是PKI信任模型,則簽名應位於<ds:Signature>元素中。元數據應包含<KeyDescriptor>元素中的公鑰,最好使用屬性use = signing。有關更多詳細信息,請參見the SAML Core specification的「5 SAML和XML簽名語法和處理」部分。

其他安全檢查包括:

  • 是否有 「InResponseTo」 屬性?從核心:「...它必須存在,其值必須匹配相應的請求ID 屬性的值。」
  • 是否有「目標」屬性?從核心:「如果它存在,實際收件人必須檢查URI參考標識郵件的接收位置,如果不是,則必須丟棄該響應。」
+0

感謝您的幫助。它基於PKI信任模型,我從元數據文件中獲得證書,SAML響應已根據元數據文件中的證書進行檢查。 –