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)部署的更多相关文章

  1. 自己动手搭建 CAS(Central Authentication Service) 环境,为了单点登录(Single Sign On , 简称 SSO )

    介绍 刚刚搭建 CAS 成功了,现在记录下来,怕以后忘记,同时也给需要帮助的人.CAS 搭建需要服务端和客户端,服务端是 Java 写的,如果自己搭建则需要安装与配置 Java 环境.客户端可以是多种 ...

  2. CAS(Central Authentication Service)——windows上简单搭建及測试

    入手文章,大神绕行. 一.服务端搭建 我使用的服务端版本号为:cas-server-3.4.11-release.zip.解压之后,将\cas-server-3.4.11-release\cas-se ...

  3. Central Authentication Service

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. [精华][推荐]CAS SSO 单点登录框架学习 环境搭建

    1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...

  5. CAS SSO单点登录框架学习

    1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...

  6. CAS SSO单点登录框架介绍

    1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...

  7. 【Java EE 学习 68】【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  8. 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  9. CAS5.2x单点登录(一)——搭建cas服务器

    系列文章列表: https://blog.csdn.net/u013825231/article/category/7517313 单点登录的介绍 单点登录(Single Sign On ,简称SSO ...

随机推荐

  1. 洛谷P1434滑雪题解及记忆化搜索的基本步骤

    题目 滑雪是一道dp及记忆化搜索的经典题目. 所谓记忆化搜索便是在搜索的过程中边记录边搜索的一个算法. 当下次搜到这里时,便直接使用. 而且记忆化搜索一定要满足无后效性,为什么呢,因为如果不满足无后效 ...

  2. 【ARC072E】Alice in linear land DP

    题目大意 有一个人要去直线上\(lm\)远处的地方,他会依次给他的机器发出\(n\)个指令.第\(i\)个指令为\(d_i\).他的机器收到一个指令\(x\)后,如果向目的地方向前进\(xm\)后比当 ...

  3. 【BZOJ5300】[CQOI2018]九连环 (高精度,FFT)

    [BZOJ5300][CQOI2018]九连环 (高精度,FFT) 题面 BZOJ 洛谷 题解 去这里看吧,多么好 #include<iostream> #include<cstdi ...

  4. [模板] 动态dp

    用途 对于某些树形dp(目前只会树上最大权独立集或者类似的),动态地修改点权,并询问修改后的dp值 做法(树剖版) 以最大权独立集为例 设$f[x][0/1]$表示x选不选,这棵子树的最大权独立集大小 ...

  5. 2019 校内赛 RPG的天赋分支(贪心)

    Problem Description 很多游戏都有天赋树的概念,天赋树的不同分支具有不同的属性加成,那么合理选择分支就非常重要了.Luke最近沉迷一款RPG游戏,它的天赋树机制如下:角色具有n个可选 ...

  6. js获取元素位置和style的兼容性写法

    今天说一下js获取元素位置和style的方法.当然不只是element.style那么简单.. 主角:getBoundingClientRect,getClientRects,getComputedS ...

  7. 牛客练习赛31 D神器大师泰兹瑞与威穆

    双链表搞完了 #include<bits/stdc++.h> using namespace std; #define maxn 1000005 int tot,bac[maxn],fa[ ...

  8. axios请求、返回拦截器

    1.http 请求拦截器 axios.interceptors.request.use(function(config){ //在发送请求之前做些什么 return config }), functi ...

  9. tyvj/joyoi 1336 火车进栈

    比原题水了很多(因为原题要高精度) 输出字典序前20种出栈序列. 其实是贪心题:我们每次确定一个出栈的数. 当栈里有数时,字典序显然比从后面拿数要小,所以先搜这个. 之后依次搜后面队列里的数,因为字典 ...

  10. git的使用命令

    git archive --format zip --output "./test.zip" master -0 将项目的代码通过上述命令打包压缩为test文件夹 ssh-keyg ...