概述

单点登录是用户只需登录一次,即可访问所有互信应用系统的认证方案。它通过中央认证服务器统一管理登录,避免重复输入密码。

在零衍的实际使用场景中,单点登录(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


汉得数字平台
1 声望2 粉丝

源于技术,志在四海,HAND融合中台产品交流平台。


引用和评论

0 条评论