2016-10-11 5 views
0

Ich habe das gleiche Problem wie einige andere Fragen hier, von denen keine wirklich beantwortet wurden; das heißt, mit CAS 4.x (eigentlich 4.2.6) kann ich keine LDAP-Attribute erhalten, um zur Client-Anwendung zurückzukehren.CAS 4.x, & LDAP-Attribute

Question 1 Dies scheint übertrieben; benutzerdefinierter Code, um ein "einfaches" Problem zu umgehen.

Question 2 Wäre dies bereits getan, und es hat nicht funktioniert.

Also, es ist jetzt bin ich dran ... zu fragen, ist es eine Magie, es Arbeit zu machen? Wir haben 3,5 lange ohne Probleme verwendet. Ich versuche, diese Einstellungen in die 4.x Maven Overlayer und neue Kontextkonfiguration von 4.x zu konvertieren, und es geht nicht.

Ich kann in den Protokollen sehen, die CAS anfordert, und bekommen die Eigenschaften Ich bin für von LDAP suchen. Aber sie werden nicht in den Token zurück in die Anwendung gebracht.

Was muss darüber hinaus getan werden, was die Apereo Dokumentation legt? Ich denke, es ist das Attribut Repository vielleicht ??? Wenn dir etwas dabei helfen würde, frag mich einfach: Config, Logs (natürlich redigiert) ... alles.

Danke.

Update # 1. Hier ist meine Resolverliste. HINWEIS: Ich behalte Code/Einstellungen an Ort und Stelle auskommentiert, bis ich es zum Arbeiten bekomme, bevor ich Sachen säubere.

<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> 

Update # 2

ich mehr Tests gemacht habe, und bin immer noch nicht erfolgreich. Ich denke, es kommt auf die principalAttributeMap des LdapAuthenticationHandler nicht funktioniert, oder die attributeReleasePolicy der serviceRegistryDao ... jemand sieht irgendwelche Probleme in dieser Konfiguration?

<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

Haben Sie die # {null} Sache tun, wie in der zweiten Frage gesagt? Ich empfehle Ihnen, den JSON nicht zu verwenden. Dies verursachte Probleme auf meinem CAS-Server. Überprüfen Sie meine Antwort auf meine Frage (Frage 1) und sehen Sie, ob es Ihnen hilft. – Goldi

+0

Ja, ich habe die # {null} Änderung in der Liste der Authentifizierungshandler-Resolver durchgeführt. Es hat nicht geholfen. –

+0

Ich beantwortete meine Frage (Frage 1). Alles, was ich dort geschrieben habe, funktioniert für mich außer dem, was ich beschrieben habe. Benutzt du diese Datei? – Goldi

Antwort

0

Um von CAS Security Guide zu zitieren:

gesamte Kommunikation mit dem CAS Server muss ein sicherer Kanal über auftreten (d.h. TLSv1). Es gibt grundsätzlich zwei Begründungen für diese Anforderung:

  1. Der Authentifizierungsprozess erfordert die Übertragung von Sicherheits Anmeldeinformationen.
  2. Das Ticketticket-Ticket für CAS ist ein Bearer-Token.

Da die Offenlegung von entweder Daten Impersonalisierungsattacke erlauben würde, ist es von entscheidenden Bedeutung, um den Kommunikationskanal zwischen CAS Clients und dem CAS-Server zu sichern.

Praktisch bedeutet dies, dass alle CAS Urls HTTPS verwenden müssen, aber es bedeutet auch, dass alle Verbindungen von dem CAS-Server an die Anwendung muss über HTTPS erfolgen:

  • , wenn die erzeugte Service-Ticket auf der „Service“ uRL zur Anwendung zurückgeschickt, wenn eine

  • Proxy-Callback-uRL aufgerufen wird.

HTTPS ist ein Muss in CAS. Es gibt jedoch Möglichkeiten, es zu deaktivieren, aber es wird dringend empfohlen, dies nicht zu tun. Wenn Sie Kampf haben die SSL-Konfiguration zu behandeln, empfehle ich Ihnen my question lesen, wo ich im Detail erklären, wie mit den Schlüsselspeicher beschäftigen.

+0

Ich habe es "deaktiviert" oder eine bessere Beschreibung ist: CAS konfiguriert, um die Authentifizierung von nicht sicheren Anwendungen zu ermöglichen. Im Moment ist es mein Ziel, es zum Laufen zu bringen, damit wir es dann an eine QA-Gruppe zum abschließenden Testen weitergeben können. Sich mit der Sicherheit herumschlagen und all das ist ein Schmerz, vor allem, weil es schwierig ist, diese Überwachung durchzuführen, um sicherzustellen, dass es wie erwartet funktioniert (Komponententests). Ich gehe davon aus, dass CAS zwischen einer sicheren und einer nicht sicheren Installation gleich funktioniert; Es kann nicht garantiert werden, dass es wirklich sicher ist, wenn Sie dumm genug sind, es in einer Produktionskapazität nicht sicher zu haben. –

+0

Ja, aber sobald Sie wissen, wie man es mit HTTPS laufen lässt, ist es gar nicht so schwierig. Lesen Sie einfach den Anweisungen Schritt für Schritt, wenn der Tag für Ihr Produkt – Goldi

+0

Ein Update auf diese gekommen sind: Laufen auf einem Server, der Zert mit einem gültigen (nicht selbst unterzeichnet) befestigt ist, nicht ein bisschen helfen. Der CAS erhält die Gruppen von LDAP (ich sehe sie in den Protokollen), sendet sie aber nicht an die Anwendung weiter. Ich kann einfach nicht herausfinden, welche Konfiguration falsch ist. Das hat mit CAS 3 einwandfrei funktioniert. Ich versuche weiterhin verschiedene Dinge auszuprobieren, aber da muss etwas offensichtlich sein. –

Verwandte Themen