Apache „require valid-user“ ist für mehrere Authentifizierungstypen gültig

Apache „require valid-user“ ist für mehrere Authentifizierungstypen gültig

Unser Apache verwendet sowohl mod_shib_24 (SAML-SP) als auch mod_auth_openidc (OIDC-RP), die beide mit einem Shibboleth-IdP verbunden sind (fungiert sowohl als SAML-IDP als auch als OIDC-OP).

Darüber hinaus haben wir zwei geschützte Standorte, einer ist durch SAML geschützt, der andere durch OIDC:

  ShibCompatValidUser On

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


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

Jetzt kommt der verwirrende Teil:

Wenn ich auf etwas anderes als /oidctest/ zugreife, muss ich mich mit SAML anmelden (wie erwartet greift mod_shib_24 ein), aber nach einer erfolgreichen Authentifizierung kann ich auch auf /oidctest/ zugreifen, ohne mich mit OIDC authentifizieren zu müssen.

Dies funktioniert auch umgekehrt. Wenn ich zuerst auf /oidctest/ zugreife (neues privates Fenster), muss ich mich mit OIDC authentifizieren (mod_auth_openidc wird wie erwartet einbezogen) und nach einer erfolgreichen Authentifizierung kann ich auch auf alle anderen Standorte (außer /oidctest/) zugreifen.

Wie geht Apache also mit Valid-User-Direktiven um? Wie wird ein „valid-user“ in Apache definiert?

Ist ein Benutzer, sobald er sich angemeldet hat, für alles gültig, egal welcher Auth-Typ, egal welches Modul, egal welches Protokoll?

Oder ist das ein unerwartetes Verhalten?

Antwort1

Aus dem Shibboleth-Wiki erkenne ich, dass dieShibCompatValidUser EinEinstellungen sind ausdrücklich kompatibel mitGültigen Benutzer erforderlichAussagen.

Vor V2.5.2 und wenn ShibCompatValidUser deaktiviert ist (Standard), entspricht dies der obigen Shib-Session-Regel. Wenn die Option ShibCompatValidUser aktiviert ist, wird diese Regel kompatibel mit der von Apache selbst implementierten Regel implementiert und erfordert, dass für die Anfrage ein REMOTE_USER-Wert ungleich null festgelegt wird. Dadurch wird die Möglichkeit wiederhergestellt, Shibboleth zusammen mit anderen Modulen und Regeln einzusetzen. Eine zukünftige Version des SP kann die „spezielle“ Definition entfernen und solche Regeln sollten geändert werden, um auf Shib-Session zu basieren.

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

Zur Unterscheidung der Module können Sie auch Tests verwenden mitUmgebung erforderlichum nach Umgebungsvariablen zu suchen, die vom Modul gesetzt werden. Shibboleth setzt standardmäßig eineShib-Sitzungs-IDZum Beispiel.

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

verwandte Informationen