2017-06-02 154 views
1

我有一個使用spring security和mvc framework開發的門戶應用程序。這個門戶應用程序連接到IDP(使用Spring安全和spring saml開發)進行身份驗證。如果用戶身份驗證成功,用戶將被導航到爲外部應用程序提供多個鏈接的主頁...當用戶點擊應用程序鏈接時,用戶應成功導航到相應的應用程序,而不會對登錄頁面產生挑戰。Spring saml SSO

其他應用程序是使用struts和spring security開發的。如何確保從門戶點擊鏈接時,saml標記或上下文將傳遞給其他應用程序,以便它不會要求登錄。

任何幫助,非常感謝。

回答

2

對SAML最常見的流程是一樣的東西如下:

  1. 未經身份驗證的用戶應用程序(稱爲服務提供商或SP)接收請求(任何要求,如要求提供業務資源)
  2. 它將用戶(通常通過http重定向)重定向到IdP(其中SP應該已經註冊)
  3. 如果用戶沒有通過IdP認證(未登錄到SSO),則會顯示登錄表單並登錄由IdP管理,直到與IdP有用戶會話
  4. 如果用戶已經通過IdP身份驗證(因爲他已經或輸入了正確的用戶/密碼),則IdP發佈其聲明令牌並將該令牌回傳給SP中的聲明消費者服務原始應用程序)
  5. 斷言消費者服務(實際上只是一個API端點)接收並驗證SAML令牌並與用戶創建自己的應用程序會話。現在的用戶進行身份驗證的應用程序(SP)
  6. 在下一次請求的應用程序(SP),已經有一個會議,所以SAML不參與

注意,如果已經有一個會話與IdP一起,這一切對用戶來說都是無縫的。發生了一系列重定向,但用戶只需輸入憑據即可訪問應用程序。

因此,對您的問題的簡短回答是您的外部應用程序需要支持SAML SSO並需要向身份提供商註冊,在這種情況下,他們可以使用IdP對用戶進行身份驗證並對其聲明進行簽名有。