1

我正在努力让我的 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 会丢失并产生这些错误。我似乎无法追踪这是如何发生的。

4

2 回答 2

0

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

于 2021-02-04T04:19:56.867 回答
0

缺少的 entityID 必须是 IDP。

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

于 2018-06-28T12:16:29.253 回答