簡體   English   中英

Spring Security SAML signingKey / encryptionKey

[英]Spring Security SAML signingKey/encryptionKey

源代碼中的注釋:

  1. encryptionKey:用於加密發送到遠程實體的消息或解密發送到本地實體的數據的加密密鑰。

  2. signingKey:用於對消息簽名或驗證此實體簽名的簽名密鑰。

我在源代碼中看到了signingkey符號發送消息,但是沒有看到驗證簽名的代碼。

if (sign) {
        Assert.notNull(samlContext.getLocalSigningCredential(), "Cannot sign outgoing message as no signing credential is set in the context");
        samlContext.setOutboundSAMLMessageSigningCredential(samlContext.getLocalSigningCredential());
    }

通常sp和idp之間的signingKey / encryptionKey應該有所不同,我無法理解以上對這兩個字段的解釋。 您有什么建議?

加密和簽名用於滿足兩個不同的需求:第一個確保您只有接收者才能讀取斷言的內容,而第二個確保您已由應用簽名的實體生成了一個斷言,並且該斷言尚未修改。 通常,當您不想讓接收者(敏感數據)只讀取消息時,應該使用加密;而當您想要確定發射器時,則應該使用簽名(幾乎總是用於身份驗證響應和屬性語句)

加密和簽名是在非對稱密碼學上實現的。 這意味着您可以使用公鑰來驗證簽名,也可以使用公鑰來加密消息,以便只能由對應私鑰的所有者解密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM