Spring Security SAML2 Service provider - RelyingPartyRegistration.entityId() vs RelyingPartyRegistra



关于Spring Security SAML2的小问题。

为了缩小范围,问题是关于:

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-saml2-service-provider</artifactId>
<version>5.5.0</version>
</dependency>

我来自一个旧版本,其中API被弃用。

新版RelyingPartyRegistration似乎有两个实体ID,这让人有点困惑,请问哪一个是哪一个?

return RelyingPartyRegistration.withRegistrationId(registrationId)
.entityId(entityId)
.assertingPartyDetails(details -> details.entityId(entityId)).build();

查看这段代码,entityId出现了两次。

请问有什么不同?

谢谢

更清楚一点:

  1. 提供给RelyingPartyRegistration构建器的entityId,带有registrationId(registrationId(。entityId(entityId(是服务提供商实体ID,它将由作为受众的身份提供商(IdP(写入SAML断言中。需要在IdP上配置此值。记住,在这一点上,您正在配置";依赖方";,即SP

  2. assertingPartyDetails中的entityId(表示IdP(是IdP的实体ID。SP在断言中对此进行检查,以确保断言来自预期的IdP。这是通过元数据提供给SP的(如果您获得元数据用于配置(或手动复制到SP。

小心前面的答案:IdP的entityId通常不是IdP的有效URL,它只是IdP提供的唯一标识值,通常以URI或URL的形式存在。

RelyingPartyRegistration.withRegistrationId(registrationId) .entityId(entityId)

表示在身份提供程序上注册的实体id。它是身份提供者知道你的应用程序的标识符。

.assertingPartyDetails(details -> details.entityId(entityId))是实体提供商网站的url。

最新更新