单点登录开发简介
1. 概述
单点登录,即 Single Sign On,简称 SSO。SSO 是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,是目前比较流行的企业业务整合解决方案之一。
2. 开发预备
2.1 预备知识
1)什么是单点登录?
指用户在认证中心登录后,即同时登录到所有与此认证中心关联的服务中。
例如您只需登录 Google 即可以已登录用户的身份访问 YouTube 和 Gmail。
2)IdP 和 SP 是什么?
缩写 | 全称 | 含义 | 本场景对应 |
IdP | Identity Provider | 认证中心,持有用户信息并与用户建立会话 | 企业内部或第三方身份验证系统 |
SP | Service Provider | 服务提供者,无法识别用户时请求 IdP 进行认证 | 九数云 |
3)什么是 SAML?
SAML 是一种单点登录实现协议,这是一个传统协议,并集成在很多现有的系统中,如 Windows AD 和 Apereo CAS。
4)什么是 JWT?
JWT 是一种数据交换格式,本质是一个 Encode 后的 JSON,其中包含了用户自定义的消息,以及一些辅助验证字段,如签名、过期时间。
2.2 工作原理
SAML(安全断言标记语言)是一种 XML 开放标准,SAML 2.0、CAS 和自定义接口都基于这种协议。SAML 用于在服务提供者与身份提供者之间交换身份验证信息。
用户通过 IdP 发起登录时,将使用 IdP 进行身份验证,验证通过后跳转至九数云。如果 IdP 身份未得到验证,用户将被导航至 IdP 的登录界面先进行登录验证,通过后跳转至九数云。
2.3 配置流程
九数云在单点登录过程中扮演 SP 身份。在管理员启用单点登录功能后,流程如下:
1)未登录的成员访问九数云。
2)九数云将此请求重定向至管理员配置的 IdP 地址。
3)若成员已登录过 IdP,IdP 读取会话中的用户信息;否则先引导成员在 IdP 登录。
4)IdP 将用户信息通过配置的方式(SAML 断言 / JWT Token / CAS Ticket)返回给九数云。
5)九数云根据 username 匹配通讯录中的成员编号,识别此成员并提供后续服务。
3. 版本与试用
1)本功能为付费高级功能,需九数云企业版及以上可用。
2)若需体验使用该功能,请提交试用申请;使用中遇到问题可联系官方咨询。
4. 配置方式选型
九数云中支持 3 种单点登录的配置方式:
配置方式 | 说明 | 优缺点 | 适用对象 |
SAML 2.0 | 安全断言标记语言,使用统一的身份提供服务(IdP)验证用户身份,然后将认证后的安全断言和用户信息返回给九数云,九数云将用户与内部账号系统关联 | 优:通用协议,已集成则可直接复用,也可使用 OneLogin 等认证服务商 缺:未集成时需自行开发对接层,难度较高 | 认证系统已集成相关功能,或背景知识较强的用户 |
自定义接口 | 简化的 SAML 协议,可在现有 SSO 接口基础上修改,按九数云要求调用服务并返回参数,完成账号关联 | 优:易于理解,开发简单 缺:属于产品自有协议,需自行开发对接层 | 自己开发相关接口与九数云对接的用户 |
CAS | 允许用户访问多个应用程序,同时仅向中央 CAS 服务器应用程序提供一次凭据 | 优:通用协议,有 Apereo CAS 等开源 IdP 实现 缺:未集成时需自行开发对接层,难度中等 | 认证系统中已集成相关功能的用户 |
💡选型建议
- 已有 Windows AD / OneLogin / 阿里云 IDaaS / Keycloak → 选 SAML 2.0
- 已部署 Apereo CAS → 选 CAS
- 无现成协议但有开发资源 → 选自定义接口(成本最低)

400-111-0890
在线咨询