当前位置: 首页 > 知识库问答 >
问题:

将SAML属性ForceAuthn与Google IdP一起使用

颜昕
2023-03-14

实际上,我们使用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>

共有1个答案

欧阳哲
2023-03-14

谷歌支持部门的官方回答:“谷歌目前没有为SAML授权服务实施单次注销/帐户重新验证。您也可以使用“会话长度”。

 类似资料:
  • 属性文件如何与Apache Camel一起使用,以引用可配置的属性。例如,如果有从文件夹读取文件的路由,那么如何在属性文件中配置该文件夹位置。我正在使用JavaDSL。

  • 我试图在Material UI的TextField上使用React的“ref”属性访问输入数据。通过“inputRef”或“inputProps”似乎没有一种简单的方法可以做到这一点。 下面的示例显示了第26行的inputProps的使用。将TextField的名称指定给“ref”属性似乎不会生成有效的对象。 对于“inputRef”,根据Material ui文档,它强制使用函数,尝试将字段数据

  • 我有一个重命名了布尔变量的FileBean。它有以下代码。 我已经使用请求对象将其对象传递给jsp(考虑fileDetail是一个请求属性名)。我的jsp包含以下代码。 使用这个,我在jsp上获得了以下运行时异常。 请向我建议解决办法。 提前谢谢。

  • 问题内容: 我想分享我使用素数,f:viewParam和p:commandButton的经验,并提出一些问题。请看此页面: 支持bean具有不执行任何操作的“ myMethod()”方法。当您进入页面时,它需要“ id_file”参数并将其放在备用bean的idFile属性中。然后单击按钮,然后调用myMethod。然后再次单击,将得到一个模糊的验证错误,并且永远不会调用myMethod: 首先,

  • 我使用的是一个存储字符串的ThreadLocal对象。我将String值设置为过滤器中的ThreadLocal对象,该对象将截取符合特定条件的所有请求。另外,我将ThreadLocal的字符串值设置为HttpSession作为属性。 那么,有什么方法可以改变实现,使多个会话不使用同一个线程呢? 编辑:添加示例代码

  • 问题内容: 当我按下commandButton时,将删除ID = 100并刷新页面,这是 在 它甚至未运行该方法 之前 ,正确的,所以这意味着当我按下按钮时,我没有ID。 您如何解决呢? 通过拥有这个Managed Bean 并添加 到我的facelet页面。现在,我的faces-config.xml中也包含正确的信息,并且当我使用?ID = 100访问页面时,我确实获得了正确的商品。 问题答案: