2015-04-07 85 views
0

我有一個應用程序(AppA)需要通過另一個應用程序(AppB)訪問URL。在Java中實現SAML SSO

AppB是服務提供者,也有身份提供者。

我想創建一個自動的方式來訪問我的應用程序在AppA的URL。

我知道在服務提供商給用戶(在這種情況下是我的應用程序)之後,用戶需要使用用戶名和密碼登錄的身份驗證URL後,在SAML協議中。我想知道是否有通用的方式來實現這個標誌,或者我必須使用我已經擁有的用戶名和密碼來實現類似POST請求的東西?

+0

改寫以確保我明白:AppA需要訪問由某種Web訪問控制系統保護的AppB提供的資源? –

回答

0

在SAML世界中,您需要調用一個身份決策點(idp),策略決策點(pdp)和策略執行點(pep)以及一個服務。 idp以用戶證明其身份的方式提供身份驗證。 pdp信任idp,並將決定用戶將提供有效的idp文檔的授權級別。基於pdp文檔,pep將允許或拒絕對服務的訪問。

聯繫服務的一般流程是直接調用它,導致響應的響應爲not authorized。結果應該包括關於接受的pdps的信息。接下來調用pdp,它將提供接受idps的信息。客戶端然後聯繫idp並代表用戶進行身份驗證。生成的由idp簽名的文檔被傳遞給pdp。然後來自pdp的簽名響應再次傳遞給服務。服務十與文件聯繫。

在現實世界中,點可能不是單個實例,而是合併。所以服務也可能包含pep,或者idp也可以是pdp。

所以看看你的架構/基礎設施。

+0

有沒有這樣的圖書館?或者你有實施指南?因爲那是我正在尋找的 –

+0

idp上的身份驗證是idp特有的。請更新您的問題並提供有關參與方的更多信息。 – Hannes

+0

我不確定我是否同意你選擇的術語Hannes。您使用的大多數術語在訪問控制系統(如SAML的表弟,XACML:http://en.wikipedia.org/wiki/XACML)中更常見。您可以在SAML術語表中找到PDP/PEP/etc,但只能參考授權,而不是身份驗證(SAML插入的地方)。 https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language –