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 简介(一) 的相关文章

  • 阿里云docker方式搭建CAS服务端-最新版

    现在网上查到的CAS服务端搭建方式都比较老 xff0c 坑也很多 docker镜像直接使用官方的 xff0c 便于今后无缝升级 cas现时点最新版本为6 3 1 创建工作目录 mkdir home cas 以下操作都在该目录下执行 2 生成
  • CAS服务器搭建

    一 CAS是Central Authentication Service的缩写 xff0c 中央认证服务 xff0c 一种独立开放指令协议 CAS 是 Yale 大学发起的一个开源项目 xff0c 旨在为 Web 应用系统提供一种可靠的单点
  • 实战:CAS搭建

    一 CAS服务器的搭建 1 下载CAS服务器的源码 xff0c 我下载的是CAS Maven WAR Overlay 的分支4 2 X版本 注 xff1a 如若不想了解查找下载地方过程 xff0c 请直接参见 xff08 3 xff09 的
  • 使用cas-overlay-template 6.2服务部署到整合cas-client

    1 什么sso是单点登录 单点登录 xff08 Single Sign On xff09 xff0c 简称为 SSO xff0c 是比较流行的企业业务整合的解决方案之一 SSO的定义是在多个应用系统中 xff0c 用户只需要登录一次就可以访
  • cas 配置相关

    默认配置 span class token comment span span class token comment CAS Cloud Bus Configuration span span class token comment sp
  • SpringBoot 搭建CAS 客户端 和CAS 服务端

    第一步 搭建CAS5 3 服务端 Github 下载CAS5 3 服务端版本 https github com apereo cas overlay template tree 5 3 注意 最新的master分支使用的需要java11 该
  • 真实业务场景展现CAS原理的ABA问题及解决方案

    文章目录 阅读提示 CAS原理 ABA问题介绍 真实业务场景 如何解决ABA问题 CAS学习总结 阅读提示 本文将借助开保险柜的业务场景重点阐述误用AtomicBoolean引起的ABA问题 以及解决方案 基于此 请先深入理解CAS原理 以
  • 悲观锁(Synchronized)和乐观锁(CAS)

    文章目录 悲观锁和乐观锁 Synchronized Synchronized使用 Synchronized底层原理 Java1 6对Synchronized的优化 synchronized的等待唤醒机制 CAS CAS使用 CAS底层原理
  • 实战Java高并发程序设计(第二版)-chp4锁

    多线程引用 需要维护并行数据结构间的一致性状态 需要为线程的切换和调度花费时间 参考 实战Java高并发程序设计 第二版 Unsafe类详解 java cas算法实现乐观锁 4 1 合理的锁性能 4 1 1 减少锁持有时间 原有的程序 对整
  • cas单点登录-自定义登录验证(四)

    我们在使用SSO单点登录的时候不只是验证一下用户名和密码是否一致 有时候还需要验证一些别的校验 那么这一张讲一下如何自定义验证器 自定义验证很重要 因为我们后续的很多功能 都是基于自定义验证 CAS服务器的org apereo cas au
  • Java内存模型,volatile关键字和CAS算法,

    引言 在前几篇博文中我详细介绍了HashMap的底层实现原理 后来我接连写了三天JVM和GC的一些知识 那些知识偏向于理论 今天换点口味 和大家一起研究学习一下ConcurrentHashMap的底层实现 因为jdk1 8在HashMap和
  • CAS5.3 服务器集成MySQL8数据库

    MySQL 相关准备 1 安装MySQL8 并安装相关数据库实例 省略一千字 2 新建ucas auth user表 并增加相关用户条记录 DROP TABLE IF EXISTS ucas auth user CREATE TABLE u
  • CAS AD LDAP 32 错误

    当我尝试使用 CAS 登录时 我看到了这一点 CAS 通过 LDAP 对 AD 进行身份验证 SEVERE Servlet service for servlet cas threw exception javax naming NameN
  • Apache Maven 错误:无法将工件 org.apache.maven.plugins:maven-clean-plugin:pom: 2.5 传输到中央

    我对此很陌生 我正在 apache maven 上工作 我在代理服务器后面工作 每次 我都会尝试构建maven项目 它给了我这个错误 我还更改了 settings xml 文件中的代理设置 但它不起作用 它一直给我同样的问题 构建失败 我在
  • 使用 Spring Security + CAS 进行循环重定向,但应该可以工作

    我正在尝试将基本应用程序从仅使用 Spring Security 更改为使用 CAS 以启用 SSO 但我在某个地方遇到了重定向循环 并且我无法找出问题所在 我还制作了另外两个模拟应用程序 在 CAS 上没有问题 因为它们正在工作 我使用
  • 使用 Grails Spring Security CAS 插件重定向循环

    我正在处理一个涉及 CAS 服务器的项目 该项目使用单点登录 SSO 与其他基于 Spring 的项目一起使用 但我收到了涉及 Grails spring security cas 插件的重定向循环 版本 spring security C
  • 如何在 CAS 服务管理中注册我的 Web 应用程序?

    我的学校想要实现一个CAS服务 我做了大部分配置 但是我需要注册webapp 如何在CAS服务管理中注册webapp 或者如果您有一些可以帮助我的样本 我将非常感激 我尝试过使用 cas 管理应用程序 版本为 4 2 x 我不确定您想使用什
  • jasig cas 重定向过多问题

    我正在尝试使用 spring security 和 spring security cas 带有 Jasig CAS 的 SSO 来保护 spring boot Web 应用程序 尝试访问受保护的资源时 我遇到了太多重定向错误 该项目可用h
  • Spring Security with CAS 跳过会话固定保护

    我有一个使用 spring security 和 CAS spring 3 0 5 cas 3 4 5 的应用程序 但是当我登录时 会话 ID 没有改变 当我登录时CasAuthenticationFilter执行身份验证 如果身份验证成功
  • 使用 django-cas-ng 在管理站点上进行身份验证

    我在用着Django Cas NG https github com mingchen django cas ng用于验证用户身份的框架 主要问题是管理页面仍然使用默认的登录视图 到目前为止使用的方法 1 使用环境变量 来自文档 CAS A

随机推荐