当前位置: 首页 > 知识库问答 >
问题:

Spring Boot:如何为SAML指定nameID策略

温星华
2023-03-14

我使用的是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发送到身份提供程序。

我在这里复制了Spring Boot示例应用程序(https://github.com/spring-projects/spring-security/tree/5.3.x/samples/boot/saml2login),但是我的IDP说他们也需要一个nameID。

在理解我需要添加的任何帮助将不胜感激。

共有1个答案

慕光赫
2023-03-14

在您的应用程序中,您可以使用基于代码的配置

  @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格式。你可以重新订购这个。

 类似资料:
  • 我是单点登录 (SSO) 概念的新手。我开始知道 SAML 请求和响应是实现 SSO 过程的最佳方式。然后我开始阅读有关SAML2.0的内容。我在 saml2.0 中发现了一个术语 NameIdPolicy,这在 saml1.0 中是不存在的。 定义说这是我们从IdP请求的NameID的格式,我想知道该格式是什么?我的意思是来自IDP的哪些数据应该以NameIDPolicy指定的格式出现?任何人都

  • 我在我的项目中使用了Spring Security SAML,它运行良好。我的SamlSecurityConfig中有以下内容。groovy文件 因此,当我进入/saml/login时,它会将我重定向到我的IDP登录页面,登录IDP后,我会被重定向到我的应用程序。现在我想知道Spring Security SAML中是否有任何配置,我可以指定一个更新密码url,通过该url,我的应用程序应该重定向

  • 我正在使用SAML开发SSO,我的IdP是Azure。 我对IDP启动的流量有问题。在SAML回复中,我总是得到以下名称ID: 这就是我所期待的: 我总是得到,而不是。虽然我已将“名称标识符格式”设置为“电子邮件地址”: 请注意,在SP启动的流中,我可以通过指定NamedPolicy让Azure发送电子邮件地址: 但是,在IdP启动的流上,AuthnRequest没有NamedPolicy 我想知

  • 问题内容: 我已经安装了GlassFish 2.1.1。我安装了1.5和1.6 JDK。即使我的JAVA_HOME变量设置为1.5版本(“ java -version”和“ javac -version”都显示1.5),每当我启动glassfish域时,它总是在日志顶部指出它使用的是1.6版。如何覆盖呢? 问题答案: 在这里,您可以找到如何为Glassfish设置JDK的路径:http : //w

  • 我已经安装了GlassFish 2.1.1。我安装了1.5和1.6 JDK。即使我的JAVA_HOME变量被设置为1.5版本(并且“JAVA-version”和“javac-version“都显示1.5),每当我启动我的glassfish域时,它总是在日志顶部声明它使用的是版本1.6。我如何覆盖它?

  • 如何使用SAML协议中的RelayState指定IdP启动的SSO中SP的登录页? 我在IdP和SP之间设置了一个IdP发起的SSO流程。它可以工作,但是它位于root_path。我需要这个登陆RelayState URL。 我正在使用device。在我的控制器下面找到: