Board logo

标题: 构建和实现单点登录解决方案-CAS 概述与入门 [打印本页]

作者: look_w    时间: 2018-7-20 21:42     标题: 构建和实现单点登录解决方案-CAS 概述与入门

CAS 概述注意,在采用 CAS 协议时,应用程序不会看到用户的密码。CAS 服务器执行身份验证,只有它能够看到用户的密码。这会增强安全性,因为用户名和密码并不通过网络传递给其他应用程序。
下图说明了在集成了 CAS 服务器的系统中身份验证是如何执行的。
图 1. CAS 协议如何执行身份验证下面是这个身份验证协议中的主要步骤。
如果采用 Servlet 2.3 规范进行开发,那么甚至不需要为这些步骤操心。一个 servlet 过滤器会处理整个协议。您要做的只是在 web.xml 文件中配置过滤器参数。我就采用这种方式 —— 它意味着对门户中应用程序代码的修改非常少。
对 CAS 的深入讨论超出了本文的范围,我建议您阅读  中列出的来自 Yale University 的文章,从而判断这种身份验证方案是否满足您的需要。
CAS 入门设置 CAS 软件是非常简单的,但是在开始设置之前,您应该了解我用的一些软件。我只用 Tomcat 4.1、Java Development Kit 1.4 和 Ant 1.5 测试了 CAS。(可以从  下载这里提到的文件和客户机库。)
首先,下载 CAS 服务器和客户机库。已经针对许多语言和环境开发了客户机库,包括 Java、ASP、Perl、PHP 和 PL/SQL。
CAS 使用 HTTPS,所以必须在 Tomcat 中启用这个功能。我发现这需要点儿技巧,但是如果按照我提供的说明(readme_tomcat_ssl.txt 文件)去做,应该不困难。
对 CAS 服务器 ZIP 文件进行解压,并使用 Ant 构建脚本构建 CAS 服务器软件。将 WAR 文件(Web Archives)部署到 Tomcat 的 /webapps 目录中。在启动 Tomcat 时,用 WAR 文件在 Tomcat/webapps 中创建一个 CAS 目录。
下载 CAS 客户机库。对 ZIP 文件进行解压,就会看到许多目录。我要使用的是 Java 客户机库。同样,也提供了 Ant 构建脚本。运行这个构建脚本。这会生成一个称为 casclient.jar 的 JAR 文件。将这个文件复制到 Tomcat 根目录下的 common/lib 目录中。
现在,需要配置应用程序来使用 CAS。本文中用来进行演示的应用程序是 Tomcat 提供的可靠的 “HelloWorld” servlet 示例。这个应用程序应该在 Tomcat 系统中的 /webapps/examples 目录下面。修改 web.xml 文件来配置 servlet 过滤器。
HelloWorld JSP 的 web.xml 文件包含下面的 servlet 过滤器配置。它对 HTTPS 使用本地主机和端口 8443。根据自己的配置修改这些设置。我提供的 zip 文件中包含一个 web.xml 文件示例。
清单 1. HelloWorld JSP 的默认 servlet 过滤器配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<filter>
    <filter-name>CAS Filter</filter-name>
    <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
      <param-value>https://localhost:8443/cas/login</param-value>
    </init-param>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
      <param-value>https://localhost:8443/cas/proxyValidate</param-value>
    </init-param>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
      <param-value>localhost</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>




启动 Tomcat。然后输入 URL http://localhost/examples/servlet/HelloWorldExample。这时会重定向到 CAS 登录屏幕。默认的身份验证器只要求为用户名和密码提供相同的字符串,例如在两个域中都输入 demo。然后,就会重定向到 HelloWorld 页面。
这只是个简单的 CAS 演示,但是它说明,通过使用这个强大的 servlet 过滤器,让现有的 Java servlet 应用程序使用 CAS 是多么容易。还可以使用 JSP 标记集替代 servlet 过滤器,这种方法适合那些无法使用 servlet 过滤器的应用程序或应用服务器。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0