问题描述
我正在使用Spring Boot v2.3.3。
我试图通过使用v5.2中添加到spring的saml支持向我的应用程序添加SSO支持:(https://docs.spring.io/spring-security/site/docs/5.2.1.RELEASE/reference/htmlsingle/#saml2)
我对Spring和SAML还是很陌生,尽管该参考页面提到当前功能集“支持加密的NameId元素”,但是我不确定如何配置应用程序以添加名称ID格式,或者如何发送身份提供者的名称ID。
我在这里(https://github.com/spring-projects/spring-security/tree/5.3.x/samples/boot/saml2login)复制了Spring Boot示例应用程序,但是我的IDP表示他们也需要一个nameID。
解决方法
在使用基于代码的配置时,您可以使用
@Bean
public WebSSOProfileOptions defaultWebSSOProfileOptions() {
WebSSOProfileOptions webSSOProfileOptions = new WebSSOProfileOptions();
// do not enable IdP-Proxy support
webSSOProfileOptions.setIncludeScoping(false);
webSSOProfileOptions.setNameID(NameIDType.TRANSIENT);
return webSSOProfileOptions;
}
但是,通常,IdP在IdP元数据文件中定义它支持的NameID格式,Spring Security SAML将使用指定的第一个NameID格式。您可以重新排序。