Apache“需要有效用户”在多种身份验证类型中有效

Apache“需要有效用户”在多种身份验证类型中有效

我们的 Apache 同时使用 mod_shib_24(SAML-SP)和 mod_auth_openidc(OIDC-RP),它们都连接到 Shibboleth IdP(充当 SAML-IDP 和 OIDC-OP)。

此外,我们还有 2 个受保护位置,一个受 SAML 保护,另一个受 OIDC 保护:

  ShibCompatValidUser On

  <Location "/">
    Require shib-session
    AuthType Shibboleth
    ShibRequestSetting requireSession 1
    ShibUseHeaders On
  </Location>


  <Location "/oidctest">
    Require valid-user
    AuthType openid-connect
  </Location>

现在到了令人困惑的部分:

如果我访问 /oidctest/ 以外的任何内容,我必须使用 SAML 登录(mod_shib_24 参与,正如预期的那样),但在成功验证身份后,我也可以访问 /oidctest/,而无需通过 OIDC 进行验证。

反过来也一样。如果我首先访问 /oidctest/(新的私人窗口),我必须使用 OIDC 进行身份验证(mod_auth_openidc 参与其中,正如预期的那样),身份验证成功后,我还可以访问所有其他位置(/oidctest/ 除外)。

那么 Apache 如何处理有效用户指令?Apache 中如何定义“有效用户”?

一旦用户登录,他是否对所有事情都有效,无论授权类型、模块还是协议?

或者这是一种意外的行为?

答案1

我从 Shibboleth wiki 中了解到ShibCompatValidUser 开启设置明确旨在兼容需要有效用户陣容 註釋 .

在 V2.5.2 之前,当 ShibCompatValidUser 处于 Off(默认)状态时,这相当于上面的 shib-session 规则。启用 ShibCompatValidUser 选项后,此规则与 Apache 自身实现的规则兼容,并且要求为请求设置非空 REMOTE_USER 值。这恢复了与其他模块和规则一起部署 Shibboleth 的能力。SP 的未来版本可能会删除“特殊”定义,并且应将此类规则更改为依赖 shib-session。

https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPhtaccess

为了区分模块,您还可以使用测试需要环境查找模块设置的环境变量。Shibboleth 默认设置Shib 会话 ID例如。

https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAttributeAccess

相关内容