何时使用 IdP 重新进行身份验证?

When to re-authenticate with the IdP?

我的应用程序 (SP) 需要使用 IdP(SP 发起的 SSO)通过 SAML 对用户进行身份验证。

一旦我的用户在他第一次访问应用程序时通过身份验证,SP 应何时“重新触发”身份验证 (authnrequest)?我是否应该在后端的每个 REST 调用中重新断言 SAML 令牌以了解它是否仍然有效?

Once my user is authenticated the first time he access the application, when should the SP "retrigger" an authentication (authnrequest) ?

通常,仅当应用程序会话超时时才需要更新身份验证请求。当您第一次收到来自 IDP 的 SAML 响应时,您的应用程序会为用户建立一个会话并在该期间保持有效。当该期限到期并且会话消失时,您应该考虑向 IDP 触发另一个身份验证请求。根据 IDP 会话设置的持续时间,可能会或可能不会再次提示用户输入凭据。

如果您想强制 IDP 要求用户提供凭据而不考虑 IDP 自己的会话,您可以在身份验证请求中发送 forced-authn。 IDP 可能支持也可能不支持此类请求。

Should I re-assert the SAML token at every REST call on the backend to know if it still valid ?

你的问题一般不清楚。什么 REST 调用?什么后端?

一般来说,您应该每次都验证 SAML 断言;这里 every time 表示每次 IDP 向您、应用程序发送断言。一旦您的应用程序在验证该断言后有一个会话,那么您的操作和调用就由您决定了。断言已完成并消失了。

PS SAML 没有令牌。它有响应、断言和声明等。没有标记。它们是有区别的。使用正确的术语有助于人们更好、更准确地做出回应。