2017-05-11 77 views
1

我是SSO實施的新手。我們正在考慮爲使用PHP應用程序(由我們支持)的客戶端實施SSO,以便他們的員工登錄到應用程序。我們正在爲此設置Simple SAML。我一直在閱讀有關SSO的文章,其中許多內容都很有幫助。請原諒我問這個,我知道這是愚蠢的。在這種情況下,誰是IDP,誰將成爲服務提供者。客戶端顯然也將SSO用於其他應用程序。有人能夠從我們的最終結果中看出我需要做些什麼。我會研究如何去做每一件事情。有人可以通過提及需要實施的事情來提供幫助。爲php應用程序實現SSO的步驟

回答

2

誰是IDP誰將成爲服務提供者。

IDP(身份提供者)是以saml條款創建,存儲,維護和驗證用戶或委託人身份的人。所以在你的情況下,它是客戶端應用程序。

SP(服務提供商)是向用戶提供服務或資源(由IDP進行身份驗證)的服務提供商,因此在您的情況下它是您的應用程序。

SSO workflow

可能有人請提的是,需要實現的事情幫助。

,你可以在上面的圖中看到,當用戶嘗試訪問您網站上的資源,你將不得不重定向到IDP確認該用戶是否已經驗證過了,你應該爲他們服務的資源,他們正在找。通過元數據在IDP和SP之間交換SSO URL和其他詳細信息。

一旦IDP對用戶進行了身份驗證,他們將在您的應用程序url上發佈響應。此響應包含一個assertion,通過它您將瞭解一些用戶詳細信息以及用戶是否已通過身份驗證。你將不得不解析這個響應(xml)。此外,這些斷言通常用證書籤名,並以64編碼。

您還必須考慮SLO,因此當用戶在您的網站中單擊註銷時,您可能必須從應用程序中清除其會話並重定向它們到IDP,以便他們也從那裏註銷。

正如smartin所建議的那樣,您可以使用一些庫來實現SAML。我也正在學習SAML,因爲我們正在將我們當前的應用程序轉換爲IDP :)

我發現SAML官方文檔和一些圖表非常有幫助。 http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html

1

您的應用程序是SP,客戶將向您提供IdP元數據以註冊您的SP。

爲了SAML支持添加到PHP應用程序,你有2種選擇:

他們都是有據可查的,你會需要花一些時間閱讀/學習。

+0

非常感謝。非常感謝您的幫助! –

相關問題