2016-11-24 52 views
2

我正在使用SAML爲運行tomcat的Web服務器實施SSO身份驗證流程。使用POST或重定向綁定時,一切正常,但從我讀過的支持REST API前面的SAML身份驗證的操作中,我還需要配置和使用ECP配置文件。如何使用SAML ECP配置文件配置Keycloak

首先糾正我,如果我錯了,但ECP流程應該是這樣的:

  1. 客戶端訪問SP REST API
    • 客戶知道自己需要進行身份驗證,所以他建立了必要的ECP標題(Accept: application/vnd.paos+xmlPAOS: urn:liberty:paos:2003-08;urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp
  2. SP看到客戶端沒有通過認證,並返回包含PAOS索取SOAP包絡。
  3. 客戶負責將其發送給其ECP消費者服務上的相應IdP。
  4. 對IDP挑戰認證客戶端
  5. 國內流離失所者返回另一個SOAP信封的形式的響應,包含在其體內的SAML響應
  6. 客戶端必須發送該響應SP的ECP/SOAP斷言使用者服務

問題是這一切的工作,直到第6步在這一步,我有問題,該響應包絡的體內含有一種目標屬性,它指向的POST斷言消費服務 SP。此目標屬性由keycloak設置,並與我想要發送響應的實際ECP服務不匹配。我們使用的SAML庫是opensaml,它根據這個Destination屬性檢查請求URI,如果它們不匹配,則拋出異常org.opensaml.xml.security.SecurityException: SAML message intended destination endpoint did not match recipient endpoint

我明白爲什麼會引發此異常,但無法理解如何使用SP的ECP/SOAP服務配置Keycloak。在Keycloak的管理控制檯中,我只能配置SSO POST/Redirect和SLO POST/Redirect的URL,但沒有關於ECP。

我目前正在配置另一個IdP,但我確實希望確保Keycloak也可以成爲我們解決方案的支持服務器。

回答

-1

你不能只讀paos:請求responseConsumerURL併發布idp響應到該url?

至少,這就是我設法做到的。