CAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端

  1. 什么是单点登录就不用和大家说了,相比做个这个项目的童鞋都会去查阅一些资料
    放一张图吧
    .CAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端_第1张图片

  2. 最近需要做一个CAS 单点登录返回用户信息的功能,而采用了LDAP认证AD域去返回用户信息,网上查阅了很多资料,因为涉及到版本可能有点高的问题,还有大部分是通过JDBC去连接数据,而AD域的方式去实现很少,没有什么可以参考的价值,废话不多说,这个功能只需要通过配置就可以返回不需要其他的操作.

  3. 5.x版本官方文档的配置,有兴趣的可以去阅读一下:
    https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties-Common.html#ldap-connection-settings

  4. LDAP 认证模式有四种:
    4.1 AD,AUTHENTICATED,DIRECT,ANONYMOUS,因为项目只是用到了AD,所以其他的三中模式不做试验.
    4.2 AD为微软的Active Directory 认证,使用 sAMAccountName 按预定的 dn 格式筛 选,dnFormat 是必备参数.
    4.3 AD是目录服务中的一种,也是以对象为单位,并采用层次结构来组织对象.
    4.4 AD是域的集合,AD可由一个或多个域组成,从域的角度来看,AD是由至少一个域所构成的集合,从AD的角度来看,域则是AD的分区单位.
    4.5 AD域是LDAP的一个应用实例,而不是LDAP本身,AD域的用户,权限管理使用LDAP存储一些数据用来解决域控这个具体问题.AD域提供了相关的用户接口,可以把AD域当做定制的LDAP服务器.AD先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现一个具体应用.

CAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端_第2张图片5.LDAP AD 认证主要参数在文件application.properties中配置

# 认证方式
cas.authn.ldap[0].order=0
cas.authn.ldap[0].name=Active Directory
cas.authn.ldap[0].type=AD
# LDAP服务地址,如果支持SSL,地址为 ldaps://xxx.x.x.x:xxx
cas.authn.ldap[0].ldapUrl=ldap://xx.xxx.xx.xxx:xxx
# 是否使用SSL
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
cas.authn.ldap[0].connectTimeout=5000
# LDAP中基础DN
cas.authn.ldap[0].baseDn=DC=xxx,DC=xxx,DC=xxxx
cas.authn.ldap[0].poolPassivator=NONE
cas.authn.ldap[0].validatePeriod=270
cas.authn.ldap[0].searchFilter=sAMAccountName={user}
cas.authn.ldap[0].subtreeSearch=true
cas.authn.ldap[0].dnFormat=%[email protected]
cas.authn.ldap[0][email protected]
cas.authn.ldap[0].bindCredential=xxxx@xxx
cas.authn.ldap[0].principalAttributeList=cn,objectCategory,accountExpires,distinguishedName
**#defaultAttributesToRelease 定义了 principalAttributeList 中的属性可以发放,即提供客户端获取**
cas.authn.attributeRepository.defaultAttributesToRelease=cn,objectCategory,accountExpires,distinguishedName

6.注册Service的HTTPSandIMAPS-10000001.json中配置返回信息的规则:
官方配置:
https://apereo.github.io/cas/development/integration/Attribute-Release-Policies.html
我并没有配置返回所有信息:
Return All(返回所有)
{
“@class” : “org.apereo.cas.services.RegexRegisteredService”,
“serviceId”: “^(https|imaps)/.*”,
“name” : “lxy”,
“id” : 10000001,
“description” : “lxy”,
“evaluationOrder” : 10000,
“attributeReleasePolicy” : {
“@class” : “org.apereo.cas.services.ReturnAllAttributeReleasePolicy”
}

Return Allowed(返回允许的部分属性)
{
“@class” : “org.apereo.cas.services.RegexRegisteredService”,
“serviceId”: “^(https|imaps)/.*”,
“name” : “lxy”,
“id” : 10000001,
“description” : “lxy”,
“evaluationOrder” : 10000,
“attributeReleasePolicy” : {
“@class” : “org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy”,
“allowedAttributes” : [ “java.util.ArrayList”, [ “cn”, “mail”, “sn” ] ]
}
}
而我的配置仅仅如此:

 {
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(https|imaps)://.*",
  "name": "lxy",
  "id": 10000001,
  "description": "lxy",
  "evaluationOrder": 10000
}

7.CAS服务端pom.xml配置文件:



    4.0.0
    org.apereo.cas
    cas-overlay
    war
    1.0

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                ${springboot.version}
                
                    ${mainClassName}
                    true
                    ${isExecutable}
                    WAR
                
                
                    
                        
                            repackage
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-war-plugin
                2.6
                
                    cas
                    false
                    false
                    
                        false
                        ${manifestFileToUse}
                    
                    
                        
                            org.apereo.cas
                            cas-server-webapp${app.server}
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.3
            
        
        cas
    

    
        5.3.9
        1.5.18.RELEASE
        
        -tomcat

        org.springframework.boot.loader.WarLauncher
        false
        ${project.build.directory}/war/work/org.apereo.cas/cas-server-webapp${app.server}/META-INF/MANIFEST.MF

        1.8
        1.8
        UTF-8
    
    
    
        
        	
			 
			 

    org.apereo.cas
    cas-server-support-json-service-registry
    ${cas.version}
 
			 		 
            
                org.apereo.cas
                cas-server-support-bom
                ${cas.version}
                pom
                import
            
        
        
    
    
    	
            org.apereo.cas
            cas-server-webapp${app.server}
            ${cas.version}
            war
        
        
		    org.apereo.cas
		    cas-server-support-jdbc
		
		
		
     org.apereo.cas
     cas-server-support-ldap
     

		
		    org.apereo.cas
		    cas-server-core-authentication
		
		
		    org.apereo.cas
		    cas-server-core-authentication-api
		
		 
		    org.apereo.cas
		    cas-server-core-webflow
		
		
		
    org.apereo.cas
    cas-server-core-webflow-api

		
    


	
        
            sonatype-releases
            http://oss.sonatype.org/content/repositories/releases/
            
                false
            
            
                true
            
        
        
            sonatype-snapshots
            https://oss.sonatype.org/content/repositories/snapshots/
            
                true
            
            
                false
            
        
        
            shibboleth-releases
            https://build.shibboleth.net/nexus/content/repositories/releases
        
    


8.配置完成进行测试:
CAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端_第3张图片
输入用户名和密码:
CAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端_第4张图片
成功登陆
启动客户端:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190613135831820.png?![在这里插入图片描述](https://img-blog.csdnimg.cn/20200427155633640.png?x-oss-process=image/watermark,type_ZmFuZ3pCAS 单点登录 5.39 版本 LDAP 认证模式 AD域 返回用户信息给客户端_第5张图片
成功返回了上面配置中需要返回的用户信息.

你可能感兴趣的:(CAS,单点登录)