将 SAML 属性 ForceAuthn 与 Google IdP 结合使用

Use the SAML attribute ForceAuthn with Google IdP

实际上,我们使用 Google IdP 作为我们应用程序的 SSO / SAML 身份验证类型。 我们已将其配置为将我们的用户连接到我们的应用程序,并且运行良好。 但最近,我们还想针对应用程序生命周期中可能发生的不同操作向我们的用户请求重新验证。

更详细地讲,当我们向 Google Idp 发送 SAML 请求时,我们在节点“AuthnRequest”中添加属性 ForceAuthn="true" 并且我们还添加一个 AuthnContextClassRef 以明确询问我们想要通过凭据重新进行身份验证。

当我们将此 SAML 请求发送到 Google IdP 时,问题是 IdP 服务器不向最终用户询问凭据并直接重定向到成功响应的应用程序。

这正常吗? Google IdP 是否支持 ForceAuthn="true" 属性? 我没有找到关于此主题的任何文档。

这是已发送到 IdP 的 SAML 请求示例:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"                  
                    Version="2.0" 
                    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
                    AssertionConsumerServiceURL="#url_sp" 
                    ID="#id" 
                    IssueInstant="2021-05-31T15:34:19Z" 
                    Destination="https://accounts.google.com/o/saml2/idp?idpid=#id" 
                    ProviderName="#ip" 
                    IsPassive="false" 
                    ForceAuthn="true">
  <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">#url_sp</saml:Issuer>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    #signature_info
  </Signature>
  <samlp:RequestedAuthnContext Comparison="exact">
    <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
  </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

来自 Google 支持的官方回答:“Google 目前没有为 SAML 授权服务实施单日志 out/account 重新验证。您也可以使用“会话长度"".