SSO处理流程|学习笔记

简介: 快速学习SSO处理流程

开发者学堂课程【Java面试疑难点串讲5:系统架构及项目设计:SSO处理流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/28

SSO处理流程

阿里云开发者学院


 

目录:

一、SSO的处理流程

二、CSA

 

 

一、SSO的处理流程

●所谓单点登录用在什么场景上:单点登录的上主要是用再集群上的应用场景。

●SSO应用场景

阿里云目前支持两种SSO方式:角色SSO和用户SSO。本文为您介绍这两种方式的适用场景和选择依据,帮助您根据整体业务需求选择合适的SSO方式。

  角色SSO

角色SSO适用于以下场景:

出于管理成本考虑,不希望在云端创建和管理用户,从而避免用户同步带来的工作量。

在使用SSO的同时,仍然保留一部分云上本地用户,可以在阿里云直接登录。云上本地用户的用途可以是新功能测试、网络或企业IdP出现问题时的备用登录方式等。

 

根据用户在本地IdP中加入的组或者用户的某个特殊属性,来区分云上拥有的权限。当进行权限调整时,只需要在本地进行分组或属性的更改。

 

a、拥有多个阿里云账号但使用统一的企业IdP,希望在企业IdP配置一次,就可以实现到多个阿里云账号的SSO。

b、各个分支机构存在多个IdP,都需要访问同一个阿里云账号,您需要在一个阿里云账号内配置多个IdP进行SSO。

C、除了控制台,也希望使用程序访问的方式来进行SSO。

 

 ★用户SSO

用户SSO适用于以下场景:

a、希望从阿里云的登录页面开始发起登录,而非直接访问您IdP的登录页面。

b、需要使用的云产品中有部分暂时不支持角色访问。

C、IdP不支持复杂的自定义属性配置。

d、没有上述需要使用角色SSO的业务需求,而又希望尽量简化IdP配置。

image.png

CAS

●CAS有一个自己的流程,在其中SSO流程有一个最关键的流程是https(Openssl 证书签发)

image.png

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

特点

1、开源的企业级单点登录解决方案。

2、CAS Server 为需要独立部署的 Web 应用。

3、CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等语言编写的各种web应用。

4、CAS属于Apache 2.0许可证,允许代码修改,再发布(作为开源或商业软件)。

5、原理和协议

从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图1 是 CAS 最基本的协议过程:

image.png

CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。

用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份核实,以确保 Service Ticket 的合法性。

在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。

另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景。

 

 

 

相关文章
|
7月前
|
C++
第二章:C++中的控制流程
第二章:C++中的控制流程
49 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
72 3
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(一)
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(一)
63 1
|
数据处理
从数据处理到演示的处理流程
从数据处理到演示的处理流程
33 0
|
安全 Java 数据安全/隐私保护
Spring Security 对请求的处理流程
分析Spring Security的核心原理,可以从以下几个方面进行: 1. 系统启动的时候Spring Security做了哪些事情? 2. 发起一次请求后Spring Security做了哪些事情?
94 0
|
Linux 调度
linux中断处理流程总结
linux中断处理流程总结
555 0
|
设计模式 Java 数据库连接
Java责任链模式:优雅解耦系统处理流程,实现高效灵活的请求处理与分发(下)
Java责任链模式:优雅解耦系统处理流程,实现高效灵活的请求处理与分发
287 0
|
存储 设计模式 Java
Java责任链模式:优雅解耦系统处理流程,实现高效灵活的请求处理与分发(上)
Java责任链模式:优雅解耦系统处理流程,实现高效灵活的请求处理与分发
217 0
|
编解码 内存技术
Audio基本概念及处理流程
Audio基本概念及处理流程
Audio基本概念及处理流程
|
缓存 容器
从源码分析SpringMVC核心处理流程
从源码分析SpringMVC核心处理流程
114 0
从源码分析SpringMVC核心处理流程