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

相關內容