2017-05-05 66 views
0

我設置了Shibboleth IDPv3來測試我的SP實現。 SP發送SAML登錄請求,並向用戶顯示Shibboleth IDP憑證頁面,用戶在其中輸入Kerberos憑證(我已使用KerberosAuthNConfiguration配置了Loginflow)。 SAML響應返回一個nameId,它具有看起來像一個編碼值。但是,我想要的是NameId元素包含用戶用來登錄到IDP憑證頁面的用戶名。Shibboleth IDPv3 NameId with KerberosAuthNConfiguration

我嘗試着通過嘗試在各種XML配置文件中配置bean而沒有任何運氣。有沒有人試過類似的東西,甚至有可能實現?

回答

0

如果您查看文件saml-nameid.properties,您將看到參數idp.nameid.saml2.default。我懷疑你的配置設置爲默認值urn:oasis:names:tc:SAML:2.0:nameid-format:transient,這不是一個編碼值,而是一個隨機字符串。

這聽起來像你想發送一個「持久性」的標識符,而不是一個瞬態標識符。要做到這一點,

  1. 更改idp.nameid.saml2.default改爲urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  2. 接下來,您將需要在文件saml-nameid.xml中啓用持久NameID生成器。
  3. 最後,您需要通過idp.persistentId.sourceAttribute屬性設置要在您的nameid中使用的屬性,同樣在saml-nameid.properties中。

有關如何操作的詳細信息,請參閱Shibboleth IdP PersistentNameIDGenerationConfiguration page

+0

但是,我仍然不確定是否可以使用用戶輸入的任何用戶名動態填充NameID,以便在發送SAML請求後使用kerberos登錄到idp憑證頁面。因此,如果用戶使用憑證testuser,testpass我希望nameId在SAML響應中作爲testuser返回。 – pmolyv85