CAS is an Open Source Single Sign On Server – http://www.jasig.org/cas. Iit can be integrated with both AD and LDAP. The task is easy if you know Spring and Tomcat – https://wiki.jasig.org/display/CASUM/LDAP, https://wiki.jasig.org/display/CASUM/SAML+1.1.
The problem is to get the AD/LDAP attributes with CAS Client. Following the documents above you are able to login against CAS but not to visualize in your application the mapped attributes.
Just a note in authenticationManager – deployerConfigContext.xml – change the credentianToPrincipalResolvers
<property name="credentialsToPrincipalResolvers"> <list> <bean class="org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver"> <property name="credentialsToPrincipalResolver"> <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver"/> </property> <property name="filter" value="(sAMAccountName=%u)"/> <property name="principalAttributeName" value="sAMAccountName"/> <property name="searchBase" value="cn=Users,dc=pssupport"/> <property name="contextSource" ref="contextSource"/> <property name="attributeRepository"> <ref bean="attributeRepository"/> </property> </bean> </list> </property>
This because CAS need to be configured in order to expose attributes. You have two ways to to that:
Using CAS services console (https://localhost:8433/cas/services). If this is not enable add the user to ROLE_ADMIN in deployerConfigContext.xml and configure CAS properties – https://wiki.jasig.org/display/CASUM/Configuring. Once you are in you can configure the attributes to visualize.
Setup the org.jasig.cas.services.InMemoryServiceRegistryDaoImpl to expose by default the attributes. To do so edit the deployerConfigContext.xml, locate the deployerConfigContext.xml and add to HTTP and HTTPS registeredServices the allowedAttributes property as in this example
<bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="0" /> <property name="name" value="HTTP" /> <property name="description" value="Only Allows HTTP Urls" /> <property name="serviceId" value="http://**" /> <property name="allowedAttributes"> <list> <value>cn</value> <value>name</value> <value>givenName</value> <value>displayName</value> <value>userPrincipalName</value> <value>sAMAAccountName</value> <value>telephone</value> <value>mail</value> <value>memberOf</value> </list> </property>
restart CAS, login with your client and you should see now the attributes.
wonderful article for CAS LDAP weblogic
Thanks! I hope that has helped you 🙂
If i had not got your blog here , i would have spent hours on searching correctly the mechanisms to implement AD versus CAS.
Hello all, I am pretty new with CAS. I need deep help from you. I could setup CAS, but what I have now is userID=password and I want to change this authentication to Active Directory and LDAP.
anytime I make some changes in deployerConfigContext.xml and replace org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
with somethings that I googled , I get error below.
=========================================================
HTTP Status 404 – /cas
type Status report
message /cas
description The requested resource (/cas) is not available.
Apache Tomcat/7.0.21
=========================================================
Please help me if anyone know how too setup CAS + Active Directory and LDAP
thanks.
Hi Ali,
this usually happens when cas has a spring error and tomcat don’t deploy the web app. Please open your logs/catalina.out log file and look for an error. Post the error here, may be it’s just an typo error in your files. Have you read this doc https://wiki.jasig.org/display/CASUM/LDAP?
Hi,
When I go to services manager, I cannot see further fields to choose from. LIke you have shown under your screen shot that you have fields such as
cn
name
givenName
But I only have
eduPersonAffiliation
uid
GroupMembership
any ideas why I am not getting other attributes?