SAML 2.0 登录
SAML 2.0 登录功能使应用程序能够充当 SAML 2.0 依赖方,让用户通过他们在 SAML 2.0 断言方(如 Okta、ADFS 等)的现有帐户登录到应用程序。
备注
SAML 2.0 登录是通过使用Web 浏览器 SSO 配置文件实现的,如SAML 2 配置文件中所述。
自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 来填充认证请求,并使用 OpenSaml4AuthenticationProvider 来进行认证。