一篇文章读懂 SAML 单点登录

发布时间:2026/8/11 4:26:46
一篇文章读懂 SAML 单点登录 在实际项目中单点登录技术应用广泛。下面结合个人学习理解简述基于 SAML 协议的单点登录相关知识。1.什么是单点登录单点登录SSOSingle Sign-on是一种方便用户访问多个系统的技术用户只需在登录时进行一次身份认证就可以在多个系统间自由穿梭不必重复输入用户名和密码来确认身份。单点登录的实质是安全上下文Security Context或凭证Credential在多个应用系统之间的传递或共享。当用户登录系统时客户端软件根据用户的凭证为用户建立一个安全上下文安全上下文包含用于验证用户的安全信息系统通过该安全上下文和安全策略来判断用户是否具备访问系统资源的权限。2.什么是 SAML 协议SAML 全称安全断言标记语言英文全称为 Security Assertion Markup Language它是一种基于 XML 的标准用于在不同的安全域之间交换认证和授权数据。在 SAML 标准中定义了两大实体对象身份提供商 IDPIdentity Provider和服务提供商 SPService Provider。身份提供商主要负责提供用户的身份信息服务提供商则是实际提供服务并需要对用户进行认证的实体。3.单点登录和 SAML 协议的关联SAML 实现单点登录的原理是基于身份提供商与服务提供商之间的相互认证与信任。当用户访问某个服务提供商时服务提供商会向身份提供商发送请求要求提供用户的身份信息。身份提供商验证用户身份确认无误后将身份信息以断言的形式返回给服务提供商。服务提供商对断言进行校验若断言有效则用户认证通过否则将被拒绝访问从而实现便捷、无缝的用户访问。在数据安全方面SAML 依靠一套成熟的安全标准包括 SSL/TLS 和 X.509 数字证书来保护 SAML 源站点与目标站点之间通信的安全所有通信都经过加密确保参与 SAML 交互的双方站点能够互相验证身份大幅提升了各系统之间的安全性。4、实际开发中如何应用实际开发过程中可以自定义身份提供商和服务提供商并配置认证地址、安全证书、回调地址等要素也可以接入目前已支持 SAML 协议的第三方应用如 SonarQube、GitLab、Redmine 等作为服务提供商。这样能够降低访问第三方系统的风险简化用户的登录过程提高工作效率实现一键登录认证、自由穿梭于各系统的便捷操作。5.SAML 单点登录流程1 用户通过浏览器请求访问 SP 上的受保护资源。2 SP 收到请求后判断用户是否已登录如果未登录则生成 SAML Request发起 SSO 登录流程如果已登录则直接允许访问。3 SP 生成 SAML Request 后通过浏览器重定向到 IDP 进行登录。4 IDP 收到 SAML Request 后对其进行解析并引导用户完成登录。登录成功后IDP 向浏览器返回 SAML Response。5 浏览器将 IDP 返回的 SAML Response 转发到 SP 的回调地址。6 SP 收到 SAML Response 后进行解码和签名校验校验通过后按自己系统的方式为用户建立登录会话并向用户返回其最初请求的受保护资源。流程图