SAML 2.0 登录
SAML 2.0 登录功能使应用程序能够充当 SAML 2.0 依赖方,允许用户通过其在 SAML 2.0 断言方(如 Okta、ADFS 等)的现有账户登录该应用程序。
备注
SAML 2.0 登录是通过使用 Web Browser SSO Profile 实现的,具体规范请参阅 SAML 2 Profiles。
自2009年起,依赖方支持一直作为一个扩展项目存在。2019年,我们开始将其移植到Spring Security主项目中。这一过程类似于2017年为Spring Security的OAuth 2.0支持所启动的工作。
备注
关于 SAML 2.0 登录 的工作示例可在 Spring Security 示例仓库 中找到。
章节总结
📄️ SAML2 登录概述
我们首先来探讨 SAML 2.0 依赖方认证在 Spring Security 中是如何工作的。首先,我们看到,与 OAuth 2.0 登录类似,Spring Security 会将用户引导至第三方进行身份验证。这是通过一系列重定向实现的:
📄️ SAML2 认证请求
如前所述,Spring Security 的 SAML 2.0 支持会生成一个 saml2:AuthnRequest 来启动与断言方的认证流程。
📄️ SAML2 认证响应
为验证 SAML 2.0 响应,Spring Security 使用 Saml2AuthenticationTokenConverter 来填充认证请求,并使用 OpenSaml5AuthenticationProvider 对其进行认证。