免费注册,打造高效身份管理
博客/身份安全/单点登录的三种实现方式
单点登录的三种实现方式
Authing 官方2022.09.06阅读 1692

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

  1. 应用太多,员工账号密码众多,复杂难记,或设置单一,存在安全隐患。
  2. 登录入口众多,没有统一界面,切换频繁,体验差。
  3. 不同应用和员工数据之间割裂,不同设备和操作系统不兼容。
  4. 不同应用、各地分支机构,档案信息不同。

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

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

单点登录 SSO 可以安全地确保员工只需要一组账号与密码,或通过标准协议认证、第三方身份源认证,就可以登录所有被授权的应用系统。例如,员工只需要登录个人 OA 系统的账号密码就可以访问飞书、销售易、客户系统等应用程序,无需再次输入账号和密码。

用户在登录后,服务器需要对其身份进行验证,主要实现方式有三种:

方式 1:通过 session 进行验证

session 称为“会话”,session 对象存储特定用户会话所需的属性及配置信息。简言之,session 就是服务器为了储存用户信息而创建的一个验证手段。用户在登录了一个系统后,服务器会将登录信息储存在一个 session 中,产生 session ID,客户端会保存该 ID;当这个用户再登录其他系统时,服务器会自动复制上一个模块的 session 该服务器的 session 中,以获取用户登录信息,实现用户只登录一次,就可以登录其他系统。在用户退出登录时,服务器会自动删除 session。

整个过程均在服务器端完成,用户实际使用时没有感知。

方式 2:通过 cookie 进行验证

cookie 是某些网站为了辨别用户身份,由服务端生成,发给客户端暂时或永久保存的信息。简言之,cookie 就是一种存储用户数据的媒介。举例来说,当我们打开一个网站,比如新浪、CSDN、知乎时,输入用户名和密码登录后系统会弹出是否保存 cookie,如果我们选择保存,在下一次登录时,就不需要再次输入用户名和密码,而是默认登录成功,直接进入页面。

方式 3:通过 token 进行验证

token 在身份认证中是令牌的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。简言之,token 就是一种凭证,用户在登录注册时需要获取凭证,在经过验证后,方可登录相关被授权的应用。

用户在首次登录系统时输入账号和密码,服务器会收到登录请求,然后验证是否正确;

服务器会根据用户信息,如用户 ID、用户名、秘钥、过期时间等信息生成一个 token 签名,然后发给用户;

用户验证成功后,返回 token;

前端服务器收到 token 后,存储到 cookie 或 Local Storage 里; 当用户再次登录时,会被服务器验证 token;

服务器收到用户登录请求后,对 token 签名进行比对:如果 token 验证正确,用户登录成功;如果 token 验证不正确,用户登录失败,跳转到登录页。

session 与 cookie、token 验证的区别

在 Authing 中,无需手动编写操作 session、cookie 或是 token,控制台中可以一键体验单点登录功能,并且支持自建与集成第三方等多种方式,还可以通过 SDK 接入并自定义自己的应用与登录方式。

自建 SSO 方案

开启应用之间的单点登录后,同一个用户池下的不同应用之间的登录状态将会打通,终端用户只需登录一次即可在不同的应用之间畅行。

创建两个应用

首先你可以按照指引创建两个应用。

配置单点登录

进入菜单 应用 > 单点登录 SSO,点击左上角添加应用,然后选择自建应用,在下方的列表里找到刚刚创建的应用,点击 + 号,就完成了多应用单点登录的配置。

体验应用单点登录

进入 单点登录 SSO的应用列表标签,选择一个应用,点击体验登录。

在登录页面完成登录:

成功后会跳转到应用回调地址:

接下来我们点击另一个应用的体验按钮:

用户无需再次输入密码,直接进入了该用用的回调地址:

使用 SDK 接入单点登录

详细的接入流程请见 单点登录 SDK 文档。

代码参考: https://github.com/Authing/authing-sso-demo/tree/feat-sso-v3-demo

 

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

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

文章作者

avatar

Authing 官方

0

文章总数

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