2016-10-11 124 views
0

我有和其他幾個問題一樣的問題,其中沒有一個真正回答過;即使用CAS 4.x(實際爲4.2.6),我無法獲取LDAP屬性以返回到客戶端應用程序。CAS 4.x和LDAP屬性

Question 1這似乎是矯枉過正;定製代碼來解決什麼是「簡單」問題。

Question 2已經這樣做了,它沒有工作。

所以,現在輪到我問......有沒有什麼魔法讓它工作?我們已經使用3.5很長一段時間沒有任何問題。我試圖將這些設置轉換爲4.x的Maven覆蓋層和4.x的新的上下文配置,並且它不是做它。

我可以在日誌中看到CAS正在請求,並從LDAP中獲取我正在查找的屬性。但是他們並沒有把令牌放回應用程序。

除了Apereo文檔規定的外,還需要做些什麼?我認爲這是屬性庫可能?如果有什麼可以幫助你通過這個,請問:Config,Logs(當然是編輯)......任何東西。

謝謝。

更新#1。這是我的解析器列表。注:我保持代碼/設置的地方註釋掉,直到我得到它的工作,然後我清理東西。

<util:map id="authenticationHandlersResolvers"> 
    <!-- 
    <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> 
    <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /> 
    --> 
    <!--<entry key-ref="ldapAuthenticationHandler" value-ref="primaryPrincipalResolver" /> --> 
    <entry key-ref="ldapAuthenticationHandler" value="#{null}" /> 
</util:map> 

更新#2

我做更多的測試,仍然是不成功的。我認爲,它歸結於LdapAuthenticationHandler的principalAttributeMap無法正常工作,或者是serviceRegistryDao的attributeReleasePolicy ...任何人都可以在此配置中看到任何問題?

<bean id="ldapAuthenticationHandler" class="org.jasig.cas.authentication.LdapAuthenticationHandler" 
    p:principalIdAttribute="sAMAccountName" 
    c:authenticator-ref="authenticator" 
    > 
    <property name="principalAttributeMap"> 
     <map> 
      <entry key="cn" value="cn" /> 
      <entry key="mail" value="Email" /> 
      <entry key="memberOf" value="Groups" /> 
      <entry key="displayName" value="displayName" /> 
     </map> 
    </property> 
</bean> 

<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"> 
    <property name="registeredServices"> 
     <list> 
      <bean class="org.jasig.cas.services.RegexRegisteredService" 
        p:id="5" 
        p:name="All Servicesxxx" 
        p:description="Allow connections for all services and protocols" 
        p:serviceId="^(http|https|imaps)://.*" 
        p:evaluationOrder="5" 
        > 
       <property name="attributeReleasePolicy"> 
        <bean class="org.jasig.cas.services.ReturnAllAttributeReleasePolicy" /> 
       </property> 
      </bean> 
     </list> 
    </property> 
</bean>  
+0

您是否在第二個問題中講過#{null}的事情?我建議你不要使用JSON。這導致我的CAS服務器出現問題。檢查我的問題答案(問題1),看看它是否對你有幫助。 – Goldi

+0

是的,我在Authentication Handler Resolvers列表中完成了#{null}更改。它沒有幫助。 –

+0

我回答了我的問題(問題1)。我寫的那些東西除了我描述的東西外都適用於我。你使用這個文件嗎? – Goldi

回答

0

要從CAS Security Guide引述如下:

CAS服務器的所有通信都必須發生在安全信道上 (即使用TLSv1)。這有 要求兩個主要理由:

  1. 認證過程需要的安全 憑據傳輸。
  2. CAS票證授予票證是一個不記名票證。

由於這兩個數據的披露將允許模擬攻擊,以確保CAS 客戶端和CAS服務器之間的通信通道的 至關重要。

實際上,這意味着所有CAS網址都必須使用HTTPS,但它也 意味着從CAS服務器應用程序的所有連接都必須 進行使用HTTPS:

  • 時產生在調用代理回調URL時,服務票據在「服務」url上發送迴應用程序。

HTTPS是在CAS必須的。但是,有可能會禁用它,但強烈建議不要這樣做。如果您很難處理SSL配置,我建議您閱讀my question,我將詳細解釋如何處理密鑰庫。

+0

我有「禁用它」或更好的描述是:配置CAS以允許對非安全應用程序進行身份驗證。我現在的目標是讓它工作,然後我們可以將它傳遞給QA組進行最終測試。主要是因爲很難進行監控以確保其按預期工作(單元測試),所以這很困難。我的假設是CAS在安全和非安全安裝之間的工作原理是一樣的;如果你足夠笨到不能保證生產能力,就不能保證真正安全。 –

+0

是的,但是一旦您知道如何使用HTTPS運行它,它一點都不困難。只需閱讀有關產品的一天的分步說明 – Goldi

+0

對此的更新:在使用有效(非自簽名)證書進行安全保護的服務器上運行並沒有幫助。 CAS從LDAP獲取組(我在日誌中看到它們),但不會將它們發送給應用程序。我無法弄清楚什麼配置是錯誤的。這與CAS 3完美無瑕地工作。我繼續嘗試不同的事情,但必須有明顯的東西。 –