【问题标题】:Spring Security SAML2 no entityID is foundSpring Security SAML2 未找到 entityID
【发布时间】:2018-12-06 17:33:13
【问题描述】:

我正在努力让我的 Spring Boot (v. 2.0.1) 应用程序与 SSO 提供程序一起工作。当我尝试点击登录页面时,出现以下错误:

未配置托管服务提供商且未选择别名

当我尝试点击发现页面时,我收到以下错误:

必须指定实体 ID 参数

两者似乎都是因为缺少 entityID。我不清楚丢失的是 SP 还是 IDP entityID。我的应用程序在 bean 中设置 entityId,如下所示:

@Bean
fun metadataGenerator():MetadataGenerator {
    val metadataGenerator = MetadataGenerator()
    metadataGenerator.entityId = "my:custom:entity:id"
    metadataGenerator.extendedMetadata = extendedMetadata()
    metadataGenerator.isIncludeDiscoveryExtension = true
    metadataGenerator.setKeyManager(keyManager())
    return metadataGenerator
}

IDP 的元数据 XML 正在被读取(我可以看到它在启动期间被解析过)并包含一个 entityID。

在此过程中,某些 entityID 丢失并产生了这些错误。我似乎无法追踪这是如何发生的。

【问题讨论】:

    标签: java spring spring-security spring-saml spring-security-saml2


    【解决方案1】:

    缺少的 entityID 必须是 IDP 的。

    您是否正确设置了 CachingMetadataManager?确保将 IDP 添加为 MetadataProvider。并且 IDP 的 ExtendedMetadata 必须将 idpDiscoveryEnabled 设置为 true

    【讨论】:

    • 我现在已将 idpDiscoveryEnabled 切换为 true,并仔细检查了 IDP 元数据提供程序是否已添加到我的 CachingMetadataManager,但无济于事。
    【解决方案2】:

    如果您还没有检查,请前往 IDP 查看 SP 的元数据配置。确保您在 IDP 中使用的 SP 配置为来自 SP 元数据的值,例如:/saml/metadata。应该是一个xml内容。确保两个 Locations、certData 和 SingleLogoutService 正确。这是我的高级同事的解决方法。

    【讨论】:

      猜你喜欢
      • 2016-05-16
      • 2018-01-17
      • 2020-08-24
      • 2016-05-20
      • 1970-01-01
      • 2015-02-12
      • 2020-09-22
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多