免费注册,打造高效身份管理
博客/开发者/中央认证服务器对单点登录的意义
中央认证服务器对单点登录的意义
Authing 官方2022.08.05阅读 706

01

单点登录

假如你是企业管理者,你的公司正在使用包括考勤系统、差旅报销系统、在线协同工具等十几甚至几十套不同的软件系统,你的员工是否可以在这些不同的系统中,一次登录全部搞定?有没有发生多人共享同一账号,造成身份管理混乱的情况?

企业在统一员工身份管理时,面临诸多挑战:

1. 应用太多,员工账号密码众多,复杂难记,或设置单一,存在安全隐患。

2. 登录入口众多,没有统一界面,切换频繁,体验差。

3. 不同应用和员工数据之间割裂,不同设备和操作系统不兼容。

4. 不同应用、各地分支机构,档案信息不同。

单点登录可以解决这些痛点。

 

单点登录是一个身份验证机制,英文全称 Single Sign On,简称 SSO。它的定义是:在多个应用系统中,用户只需要登录一次,即可访问所有相互信任的应用系统,就像健康保一样,为你的身份做担保。

 

顾名思义,多个应用系统在同一个地方进行认证。这样每个人用一个账号就可以登录多个系统。多个系统实现单点登录后,会有以下的效果:

  1. 在任何一个系统登录后,再访问其他系统,不必再次输入密码进行认证。至于需不需要再点一次登录按钮,取决于业务系统,不取决于中央认证服务器。
  2. 在任何一个系统登出后,是否从其他系统退出,是否从中央认证服务器退出,也取决于场景和实现。

 

02

中央认证服务器

 

解决唯一可信数据源的问题

单点登录需要具备一份唯一可信的用户目录,全部系统都在中央认证服务器完成认证,信赖中央认证服务器返回的身份信息。这可以实现一个账号登录多个系统的效果。

建议使用 OIDC 协议作为单点认证的身份协议,有以下好处:

  1. 无需进行字段对齐,协议规定了字段标准
  2. 轻量、安全,OIDC 是 OAuth 2.0 的超集,学习成本低

解决子系统之间登录态问题

为了让子系统之间能够互相识别出登录态,需要额外的工作。常用的方式一般有共享 Cookie,跨域发送 Cookie 查验登录态,静默检测中央认证服务登录态。

共享 Cookie

如果两个系统在同一个主域名下,可以通过在根域名写 Cookie 的方式来共享登录状态。

跨域发送 Cookie 查验登录态

子系统可以跨域发送中央认证服务器的 Cookie 到中央认证服务器来检验用户是否已经登录,需要中央认证服务器的支持。

静默检测登录态

在访问每个系统时,先到中央认证服务器检测登录态,可以在一个隐藏的 iframe 里面向 OIDC 服务发起登录请求,prompt=none 参数为静默登录。如果用户曾经在其他系统登录成功,当前系统会收到该用户的 token,当前业务系统在用户无法察觉的情况下与浏览器建立会话,完成登录;如果用户没有登录,当前系统应该将用户转到中央认证服务器,让用户完成认证,然后与用户建立会话。

登出

用户在一个业务系统登出后,业务系统可以通知中央认证服务器,退出用户与中央认证服务器的登录状态,通知其他业务系统,将用户退出。也可以不进行通知,用户可以继续浏览其他系统。

 

点击此处了解更多行业身份管理

「解决方案」以及「最佳实践案例」

文章作者

avatar

Authing 官方

0

文章总数

authing blog rqcode
关注 Authing 公众号
随时随地发现更多内容
authing blog rqcode
添加 Authing 小助手
加入 Authing 开发者大家庭
身份顾问在线解答
当前在线
如何打造完整的身份体系?
立即沟通
authing
添加企业微信,领取行业资料
authing
authing
下载 Authing 令牌,体验快速登录认证!
免费使用
在线咨询
电话咨询