概述
单点登录是用户只需登录一次,即可访问所有互信应用系统的认证方案。它通过中央认证服务器统一管理登录,避免重复输入密码。
在零衍的实际使用场景中,单点登录(SSO)是高频且关键的核心功能之一。为支撑后续交付实施阶段的方案选型,以及问题排查时的思路梳理,本次将重点介绍常用单点登录协议,并针对 OAuth2.0 等非单点但功能相关的协议进行对比分析,为相关场景的落地提供参考。
内容简介
学习目标:
◆ 零衍单点Server介绍
◆ OAuth 协议讲解
◆ 实际案例分析:H-ZERO 的 OAuth2 协议流程
◆ 实际案例分析:H-ZERO 对接零衍的 OAuth2 协议流程
◆ CAS 协议讲解
◆ 实际案例分析:EIP 系统协议流程
◆ 异构系统二开时,如何进行客户端插件开发
零衍登录支持的单点类型有:
◆ OAuth2
◆ CAS
◆ SAML
◆ SAP GUI
登录方式区别
◈ 单点登录:在整个系统架构中,零衍与客户已安装的 OA、SRM 等系统属于同一架构,实现单点登录。
◈ 三方登录:外部系统与本系统未部署在一起,登录页可选择是否使用,常见如飞书登录、企业微信登录等,一般采用三方提供的 Oauth2 协议。
◈ LDAP 登录:与单点登录本质不同,仅将用户名和密码校验交给 LDAP 服务端,登录页仍使用原登录页,不具备单点登录功能。可根据客户对登录效果的要求选择使用哪种登录方式。
OAuth2协议介绍
1. OAuth2.1 与 OAuth2 的区别
首先,在了解OAuth2的时候,先了解OAuth2.1 与 OAuth2 的区别介绍:
零衍基于OAuth2.1结合当前使用情况,做了一些历史常用方法兼容:
- 禁止简单模式
- 额外提供密码模式
- 授权码模式/Token的用法保持OAuth2.1的使用方式
2. 关于OAuth2 协议的授权模式介绍
- OAuth2 授权模式: 简单模式(Implicit)
在OAuth2.1 已经废弃的协议,在系统内部可以考虑继续使用,但是在单点的场景里,协议最佳还是OAuth2协议。 - OAuth2 授权模式: 密码模式 (Resource Owner Password Credentials)
一种出现在服务于服务之间的授权协议,单点登录的场景里一般情况不会使用。在OAuth2.1已经废弃,但是在历史的架构里非常常见,因此零衍额外单独提供该协议以方便过渡使用。 - OAuth2 授权模式: 客户端模式(Client Credentials Grant)
一种不涉及用户的授权模式,与单点登录无关。 - OAuth2 授权模式: 授权码模式(Authorization Code)
单点登录的最佳实践授权模式。
构建单点授权认证链接:
获取code参数,之后进行access_token转换:
成功获取access_token之后,获取单点登录用户信息:
3. 系统演示
在了解了OAuth2相关的授权模式之后,可以根据H-ZERO以及零衍的使用情况观察现象。
◈ H-ZERO的OAUTH服务登录(简单模式)
简单模式的认证链接构建:
◈ 零衍&H-ZERO单点登录(授权码模式)
构建授权认证链接:
完成单点登录,返回code参数给客户端:
CAS协议介绍
在了解OAuth2协议之后,CAS协议就更加容易理解。简单的讲,CAS协议,与OAuth2的简单模式有一定程度的相似。这也是更推荐OAuth2的授权码模式做单点登录的原因,安全性相对来说更好一些。
这里可以用CAS的图与OAuth2的简单模式的图进行对比,除了接口地址以及参数名称不同,整体流程基本一致。
认证接口介绍如下:
获取用户信息接口如下:
1. CAS2/CAS3和零衍的区别
零衍基于CAS2/CAS3在保持原始协议使用情况不变的前提下,增加了一些基本的安全性校验,以及同时支持CAS2和CAS3协议。
2. 系统演示
在了解了CAS协议之后,可以根据EIP的使用情况观察现象。
其他系统自定义单点客户端
在了解了OAuth2 和CAS的单点登录之后,我们可以根据实际情况做一些如何开发单点登录客户端的方案。
更多
操作手册:汉得焱牛开放平台
文档 > 技术产品 > 零衍系统管理平台KINGPAAS
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。