Wie akzeptiere ich mehrere Authentifizierungsoptionen in Apache?

7

Ich möchte einen Weg in mein Virtual schützen , sondern ermöglichen den Benutzern eine Vielzahl von Authentifizierungsoptionen (zB mod-auth-cas, mod-auth-openidund mod-auth-digest.) Wie kann ich die virtuelle Host - Definition eingerichtet, um mehrere zu erlauben auth-types für den gleichen Ort?

James A. Rosen
quelle
Welche Version von Apache httpd?
Outis
Sagen wir Apache 2.2
James A. Rosen

Antworten:

5

Das Problem bei mehreren Authentifizierungstypen besteht darin, dass sie tendenziell nicht miteinander vereinbare Protokolle haben. Sie können die in der Shibboleth-Dokumentation gezeigte Technik ausprobieren , bei der Sie alles in ein Unterverzeichnis stellen, für jeden zu unterstützenden Authentifizierungstyp einen Symlink zu diesem Verzeichnis erstellen und dann jeden Symlink-Speicherort für einen anderen Authentifizierungstyp konfigurieren.

<Location /basic>
    AuthType Basic
    AuthUserFile /path/to/.htpasswd
    require valid-user
</Location>
<Location /cas>
    AuthType CAS
    require valid-user
</Location>
<Location /openid>
    AuthOpenIDEnabled On
    require valid-user
</Location>
outis
quelle
4

Ich hatte die fast gleiche Situation, gelöst wie folgt:

auf Serverkonfigurationsebene in der apache2.conf (unter der Annahme von Debian-basierten Distributionen)

<AuthnProviderAlias method1 auth1_name  >
# config options
# ...
</AuthnProviderAlias>

<AuthnProviderAlias method2 auth2_name  >
# config options
# ...
</AuthnProviderAlias>

in der Virtual Host-spezifischen conf-Datei:

<VirtualHost *>
# config options
# ...

<Location /your_location>
# config options
AuthBasicProvider auth1_name auth2_name
# other needed config options
# ...
</Location>
</VirtualHost>

Auf diese Weise können Sie verschiedene Autorisierungs- / Authentifizierungsmethoden mit unterschiedlichen Namen in derselben Location-Direktive für verschiedene VirtualHosts verwenden

Weitere Details zu meiner Lösung in einem kurzen Blog-Beitrag: Link-Text

HTH, ciao :) Gianluca

Gianluca Riccardi
quelle
Dies ist eine wirklich großartige Technik. Es löst jedoch nicht die Frage des Posters, verschiedene AuthTypes zu verwenden
Kamil Kisiel
Vielen Dank, Kamil :) Ich habe die späteren OP-Kommentare nicht gelesen. Im ersten Beitrag wird "Speicherort" erwähnt. Aus Apache-Dokumenten habe ich gelesen, dass der AuthType-Kontext "Verzeichnis" ist. Entschuldigung für das OffTopic.
Gianluca Riccardi
2

Haben Sie " Satisfy Any " ausprobiert ?

jwa
quelle
Kann ich mehrere AuthTypes im selben Standortblock haben? wie in "AuthType CAS; AuthType Basic; AuthType OpenID; Satisfy Any"?
James A. Rosen
1
Nur der letzte AuthType wird Einfluss haben.
Outis