簡體   English   中英

IDP在現有App中啟動SSO實施

[英]IDP Initiated SSO Implementation in existing App

我有一個現有的應用程序,突然之間我被賦予執行IDP啟動的SSO的任務。 有一個指向IDP的URL,單擊它要求我使用IDP提供的憑據登錄,成功登錄后,路由轉到我們的應用程序,然后我的任務開始識別用戶並提供適當的訪問權限。 我有IDP提供的證書。 我怎樣才能做到這一點? 我的應用程序是Spring MVC Java Application。我正在使用JBOSS AS7。之前我沒有做過類似的事情。 任何人都可以對此進行逐步清晰的描述嗎? 我看到了Spring SAML擴展,我無法正確理解該擴展以使其與現有應用集成。 在這方面的任何幫助將不勝感激。

IdP發起的SSO

具有POST綁定的IdP啟動的SSO

  1. 如果用戶在IdP上沒有有效的本地安全上下文,則在某個時候,將要求用戶向IDP站點idp.example.org提供其憑據。
  2. 用戶提供有效的憑據,並在IdP上為該用戶創建本地登錄安全上下文。
  3. 用戶選擇菜單選項或在IdP上鏈接以請求訪問SP網站sp.example.com。 這將導致IdP的單一登錄服務被調用。
  4. 單一登錄服務將構建一個SAML斷言,該斷言表示用戶的登錄安全上下文。 由於將使用POST綁定,因此在將聲明置入SAML消息之前,對聲明進行數字簽名。 然后,將消息放置在HTML FORM中,作為名為SAMLResponse的隱藏表單控件。 (如果IdP和SP支持在SP處標識特定應用程序資源的約定,則還使用名為RelayState的隱藏表單控件將SP處的資源URL編碼為表單。)單一登錄服務發送HTML表單將HTTP響應返回到瀏覽器。 為了易於使用,HTML FORM通常將包含腳本代碼,這些腳本代碼將自動將表單發布到目標站點。
  5. 瀏覽器由於用戶操作或執行“自動提交”腳本而發出HTTP POST請求,以將表單發送到SP的Assertion Consumer Service。 服務提供者的斷言消費者服務從HTML FORM獲取消息以進行處理。 必須首先驗證SAML斷言上的數字簽名,然后處理斷言內容,以便為SP處的用戶創建本地登錄安全上下文。 完成此操作后,SP將檢索RelayState數據(如果有)以確定所需的應用程序資源URL,並將HTTP重定向響應發送到瀏覽器,以指示其訪問請求的資源(未顯示)。
  6. 進行訪問檢查以確定用戶是否具有訪問資源的正確授權。 如果訪問檢查通過,則資源將返回到瀏覽器。

參見saml-tech-overview-2.0

因此,如果要實施SP,則必須執行步驟5和6,否則執行1-4。

對於實現,您可以使用OpenSaml(如果您無法將其與Spring SAML擴展一起使用)。

暫無
暫無

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

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