开发文档
1. 简介
单点登录,即 Single Sign On,简称为 SSO。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,是目前比较流行的企业业务整合的解决方案之一。
2. 开发步骤
2.1 开发预备
2.1.1 预备知识
在开始开发之前,您需要了解以下预备知识:
1)什么是单点登录?
单点登录指用户在认证中心登录后,即同时登录到所有与此认证中心关联的所有服务中。如您只需登录 Google 即可以已登录用户的身份访问 Youtube 和 Gmail。
2)单点登录流程中的 IdP 和 SP 是什么?
- IdP 是 Identity Provider 的缩写,指认证中心,在认证过程中 IdP 持有用户信息,并与用户建立会话。
- SP 是 Service Provider 的缩写,指服务提供者,当用户访问 SP 提供的服务时,如果 SP 无法识别用户,会请求 IdP 对用户进行认证。
3)什么是 SAML?
SAML 是一种单点登录实现协议,这是一个传统协议,并集成在很多现有的系统中,如 Windows AD 和 Apereo CAS。
4)什么是 JWT?
JWT 是一种数据交换格式,本质是一个 Encode 后的 JSON,其中包含了用户自定义的消息,以及一些辅助验证字段,如签名,过期时间。
2.1.2 工作原理
SAML(安全断言标记语言)是一种 XML 开放标准,SAML 2.0 、CAS 和自定义接口都基于这种协议。SAML 用于在服务提供者和身份提供者之间交换身份验证信息。
- 服务提供者:SP,Service Provider,这里指简道云;
- 身份提供者:IdP,Identity Provider,这里指企业内部或第三方的身份验证系统。
用户通过 IDP 发起登录时,将使用 IDP 进行身份验证,验证通过后跳转至简道云。如果 IDP 身份未得到验证,你的用户将被导航至 IDP 的登录界面先进行登录验证,通过后跳转至简道云。
2.1.3 配置流程
简道云在单点登录过程中扮演 SP 身份。在管理员启用单点登录功能后,当一个未登录的成员访问简道云时,简道云会将此请求重定向至管理员配置的 IDP 地址。此时如果成员登录过 IDP,则 IDP 只需读取会话中的用户信息并将其通过配置的方式返回给简道云,简道云即可识别此成员并提供后续服务。流程大致如下:
2.2 申请试用
1)本功能为付费高级功能,需简道云企业版及以上版本可用。若您需要体验使用该功能,可点击右侧表单提交试用申请:申请试用 - 单点登录。
2)若您在使用中遇到问题,也可 联系我们 进行咨询。
2.3 配置方式
简道云中支持 3 种单点登录的配置方式:
配置方式 | 说明 | 优缺点 | 适用对象 |
SAML2.0 | 安全断言标记语言,使用统一的身份提供服务(IDP)验证用户身份,然后将认证后的安全断言和用户信息返回给简道云,简道云将用户与简道云内账号系统关联 |
| 适用于认证系统中已经集成了相关功能,或背景知识较强的用户 |
自定义接口 | 简化的 SAML 协议,企业客户可在现有 SSO 接口基础上进行修改,按照简道云的要求调用服务和返回参数,并将认证后的用户信息返回给简道云,完成账号关联。 |
| 适用于自己开发相关接口与简道云对接的用户。 |
CAS | 允许用户访问多个应用程序,同时仅向中央CAS 服务器应用程序提供一次凭据(如用户名和密码)。 |
| 适用于认证系统中已经集成了相关功能的用户 |
3. 代码示例
若您需要通过自定义接口来实现单点登录,您可通过修改以下Demo 代码示例来完成自定义接口的配置: