Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署
Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.CAS简介
CAS(Central Authentication Service)是一款十分流行的单点登录框架。单点登录(Single Sign On,SSO)是服务于惬意业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS从架构上粉我饿CAS Server和CAS client两个部分,CAS Server是统一的认证服务器,所有未经授权的请求都会重定向到这里进行认证。而CAS Client则代表需要通过CAS Server进行认证的用用服务。
CAS的整个认证流程如下图所示,CAS Client与受保护的客户端应用部署在一起,以Filter(过滤器)的形式保护手保护的资源。 
1>.对于访问受保护的资源每个Web请求,CAS Clint会分析这些HTTTP请求是否包含Service Ticket ,如果没有则说明当前用户尚未登录;
2>.如果用户尚未登录,CAS Client会将请求重定向到指定好的CAS Server登录地址,并传递Service地址(也就是要访问的目的资源地址),以便登录成功过后转回该地址;
3>.用户在第3步认证信息,如果登录成功,CAS Server随机产生一个长度相等且唯一,不可伪造的Service Ticket;
4>.之后系统自动重定向到Service所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC);
5>.CAS Client在拿到Service地址和新产生的Ticket之后,在第5步和第6步中与CAS Server进行身份校验以确保Service Ticket的合法性。
在该协议中,所有与CAS的交互均采用SSL协议,确保Service Ticket 和TGC的安全性。协议在工作过程中会有两次重定向的过程,但CAS Client与CAS Server之间进行Ticket验证的过程对于用户是透明的。
二.安装CAS-Server
1>.下载安装包
首先下载CAS的程序包,我们使用CAS 4.0版本进行安装,程序下载地址是:https://github.com/apereo/cas/releases/tag/v4.0.0。下载之后会得到一个名为cas-server-4.0.0-release.zip的压缩包,请确保将其解压到Ambari-Server所在的服务器上的任意目录。这么做的原因是因为在集成单点登录的时候,Ranger,Ambari-Service,Knox Gateway和CAS-Sever需要安装在同一台服务器上。使用unzip命令对其解压,解压之后会生成一个文件夹。进入到modules目录下找到一个名为“cas-server-webapp-4.0.0.war”的文件,这就是CAS Server 程序,如下图所示,原来CAS Server其实是一个War包程序。
[root@node101 ~]# wget https://github.com/apereo/cas/releases/download/v4.0.0/cas-server-4.0.0-release.zip
---- ::-- https://github.com/apereo/cas/releases/download/v4.0.0/cas-server-4.0.0-release.zip
Resolving github.com (github.com)... 52.74.223.119, 13.229.188.59, 13.250.177.223
Connecting to github.com (github.com)|52.74.223.119|:... connected.
HTTP request sent, awaiting response... Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/2352744/3dbe1b3a-8863-11e4-9274-f93d7d695c3f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181218T102451Z&X-Amz-Expires=300&X-Amz-Signature=4010bdfa010e2790b79fb81fa28dadad52f8499263400dad68100ea4b131ee88&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dcas-server-4.0.0-release.zip&response-content-type=application%2Foctet-stream [following]
---- ::-- https://github-production-release-asset-2e65be.s3.amazonaws.com/2352744/3dbe1b3a-8863-11e4-9274-f93d7d695c3f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181218T102451Z&X-Amz-Expires=300&X-Amz-Signature=4010bdfa010e2790b79fb81fa28dadad52f8499263400dad68100ea4b131ee88&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dcas-server-4.0.0-release.zip&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.230.235
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.230.235|:... connected.
HTTP request sent, awaiting response... OK
Length: (80M) [application/octet-stream]
Saving to: ‘cas-server-4.0.-release.zip’ %[=======================================================================================>] ,, 946KB/s in 1m 44s -- :: ( KB/s) - ‘cas-server-4.0.-release.zip’ saved [/] [root@node101 ~]# ll
total
-rw-r--r-- root root May cas-server-4.0.-release.zip
[root@node101 ~]#
[root@node101 ~]# wget https://github.com/apereo/cas/releases/download/v4.0.0/cas-server-4.0.0-release.zip

2>.安装tomcat服务
我们这里使用的是apache-tomcat-7.0.72版本,下载地址为:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.72/。
[root@node101 ~]# wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.72/bin/apache-tomcat-7.0.72.tar.gz
[root@node101 ~]#
[root@node101 ~]# ll
total
-rw-r--r-- root root Sep apache-tomcat-7.0..tar.gz
drwxrwxrwx root root May cas-server-4.0.
-rw-r--r-- root root May cas-server-4.0.-release.zip
[root@node101 ~]#
[root@node101 ~]# tar -xf apache-tomcat-7.0..tar.gz -C /yinzhengjie/softwares/
[root@node101 ~]#
[root@node101 ~]# cp cas-server-4.0./modules/cas-server-webapp-4.0..war /yinzhengjie/softwares/apache-tomcat-7.0./webapps/
[root@node101 ~]#
[root@node101 ~]# ll /yinzhengjie/softwares/apache-tomcat-7.0./webapps/
total
-rw-r--r-- root root Dec : cas-server-webapp-4.0..war
drwxr-xr-x root root Dec : docs
drwxr-xr-x root root Dec : examples
drwxr-xr-x root root Dec : host-manager
drwxr-xr-x root root Dec : manager
drwxr-xr-x root root Dec : ROOT
[root@node101 ~]#
3>.
三.
Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署的更多相关文章
- 自己动手搭建 CAS(Central Authentication Service) 环境,为了单点登录(Single Sign On , 简称 SSO )
介绍 刚刚搭建 CAS 成功了,现在记录下来,怕以后忘记,同时也给需要帮助的人.CAS 搭建需要服务端和客户端,服务端是 Java 写的,如果自己搭建则需要安装与配置 Java 环境.客户端可以是多种 ...
- CAS(Central Authentication Service)——windows上简单搭建及測试
入手文章,大神绕行. 一.服务端搭建 我使用的服务端版本号为:cas-server-3.4.11-release.zip.解压之后,将\cas-server-3.4.11-release\cas-se ...
- Central Authentication Service
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- [精华][推荐]CAS SSO 单点登录框架学习 环境搭建
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- CAS SSO单点登录框架学习
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- CAS SSO单点登录框架介绍
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- 【Java EE 学习 68】【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...
- 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...
- CAS5.2x单点登录(一)——搭建cas服务器
系列文章列表: https://blog.csdn.net/u013825231/article/category/7517313 单点登录的介绍 单点登录(Single Sign On ,简称SSO ...
随机推荐
- Civil 3D 二次开发 事务
事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 对于初学者来说,从字面上难以理解什么是事务.下面我试着通过讲述事务的作用及特性来帮 ...
- POJ3468/splay树/成段更新
板子题,正在努力看懂板子.. http://blog.csdn.net/acm_cxlove/article/details/7815019 http://www.cnblogs.com/kuangb ...
- this view is not constrainted......
this view is not constrainted 解决方案: <EditText android:id="@+id/editText" android:layout ...
- BZOJ2809 dispatching 【可并堆】
题目分析: yy一下就知道了,合并用可并堆少个log. 代码: #include<bits/stdc++.h> using namespace std; ; int n,m; int b[ ...
- 学习Android过程中遇到的问题及解决方法——电话监听
也许有时你会有这样一个需求:通电话时有一个重要的事需要记下来或者和一个陌生人特别是大骗子通话时,这是就想如果能把通话录下来就方便多了.(这才是我写这个代码的目的!!!) 在此过程中,犯了一个很大的错误 ...
- Hdoj 1232.畅通工程 题解
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...
- 【CF1139D】Steps to One(动态规划)
[CF1139D]Steps to One(动态规划) 题面 CF 你有一个数组,每次随机加入一个\([1,n]\)的数,当所有数\(gcd\)为\(1\)时停止,求数组长度的期望. 题解 设\(f[ ...
- Vue中的slot内容分发
①概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. ②默认情况下 父组件在子组件内套的内容,是不显示的. 例如 ...
- Picture POJ - 1177 (扫描线)
扫描线求周长,可以看成两条线,一条扫x轴,一条扫y轴,然后这两天线扫过去的 周长加起来,就是周长了 #include<map> #include<set> #include&l ...
- BZOJ5262(容斥)
题目描述 听着自己美妙的曲子,小Z进入了梦乡.在梦中,小Z仿佛又回到了自己纵横考场的年代.在梦中,小Z参加了一场 考试,这场考试一共有n道题,每道题的最终得分都是一个大于等于0的整数.然而醒来后,小Z ...