【发布时间】:2016-10-24 04:21:44
【问题描述】:
我正在一个配置有多个身份提供者的应用程序中实现 Spring SAML。我的 IdP 元数据配置有多个 ExtendedMetadataDelegate,每个 IdP 都有一个 HTTPMetadataProvider 和别名。该应用通过扩展SAMLContextProvider 来选择使用哪个提供程序,方法与this 类似。
当 IdP 发送授权时,我的应用需要知道它来自哪个 IdP(不同的提供商有不同的安全授权)。我按照docs 的建议执行此操作,并使用自定义SAMLUserDetailsService 和SAMLCredential.getRemoteEntityID() 来确定哪个IdP 提出了请求。
我的问题是,我可以依靠 remoteEntityID 来识别提供者吗?如果一个 IdP 提供商更新其元数据以包含不同的 entityID 甚至“伪造的”与另一个提供商相同的 entityID 怎么办?使用我们定义的 peer 别名不是更好吗?
我是 SAML 的新手,所以我对某些基本概念的理解很可能不正确,我只是想确保我没有使用此配置打开安全漏洞。
【问题讨论】:
标签: spring spring-security spring-saml