单点登录不仅仅是“一次登录”

发布日期:2026-06-07 10:00:34   浏览量 :0
发布日期:2026-06-07 10:00:34  
0

对身份、会话、OAuth 2.0、OpenID Connect 以及租户隔离的实用探讨。

单点登录通常被概括为“一次登录,访问多个应用”。这没错,但并不完整。一个真正的单点登录系统还必须回答以下几个安全问题:

  • 哪个应用正在请求访问?
  • 哪个组织拥有该应用?
  • 用户是否被允许使用它?
  • 用户批准分享了哪些信息?
  • 应用如何信任其收到的令牌?

三个参与方

单点登录流程涉及三个主要参与方:

  1. 终端用户,即想要登录的用户。
  2. 客户端应用,即需要用户身份的应用。
  3. 身份提供商,负责验证用户身份并颁发令牌。

客户端应用永远不会接收用户的密码。相反,它将浏览器重定向到身份提供商。由提供商处理身份验证,并向应用发送一个短期有效的授权码。

这种分离是基础性的:应用将身份验证委托给一个受信任的身份提供商。

登录流程的工作原理

安全的实现可以使用带有 OpenID Connect 和 PKCE 的 OAuth 2.0 授权码流程。

顺序如下:

  1. 客户端将浏览器重定向到身份提供商,携带其 client_id、回调 URL、请求的作用域、state 参数以及 S256 PKCE 挑战码。
  2. 在显示任何登录页面之前,提供商先验证客户端和回调 URL。
  3. 它从已注册的客户端解析租户,因此租户上下文并非来自不可信的用户输入。
  4. 提供商将经过验证的请求存储为短期有效的授权事务。前端仅收到一个不透明的事务 ID。
  5. 用户登录。提供商验证针对该客户端的租户范围账户、密码、账户状态和角色。
  6. 用户在同意屏幕上批准或拒绝请求的访问权限。
  7. 批准后,提供商向已注册的回调地址返回一个短期有效、一次性使用的授权码。
  8. 客户端使用授权码及其 PKCE 验证器交换 ID 令牌、访问令牌和刷新令牌。

ID 令牌告知客户端谁进行了身份验证。访问令牌授权 API 访问。刷新令牌允许客户端获取新的短期访问令牌,而无需要求用户再次登录。

单点登录流程图

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 订阅 数据