开发指南
功能说明
本章节介绍了单点登录的开发方法。
在进一步阅读之前,您需要了解以下预备知识:
什么是单点登录
单点登录指用户在认证中心登录后,即同时登录到所有与此认证中心关联的所有服务中。
举例:您只需登录 Google 即可以已登录用户的身份访问 Youtube 和 Gmail。
单点登录流程中的 IdP 和 SP 是什么
IdP 是 Identity Provider 的缩写,指认证中心,在认证过程中 IdP 持有用户信息,并与用户建立会话。
SP 是 Service Provider 的缩写,指服务提供者,当用户访问 SP 提供的服务时,如果 SP 无法识别用户,会请求 IdP 对用户进行认证。
举例:IdP - XXX 内部员工系统,SP - 本系统。
什么是 SAML?
SAML 是一种单点登录实现协议,这是一个传统协议,并集成在很多现有的系统中,如 Windows AD 和 Apereo CAS。
什么是 JWT?
JWT 是一种数据交换格式,本质是一个 Encode 后的 JSON,其中包含了用户自定义的消息,以及一些辅助验证字段,如签名,过期时间。
单点登录配置简述
本系统支持单点登录,并在单点登录过程中扮演 SP 身份。在管理员启用单点登录功能后,当一个未登录的成员访问本系统时,本系统会将此请求重定向至管理员配置的 IdP 地址。此时如果成员登录过 IdP,则 IdP 只需读取会话中的用户信息并将其通过配置的方式返回给本系统,本系统即可识别此成员并提供后续服务。
本系统支持两种协议的单点登录:
SAML
主要针对认证系统中已经集成了相关功能,或背景知识较强的用户。 优点:通用协议,如果已集成了相关功能则可以直接配置复用,也可以使用如OneLogin 这样的认证服务提供者。
缺点:如果没有集成相关功能,用户需要自行开发对接层,开发难度较高。
自定义接口
主要针对自己开发相关接口与本系统对接的用户。
优点:易于理解,开发简单。