




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Central Authentication Service (CAS)1 企业单点登录2 CAS系统集成与部署2.1 CAS服务器安装部署2.1.1 创建https协议证书使用JDK自带的工具keytool生成证书。keytool -genkey -alias cas -keyalg RSA -keystore d:/ssokeys/cas密码:changeit域名:导出证书:keytool -export -file d:/ssokeys/cas.crt -alias cas -keystore d:/ssokeys /cas客户端的JVM导入证书keytool -import -keystore D:developerToolJavajdk1.7.0_21jrelibsecuritycacerts -file D:/ssokeys/cas.crt -alias cas2.1.2 配置WEB服务器SSL证书 Tomcat6打开tomcat目录的conf/server.xml文件参数说明:keystoreFile:在第一步创建的key存放位置keystorePass:创建证书时的密码 Weblogic102.1.3 配置cas程序包CAS服务器是一个JavaEE工程,需要部署到web服务器中,这里选择Tomcat6作为cas.war程序包的部署容器。将cas.war包复制到Tomcat的webapps目录下。此时CAS服务器没有做任何修改,完全采用默认的配置参数,主要是作为测试使用。其中用户身份验证器验证用户登录名和密码是否一致,如果是一样的则身份验证成功,这只是测试验证,在真正生产部署环境可以使用database,LDAP等方式。票据注册器采用基于的内存注册器,并采用定时器校验票据的生命周期。2.2 CAS客户端与业务系统集成(Java)将CAS客户端程序包(cas-client.jar),添加到业务系统的classpath中。CAS客户端提供了多个Filter过滤器拦截用户请求,判断当前登录状态,重定向到CAS服务器,进行用户身份认证,验证用户TGT。2.2.1 过滤器1. org.jasig.cas.client.authentication.AuthenticationFilter拦截用户请求,试图重定向用户请求到CAS服务器进行身份验证,除非用户已经带有TGT表示用户已经验证。配置参数:casServerLoginUrl::8443/cas/loginCAS服务器提供的用户登录URL路径。serverName:http:/localhost:8080。服务的名称,必须按照这个格式:protocol:hostName:portservice:http:/localhost:8080/cas-test精确的业务应用服务URL地址。其中参数serverName和service两个必须配置其中的一个参数。不能两个都不配置。2. org.jasig.cas.client.validation.Cas10TicketValidationFilterCas10TicketValidator票据验证器过滤器配置参数:casServerPrefix::8443/casrenew:true/falseserverName:http:/localhost:8080。服务的名称,必须按照这个格式:protocol:hostName:portservice:http:/localhost:8080/cas-test精确的业务应用服务URL地址。其中参数serverName和service两个必须配置其中的一个参数。不能两个都不配置。3. org.jasig.cas.client.util.AssertionThreadLocalFilter将用户登录信息放到线程本地中,使其他资源可以方法获得用户登录信息org.jasig.cas.client.util.AssertionHolder2.2.2 配置实例 authenticationFilter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl :8443/cas/login serverName http:/localhost:8080 ticketValidationFilter org.jasig.cas.client.validation.Cas10TicketValidationFilter casServerUrlPrefix :8443/cas serverName http:/localhost:8080 assertionThreadLocalFilter org.jasig.cas.client.util.AssertionThreadLocalFilter authenticationFilter /* ticketValidationFilter /* assertionThreadLocalFilter /* 3 架构(Architecture)3.1 系统组件CAS系统由CAS服务器和CAS客户端两个物理系统组成。这两个物理系统之间使用多种CAS支持的协议进行通信。3.1.1 CAS服务器CAS服务器是一个JavaEE工程项目,构建于Spring开源框架之上,它最主要的职责是验证用户身份,另一个主要的任务是通过发布和校验ST票据授权用户访问那些CAS嵌入式业务应用。当CAS服务器成功验证用户登录请求时就会为用户发布一个ticket-granting ticket (TGT)票据,该票据会以cookie的方式保存在用户客户端浏览器中,此时就创建了一个SSO 会话。当用户携带TGT票据通过浏览器访问CAS客户端嵌入式业务系统时CAS服务器会为这个业务系统发布一个service ticket(ST)票据。在CAS服务器与CAS客户端后台通信中ST票据会被频繁的验证。3.1.2 CAS客户端CAS客户端有两个主要的意思。代表一个CAS客户端嵌入式业务系统,在后台通过特殊的协议与CAS服务器进行通信。另一个意思代表一个程序包可以集成到一些软件平台或者应用软件中,通过一些通信协议(CAS, SAML, OAuth)与CAS服务器进行通信。CAS客户端支持以下软件开发平台:Platforms:Apache httpd Server (mod_auth_cas module)Java (Java CAS Client).NET (.NET CAS Client)PHP (phpCAS)Perl (PerlCAS)Python (pycas)Ruby (rubycas-client)Applications:Outlook Web Application (ClearPass + .NET CAS Client)Atlassian ConfluenceAtlassian JIRADrupalLiferayuPortal3.2 协议CAS客户端与CAS服务器端连接支持多种通信协议。所有的这些通信协议都是相似的工作原理。当然一些通信协议也具有特殊的功能特性,例如:CAS协议支持代理(proxy)认证,SAML协议支持单点登出。支持的协议:CAS (versions 1, 2, and 3)SAML 1.1OpenIDOAuth (1.0, 2.0)3.3 软件组件CAS服务器包括三层子系统:Web (Spring MVC/Spring Webflow)TicketingAuthentication几乎所有的部署注意事项和组件配置都包含在这三个子系统中。Web层是外部系统与CAS服务器通信的端点入口。Web层委托票据子系统为CAS客户端访问生成票据。当成功认证用户身份时会发布一个ticket-granting ticket(TGT)票据,这时一个SSO会话就创建成功。在用户身份验证过程中会频繁的委托认证子系统,验证用户提交的身份数据有效性。4 CAS协议CAS协议是专为CAS开发的一种简单而强大的基于票据的协议。关于CAS协议详细说明可以参考/cas/protocol。CAS协议中包括一个或多个CAS客户端和一个CAS服务器。CAS服务器负责用户验证,授权访问业务应用。CAS客户端保护CAS客户端嵌入式业务系统,从CAS服务器获得用户信息。关键概念:TGT (Ticket Granting Ticket):保存在CASTGC cookie中,代表一个用户SSO会话。ST (Service Ticket):通过URL参数传输,代表CAS服务器发布给一个用户访问一个CAS客户端嵌入式业务系统。4.1 版本当前最新CAS协议版本是3.0,CAS Server 4.0实现。主要是在CAS协议2.0版本基础上进行了增强。4.2 Web流程图4.2 代理web流程图5 认证管理器(AuthenticationManager)AuthenticationManagerAuthenticationHandlerPrincipalResolverArgument Extractors6 身份验证(authentication)作为一个单点登录解决方案,CAS没有特别偏向哪一种后台用户认证系统。CAS提供了很多即开即用的验证方式,包括LDAP, database, X.509 Certificates, and JAAS。6.1 通用认证处理器简单的用户认证处理器文件系统用户认证提供器密码文件例子:scott:passwordbob:password26.2 JDBC认证处理器6.2.1 数据源所有的JDBC认证处理器都需要一个数据源DataSource,以下是一个数据源配置实例:# = Basic database connection pool configuration =database.driverClass=org.postgresql.Driverdatabase.url=jdbc:postgresql://cas?ssl=truedatabase.user=somebodydatabase.password=meaninglessdatabase.pool.minSize=6database.pool.maxSize=18 # Maximum amount of time to wait in ms for a connection to become# available when the pool is exhausteddatabase.pool.maxWait=10000 # Amount of time in seconds after which idle connections# in excess of minimum size are pruned.database.pool.maxIdleTime=120 # Number of connections to obtain on pool exhaustion condition.# The maximum pool size is always respected when acquiring# new connections.database.pool.acquireIncrement=6 # = Connection testing settings = # Period in s at which a health query will be issued on idle# connections to determine connection liveliness.database.pool.idleConnectionTestPeriod=30 # Query executed periodically to test healthdatabase.pool.connectionHealthQuery=select 1 # = Database recovery settings = # Number of times to retry acquiring a _new_ connection# when an error is encountered during acquisition.database.pool.acquireRetryAttempts=5 # Amount of time in ms to wait between successive aquire retry attempts.database.pool.acquireRetryDelay=20006.2.2 QueryDatabaseAuthenticationHandler6.2.3 SearchModeSearchDatabaseAuthenticationHandler6.2.4 BindModeSearchDatabaseAuthenticationHandler6.3 X.509证书认证处理器6.4 LDAP认证处理器7 配置票据组件配置中票据包括两个核心组件:TicketRegistry:提供一种票据持久化方式。ExpirationPolicy:提供一种票据过期策略。7.1 票据注册器(TicketRegistry)在开发环境和生产环境一般需要不同的票据注册器组件。在HA部署环境中推荐使用基于缓存的组件。默认实现是基于内存的票据注册器,适应简单的部署环境。7.1.1 Default (In-Memory) Ticket RegistryDefaultTicketRegistry使用ConcurrentHashMap保存和检索票据。这个组件不支持票据持久化,重启服务后以后的票据都不存在了。initialCapacity - ConcurrentHashMap initial capacity.loadFactor - ConcurrentHashMap load factor. for more information.concurrencyLevel - Allows tuning the ConcurrentHashMap for concurrent write support.7.1.2 Cache-Based Ticket Registries在高可用部署环境中可以使用基于缓存的票据注册器,其提供高性能的票据存储和检解决方案,CAS支持以下缓存技术,Ehcache和Memecahe。 EhcacheEhCacheTicketRegistry存储票据到ehcache实例中。以下提供了两种配置:内存缓存溢出磁盘的简单实例,适用于简单场景。分布式缓存基于RMI复制,适用于HA部署环境。.1 简单内存缓存在Spring的配置文件ticketRegistry.xml中Ehcache 配置文件ehcache-failsafe.xml .1.1 分布式缓存在HA部署环境中推荐使用分布式缓存,其为票据存储子系统提供了故障容错机制。注册器使用不同的缓存实例维护两种票据TGT和ST。Ticket Granting Tickets(TGT)需要维护相当长的一段时间,使用异步复制。Service Tickets (ST)生命周期短,需要在集群中的各节点保持一致。.1.1.1 RMI ReplicationEhcache在多节点缓存集群之间支持RMI复制。Spring配置文件ticketRegistry.xmlEhcache配置文件ehcache-replicated.xml !- - .1.1.2 JGroups Replication MemcachedMemCacheTicketRegistry存储票据到一个或多个memcached实例中。组件使用spymemcached访问memcached服务,memcached是一个key/value储存,可以接受一个字符串key和一个Java对象value。Memcached将数据存储在多个节点集群中的一个节点。 # It is common to run memcached on every CAS nodememcached.servers=:11211,:11211,:11211memcached.hashAlgorithm=FNV1_64_HASHtocol=BINARYmemcached.locatorType=ARRAY_MODmemcached.failureMode=Redistribute7.1.3 RDBMS Ticket Registries JPA7.2 票据过期策略(ExpirationPolicy)8 服务管理(Service Management)CAS服务管理工具为CAS系统管理员提供了针对服务(CAS Client)的声明和配置功能,控制这些的服务使用CAS服务器的行为方式。服务管理工具中核心组件就是服务注册(service registry),Servi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石首市属事业单位考试试卷
- 2025年甘肃警察学院考核招聘急需紧缺专业人才考前自测高频考点模拟试题含答案详解
- 2025年大庆石化分公司春季高校毕业生招聘模拟试卷及答案详解(网校专用)
- 2025华天集团中层管理岗位公开招聘模拟试卷及答案详解(考点梳理)
- 2025江苏连云港市赣榆区事业单位招聘31人模拟试卷(含答案详解)
- 2025湖南益阳市安化县五雅高级中学春季教师招聘模拟试卷含答案详解
- 2025湖南长沙市财盛国际贸易有限公司招聘2人模拟试卷及答案详解(考点梳理)
- 2025金沙酱酒酒业投资集团有限公司模拟试卷及答案详解一套
- 2025年甘肃省兰州大学物理科学与技术学院诚聘英才考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025昆明市晋宁区残疾人联合会招聘编外人员(1人)考前自测高频考点模拟试题及答案详解(典优)
- 人生的因拼搏而精彩课件
- 2025年国企综合笔试试题及答案
- 中药用药安全知识培训课件
- 老旧护栏加固施工方案
- 中国资源循环集团有限公司子公司招聘笔试题库2025
- 雨季行车安全培训
- 2025年青海海东通信工程师考试(通信专业实务终端与业务)高、中级考前题库及答案
- 2025年浙江省档案职称考试(档案高级管理实务与案例分析)综合能力测试题及答案
- 景区接待培训课件
- 部编人教版二年级上册语文全册教学设计(配2025年秋改版教材)
- 2025年郑州航空港经济综合实验区招聘社区工作人员120名考试参考题库附答案解析
评论
0/150
提交评论