apereo cas开发_CAS 之 Apereo CAS 简介(一)

2023-05-16

CAS 之 Apereo CAS 简介(一)

Background(背景)

随着公司业务的不断扩展,后台接入子系统不断增多,那么我们将针对不同的平台进行拆分为各自对应的子系统,

权限是不变的,那么我们不能每个子系统都单独进行登录认证,不然管理人员进行切换系统时会疯掉。

那么,经过考察选用开源框架 Apereo CAS , 选定版本为 5.2.0。目前系统已在线,并已稳定。

接下来我会将系统进行脱敏整理出一套完善的基于微服务的CAS单点系统实施方案。

由于CAS是相对比较大的工程,所以建议使用者认真阅读官方文档进行调整。

Intro(介绍)

Central Authentication Service (CAS),通常称为CAS。 CAS是一种针对Web的企业多语言单点登录解决方案,并尝试成为您的身份验证和授权需求的综合平台。

下面是官方的一段简述:

CAS Enterprise Single Sign-On

Spring Webflow/Spring Boot Java server component.

可拔插认证支持 (LDAP, Database, X.509, SPNEGO, JAAS, JWT, RADIUS, MongoDb, etc)

多种协议支持 (CAS, SAML, WS-Federation, OAuth2, OpenID, OpenID Connect, REST)

通过各种提供商支持多因素身份验证 (Duo Security, FIDO U2F, YubiKey, Google Authenticator, Microsoft Azure, Authy etc)

支持外部提供者的委托认证,例如: ADFS, Facebook, Twitter, SAML2 IdPs, etc.

Built-in support for password management, notifications, terms of use and impersonation.

Support for attribute release including user consent.

实时监控和跟踪应用程序行为,统计信息和日志。

用特定的认证策略管理和注册客户端应用程序和服务。

跨平台的客户端支持 (Java, .Net, PHP, Perl, Apache, etc).

Integrations with InCommon, Box, Office365, ServiceNow, Salesforce, Workday, WebAdvisor, Drupal, Blackboard, Moodle, Google Apps, etc.

由以上可以看出, Central Authentication Service (CAS) 支持的功能广泛。

Architecture(架构)

System Components (系统组件)

CAS服务器和CAS客户端组成CAS系统架构的两个物理组件,它们通过各种协议进行通信。

CAS Server(CAS服务器)

CAS服务器是基于Spring框架构建的Java servlet,其主要职责是验证用户并通过发布和验证票证来授予对启用CAS的服务(通常称为CAS客户端)的访问权限。 当服务器在成功登录时向用户发出票证授予票证(TGT)时,将创建SSO会话。 根据用户的请求,通过使用TGT作为标记的浏览器重定向向服务发出服务票据(ST)。 ST随后通过反向信道通信在CAS服务器上进行验证。 CAS Protocol文档中详细描述了这些交互。

CAS Clients(CAS客户端)

术语“CAS客户”在其通用中有两个不同的含义。 CAS客户端是可以通过支持的协议与服务器进行通信的任何CAS支持的应用程序。 CAS客户端也是一个软件包,可以与各种软件平台和应用程序集成,以便通过某种身份验证协议(例如CAS,SAML,OAuth)与CAS服务器进行通信。 已经开发了支持多种软件平台和产品的CAS客户端。

Platforms: (软件平台)

Apache httpd Server (mod_auth_cas module)

.NET (.NET CAS Client)

PHP (phpCAS)

Perl (PerlCAS)

Python (pycas)

Ruby (rubycas-client)

Applications:(平台)

Canvas

Atlassian Confluence

Atlassian JIRA

Drupal

Liferay

uPortal

Supported Protocols (支持协议)

客户端通过几种支持的协议与服务器进行通信。 所有支持的协议在概念上都是相似的,但有些协议的特征或特征使得它们适用于特定的应用程序或用例。 例如,CAS协议支持委托(代理)认证,并且SAML协议支持属性发布和单一注销。

Supported protocols:

Software Components(软件组件)

根据三层子系统来描述CAS服务器是有帮助的:

Web(Spring MVC / Spring Webflow)

几乎所有的部署考虑和组件配置都涉及这三个子系统。 Web层是与包括CAS客户端在内的所有外部系统进行通信的端点。 Web层委托票务子系统为CAS客户端访问生成票证。 SSO会话以成功认证时颁发票证授予票证开始,因此票务子系统经常委托给认证子系统。

认证系统通常只在SSO会话开始时处理请求,尽管还有其他情况可以调用它(例如强制认证)。

Conclusions(结论)

由上图可以看出, Central Authentication Service (CAS) 在很多大公司内进行了很好的应用。

Recommendations(建议)

It is recommended to deploy CAS locally using the WAR Overlay method.

建议使用WAR Overlay方法在本地部署CAS。

建议明白几点

2.1 何种应用在何种情况下产生何种事物用于何种目的,白话一点就是要清楚 一种事物的生命周期及变换过程。

2.2 一种新的事物的产生必然有其缘由,知其然知其所以然 才能不断地成长。

2.3 一般情况下,相对完善的事物产生的同时,都会有与之对应的文档。那么学习的最好途径就是仔细阅读实践。

2.4 即使是官方推出的,对自身应用来讲也不一定是最好的,要根据实际情况进行对应的实践验证。

2.5 尽信书不如无书。

参考资料

原创声明

作者:随风浮云

出处:http://www.cnblogs.com/ljmatlight

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明。

文中有不妥或者错误的地方,欢迎勘误,如果你有更好的建议,可以给我留言讨论,共同进步。

互联网技术时效性较强,引用请慎重。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apereo cas开发_CAS 之 Apereo CAS 简介(一) 的相关文章

  • cas服务器作用,CAS服务器搭建

    CAS服务器搭建 目的 xff1a 搭建以jdbc方式连接数据库并认证用户信息 服务器源码下载地址 https github com apereo cas releases tag v4 2 1 解压后 xff0c 项目目录如下 xff1a
  • cas-overlay-template 搭建单点登录服务端

    1 先下载overlay template的源码 git clone https github com apereo cas overlay template git 切换到5 3的分支 2 编译的坑 需要下载cas server weba
  • 实战:CAS搭建

    一 CAS服务器的搭建 1 下载CAS服务器的源码 xff0c 我下载的是CAS Maven WAR Overlay 的分支4 2 X版本 注 xff1a 如若不想了解查找下载地方过程 xff0c 请直接参见 xff08 3 xff09 的
  • cas + tomcat 配置步骤详细笔记(一)

    首先需要准备资源如下 xff1a cas server 4 0 0 release zip xff0c cas client 2 0 11 zip xff0c apache tomcat 6 0 29 下面操作在dos下操作 xff08 开
  • CAS 之自定义登录页实践

    size 61 large b 1 动机 b size 用过 CAS 的人都知道 CAS Server端是单独部署的 xff0c 作为一个纯粹的认证中心 在用户每次登录时 xff0c 都需要进入CAS Server的登录页填写用户名和密码登
  • 锁与CAS详解

    一 悲观锁与乐观锁 乐观锁和悲观锁问题 xff0c 是出现频率比较高的面试题 本文将由浅入深 xff0c 逐步介绍它们的基本概念 实现方式 含实例 适用场景 xff0c 以及可能遇到的面试官追问 xff0c 希望能够帮助你打动面试官 乐观锁
  • cas 6.2 Incompatible because this component declares an API of a component compatible with Java 11

    最近用到cas6 2的项目 配置基本按下面的来 其中配置jdk什么的都是百度的 使用cas overlay template 6 2服务部署到整合cas client 爱学习的老王的博客 CSDN博客 cas overlay 但是导包出现国
  • cas-server服务端搭建

    1 下载cas服务代码 xff0c https github com apereo cas overlay template tree 5 3 2 使用idea工具打开cas overlay template 5 3包 xff0c 使用ma
  • 经典的ABA问题与解决方法

    1 AbA问题的产生 要了解什么是ABA问题 首先我们来通俗的看一下这个例子 一家火锅店为了生意推出了一个特别活动 凡是在五一期间的老用户凡是卡里余额小于20的 赠送10元 但是这种活动没人只可享受一次 然后火锅店的后台程序员小王开始工作了
  • 悲观锁(Synchronized)和乐观锁(CAS)

    文章目录 悲观锁和乐观锁 Synchronized Synchronized使用 Synchronized底层原理 Java1 6对Synchronized的优化 synchronized的等待唤醒机制 CAS CAS使用 CAS底层原理
  • OAuth2.0 授权模式,基于HttpClient 实现

    功能代码如下 package com zzg ucas config import java io IOException import org apache http HttpResponse import org apache http
  • cas 5.2.0登陆界面添加验证码和校验功能

    本文分为4个部分 1 登录界面添加验证码 2 自定义登录对象 增加一个验证码字段 3 自定义cas的登录流程 完成自定义校验 4 返回自定错误信息 1 配置验证码 生成验证码 使用google的kaptcha 需引入jar的包如下
  • 悲观锁synchronized、乐观锁CAS

    1 悲观锁 乐观锁 悲观锁是一种思想 在多线程竞争下 加锁 释放锁会导致比较多的上下文切换和调度延时 引起性能问题 一个线程持有锁会导致其它所有需要此锁的线程挂起 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置 引起性能
  • ABA问题基础及解决

    一 ABA问题的产生 二 AtomicReference原子引用 三 AtomicStampedReference版本号原子引用 四 ABA问题解决 前面的内容之间的关联 CAS gt Unsafe类 gt CAS思想 gt ABA问题 g
  • CAS5.3 服务器集成MySQL8数据库

    MySQL 相关准备 1 安装MySQL8 并安装相关数据库实例 省略一千字 2 新建ucas auth user表 并增加相关用户条记录 DROP TABLE IF EXISTS ucas auth user CREATE TABLE u
  • cas 编译安装依赖时提示: Failure to find net.shibboleth.tool:xmlsectool:jar:2.0.0

    错误信息 Could not resolve dependencies for project org apereo cas cas overlay war 1 0 Failure to find net shibboleth tool x
  • loadFromRemoteSourcesenabled="true" // XAML 设计器 // VS 11 beta 和 2012 RC

    我经常被这种情况刺痛 当然总是在最糟糕的时刻 当我编辑 xaml 文件时 收到此错误 System NotSupportedException An attempt was made to load an assembly from a n
  • 浏览器不遵循 AJAX 响应的重定向(PHP 生成的响应使用 CAS 身份验证)

    好吧 看来我最初的问题犯了一个错误 因此 这里有一些更正 答案仍然适用 因为当协议更改为 HTTPS SSL 时 第二个重定向就会停止 就我而言 重定向发生了多次 并且浏览器不遵循第二次重定向 遵循第一个重定向 但返回错误 我一直读到包含重
  • CAS 注销和 cookie 消除

    我刚刚制作了一个 HelloWorld servlet 并在其上实现了 CAS 我能够毫无问题地登录 并且 CAS 在我的浏览器中设置 3 个 cookie CASGT 并为 cas 设置 2 个 JSESSIONID 1 另一个为 hel
  • 通过cas进行ajax调用

    我需要编写一个谷歌小工具来读取谷歌群组的提要 问题是我正在进行 ajax 调用来检索提要 而我们的 google apps 域受 CAS 中央身份验证服务 保护 因此 我在拨打电话时收到 400 错误请求 我怀疑浏览器在进行 ajax 调用

随机推荐