0

SAML 标准定义的ForceAuthn属性<AuthnRequest>如下:

一个布尔值。如果为“真”,身份提供者必​​须直接对演示者进行身份验证,而不是依赖于先前的安全上下文。如果未提供值,则默认值为“false”。但是,如果 ForceAuthn 和 IsPassive 都为“真”,则身份提供者不得重新验证演示者,除非可以满足 IsPassive 的约束。

我不明白是否ForceAuthn应该只影响发出请求的服务提供商,或者它是否应该像单次注销一样需要全局重新身份验证。ForceAuthnSSO的正确解释方法是什么?

4

2 回答 2

1

ForceAuthn 应该只影响发出请求的服务提供商

这就是我理解 ForceAuthn 参数的方式,或者更具体地说,它只影响特定的 AuthnRequest。您可以有以下情况:

  1. 服务提供者 1 发送一个 ForceAuthn = false 的 AuthnRequest。您需要登录。已建立登录会话。
  2. 10 分钟后,您访问了一个需要高安全性的功能。为确保是您本人(而不是在您离开时使用您的机器的其他人),SP 将您发送到具有 ForceAuthn = true 的身份提供程序以强制您再次登录。
  3. 然后访问 SP2。这个发送一个带有 ForceAuthn = false 的 AuthnRequest。由于 SSO,您会自动登录。
  4. 最后,您访问 SP3。由于其安全策略,此应用程序要求用户始终登录,因此它发送一个 ForceAuthn = true 的 AuthnRequest。
于 2022-02-16T06:07:03.017 回答
1

根据引用的部分,我倾向于按其编写的方式对其进行解释。它没有说明强制注销的任何内容。相反,它似乎表明它是出于包含 ForceAuthn 属性的 AuthnRequest 的目的。

我认为一个服务提供者的 AuthnRequest 不应该使另一个服务提供者的会话无效。LogoutRequest 用于此目的。

于 2022-02-15T03:50:14.297 回答