标题 | 基于CAS的校园统一身份认证系统部署 |
范文 | 郑健 摘要:统一身份认证系统是校园信息化的重要基础设施,CAS可提供企业级的单点登录服务,有着开放且文档完备的协议,支持数据库、LDAP等多种认证方式,可满足师生使用校内信息系统时单点登录的需求。 关键词:CAS;MySQL;LDAP;统一身份认证;单点登录 中图分类号:TP315? ? ? 文献标识码:A 文章编号:1009-3044(2019)23-0061-03 开放科学(资源服务)标识码(OSID): Deployment of Campus Unified Identity Authentication System Based on CAS ZHENG Jian (Suzhou Industrial Park Institute of Vocational Technology, Suzhou 215123, China) Abstract: Unified identity authentication system is an important infrastructure of campus informatization. CAS can provide enterprise-level single sign-on service. It has an open and well-documented protocol, supports database, LDAP and other authentication methods. It can meet the needs of teachers and students when using campus information systems. Key words: CAS; MySQL; LDAP; unified identity authentication; Single Sign-On (SSO) 1 概述 随着校园信息化的发展,各个业务部门都建立了相应的信息化应用系统,但存在的问题也日益凸显:一是各个系统的基础数据不统一,难以互通,造成大量信息孤岛;二是各个业务系统都使用不同的账号、密码体系,给用户使用造成诸多不便。 因此,建立统一身份认证系统显得尤为迫切。通过校园统一身份认证系统,为用户提供数字身份管理与认证服务;校内师生通过认证后,即可获得学校相关信息系统与资源的访问授权。 统一身份认证系统通常包括用户管理、权限管理、单点登录等子系统。一直以来很多软件厂商都在着力开发单点登录系统,如微软的 .NET passport、Sun主导研发的Liberty Alliance Project等,此外还有不少开源项目,如CAS、CoSign、JOSSO等。 2 CAS系统简介 CAS(Central Authentication Service)源于耶鲁大学发起的独立于平台的单点登录开源项目,为Web应用提供可靠的认证服务。它能将分布在组织内部的异构系统的认证工作集中到一起,允许用户使用一组登录凭据(如用户名和密码)来访问多个应用程序。用户通过验证后,即可访问被授予权限的所有应用程序,并在用户的同一会话期间切换应用程序时,自动忽略相应的身份验证请求提示。 CAS可提供企业级的单点登录服务,其优势在于:提供开源的Java服务器组件;有着开放且文档完备的协议;以插件形式提供LDAP、数据库、X.509、RADIUS、双因子等多种认证方式;支持CAS、SAML、OAuth、OpenID等多种协议;支持Java、.Net、PHP、Perl、Python、Apache、uPortal等跨平台的不同客户端。CAS系统架构图如图1所示。 CAS采用了Spring框架,用户通过简单的配置就可实现系统功能的自定义。CAS主要由两个相互协作的部分组成:CAS服务器和CAS客户端,它们可以通过多种协议进行通信。 CAS服务器主要是通过颁发和验证票据来认证用户并授予对启用CAS的服务(即CAS客户端)的访问权限。在用户成功登录后,服务器发出TGT(ticket-granting tickets)并创建SSO会话。ST(service tickets)通过用TGT作为令牌的浏览器重定向,发布给用户请求的服务。随后通过反向信道通信,在CAS服务器上验证ST。 CAS客户端是任何启用CAS的应用程序,可以通过支持的协议与服务器通信。CAS客户端也是一个软件包,可以与各种软件平台和应用程序集成,以便通过某种身份认证协议(如CAS、SAML、OAuth)与CAS服务器进行通信。经过改造的客户端不再负责认证工作,而是将认证请求重定向到CAS服务器进行处理。 3 CAS系统部署 根据目前CAS官网发布的系统维护策略,5.3.x版本将支持到2020年7月29日,甚至晚于目前最新的6.1.x版本,因此目前系统部署建议采用相对成熟的5.3.x版本。 CAS系统的运行要求有JDK支持,建议使用Tomcat作为Servlet容器,Maven或Gradle作为构建工具。 主要部署过程如下: 1) 安装JDK 1.8、Apache Maven 3.6等支持软件。安装完成后,分别使用javac –version、java –version、mvn -v 命令檢查软件版本是否正确。 2) 安装Apache Tomcat 9,完成后测试http://服务器地址:8080 是否正常打开。 3) 为服务器配置SSL证书。 由于CAS服务器进行身份验证过程中需要传输安全凭据,而且CAS的TGT是不记名令牌,因此所有通信必须通过安全通道(如TLS v1)进行传输。Tomcat支持PFX格式和JKS两种格式的SSL证书。这里以阿里云的SSL证书为例,在下载了Tomcat证书后,可得到一个证书文件(.pfx文件)和一个密码文件(.txt文件)。输入以下Java JDK命令将PFX格式的证书转换成JKS格式: keytool -importkeystore -srckeystore 证书文件名.pfx -destkeystore 服务器域名.jks -srcstoretype PKCS12 -deststoretype JKS 接下来配置https协议。在Tomcat安装目录下新建cert目录,将JKS格式的证书和密码文件复制到cert目录下。打开Tomcat安装目录下conf中的server.xml文件,将以下配置内容前后的注释符号删除,修改配置信息:
保存配置文件后,重新启动Tomcat服务,测试是否可以通过https协议(https://服务器地址:8443)访问Tomcat。 4) 安装CAS软件。 CAS的安装是面向源代码的过程,因此推荐使用WAR overlay的方式,这样可以自定义组件的配置、UI的设计等。 首先从https://github.com/apereo/cas-overlay-template 获取CAS Overlay Template代码,然后修改pom.xml文件中的配置信息,以便加载所需的组件。接下来运行 ./build.sh? package 命令,获得cas.war文件,并部署到Tomcat中。 5) 配置认证方式。 CAS部署完成后,可以使用默认用户名casuser和密码Mellon登录以测试系统是否工作正常。但在实际应用中,用户账户信息通常存储在数据库或LDAP服务器中进行管理。下面分别介绍这两种认证方式的配置。 1 连接MySQL数据库进行认证 首先修改pom.xml文件,在 在针对Tomcat的配置信息部分 cas-server-support-jdbc
cas-server-support-jdbc-drivers
mysql-connector-java
然后运行 ./build.sh? package 命令,获得cas.war文件。编辑其中的 WEB-INF/classes/application.properties 文件,將最后一行 cas.authn.accept.users=casuser::Mellon 加井号注释掉,再加入以下内容: cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver cas.authn.jdbc.query[0].url=jdbc:mysql://mysqlserver:3306/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。