SSO处理流程|学习笔记-阿里云开发者社区

开发者社区> 【开发者学堂】官方技术圈> 正文
登录阅读全文

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 (代理)模式,以适应更加高级、复杂的应用场景。

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云开发者学堂,是开发者学习成长的一站式学习平台。平台源源不断的生产优质体系化课程、优质内容如电子书、直播、体验场景、训练营等,为开发者构建完善的学习成长体系,为开发者赋能。目前,开发者学堂包含数据库、大数据、云原生、AI、IoT等各大热门领域精品课,全部免费对开发者开放。

官方博客
最新文章
相关文章
官网链接