Hilfe zum IBM HTTP Server: Client-Authentifizierung

Client-Authentifizierung

Der Server unterstützt drei Ebenen der Client-Authentifizierung und zwei Arten der Zugriffssteuerung, die auf den Informationen im Client-Zertifikat basieren.

Ebenen der Client-Authentifizierung

Die Authentifizierungsebene wird mit der Anweisung SSLCLientAuth festgelegt:

Bei Auswahl von "required"...

Wenn Sie die Ebene required (erforderlich) der Client-Authentifizierung auswählen, fordert der Sicherheits-Server mit der Anforderung https ein Zertifikat von allen Clients an. Der Server prüft die Clients, indem er in der lokalen Schlüsseldatenbank nach Trusted-Root-Zertifikaten von CAs sucht. Ein Trusted-Root-Zertifikat einer CA ist ein Zertifikat, das von einer auf dem Server als Trusted-CA definierten Zertifizierungsstelle (CA, Certificate Authority) unterzeichnet wurde.

Der Server stellt eine Sicherheitsverbindung her, wenn der Client über ein gültiges Zertifikat verfügt. Der Server weist die Anforderung zurück, wenn der Client über ein abgelaufenes Zertifikat verfügt oder wenn das Zertifikat von einer CA unterzeichnet wurde, die nicht als Trusted-CA auf dem Server definiert ist.

Beachten Sie bitte, dass der Datenaustausch im Netz durch die SSL-Client-Authentifizierung zunimmt.

Bei Auswahl von "optional"...

Wenn Sie die Ebene optional (wahlfrei) auswählen, fordert der Server ein Client-Zertifikat an. Wenn der Client kein Zertifikat bereitstellt, wird trotzdem eine Sicherheitsverbindung hergestellt. Der Server weist die Anforderung zurück, wenn der Client ein abgelaufenes Zertifikat bereitstellt oder wenn das Zertifikat von einer CA unterzeichnet wurde, die nicht als Trusted-CA auf dem Server definiert ist.

Beachten Sie bitte, dass der Datenaustausch im Netz durch die SSL-Client-Authentifizierung zunimmt.

Bei Auswahl von "none"...

Wenn Sie die Ebene none (keine) auswählen, fordert der Sicherheits-Server keine Zertifikate von Clients an.

Arten der Zugriffssteuerung, die auf den Informationen im Client-Zertifikat basieren

Die Art der Zugriffssteuerung wird mit der Anweisung SSLFakeBasicAuth oder der Anweisung SSLClientAuthRequire festgelegt.

Anmerkung: SSLClientAuthRequire ist die bevorzugte Art der Client-Authentifizierung.

Anweisung SSLFakeBasicAuth

Die Verwendung der Anweisung "SSLFakeBasicAuth" wird nicht empfohlen. Kennwortdateien, die für den Apache-SSL-Code (oder "mod_ssl" und Apache) generiert wurden, können für den IBM HTTP Server nicht verwendet werden, da das Format des registrierten Namens (DN, Distinguished Name) anders ist.

Die Zugriffssteuerungsart "SSLFakeBasicAuth" ist eine sehr vereinfachte Methode der Client-Authentifizierung. Wenn Sie "SSLFakeBasicAuth" angeben, werden der registrierte Name des Client-Zertifikats und das Kennwort (das "password" lautet) nach Base64 verschlüsselt und in den Berechtigungskennsatz eingefügt. Das Modul "mod_ibm_ssl" muss als erstes Modul in der Modulliste aufgeführt sein, damit die nachfolgenden Authentifizierungsmodule die imitierte Benutzer-ID und das imitierte Kennwort für die Basisauthentifizierung verwenden können. Beachten Sie bitte, dass die Unterstützung für die Basisauthentifizierung auf einem angegebenen virtuellen Host nicht funktioniert, weil die von einem Benutzer angegebenen Werte für die Benutzer-ID und das Kennwort mit dem registrierten Namen und dem Kennwort (das "password" lautet) des Clients überschrieben werden.

Erstellen Sie zum Anzeigen des registrierten Namens aus einem Client-Zertifikat ein CGI-Programm, um die Umgebungsvariable "SSL_CLIENT_DN" auszugeben.

Anweisung SSLClientAuthRequire

Mit der erweiterten Unterstützung für "SSLClientAuthRequire" kann der Web-Master logische Ausdrücke mit x509-Attributen definieren. Diese logischen Ausdrücke werden dann mit den Informationen im Client-Zertifikat verglichen. Daraufhin wird der Zugriff auf ein Objekt entweder gewährt oder abgelehnt. Bevor diese Verarbeitungsschritte jedoch durchgeführt werden können, wertet GSK zunächst das Client-Zertifikat aus und prüft, ob es von einer Trusted-CA unterzeichnet wurde.

Mit der Anweisung "SSLClientAuthRequire" kann ein Web-Master logische Ausdrücke mit Attributprüfungen erstellen, die durch die Operatoren AND, OR und NOT verbunden sind. Runde Klammern können ebenfalls verwendet werden. Beispiel:

SSLClientAuthRequire (CommonName = "Ignatz Klemmerle" OR CommonName = "Egon Schäufele") AND Org = IBM
bewirkt, dass das Objekt nur dann bereitgestellt wird, wenn das Client-Zertifikat entweder den allgemeinen Namen "Ignatz Klemmerle" oder den allgemeinen Namen "Egon Schäufele" und die Organisation "IBM" enthält.

Für die Attributprüfungen sind lediglich die Vergleichsoperationen 'gleich' und 'ungleich' (= und !=) gültig. Attributprüfungen können mit den Operatoren AND, OR oder NOT (sowie &&, || und !) verbunden werden. Wenn mehrere Anweisungen SSLClientAuthRequire für eine Ressource angegeben werden, hat dies denselben Effekt auf die Ressource wie die Verbindung der Werte durch den Boolschen Operator AND.

Zum Gruppieren von Vergleichsoperationen können runde Klammern verwendet werden. Wenn der Wert des Attributs ein nicht alphanumerisches Zeichen enthält, muss der Wert in Anführungszeichen gesetzt werden.

Die gültigen Attribute sind im folgenden aufgelistet:

     IssuerStateOrProvince
     IssuerCommonName
     IssuerOrgUnit
     IssuerCountry
     IssuerLocality
     IssuerOrg
     IssuerEmail
     StateOrProvince
     CommonName
     OrgUnit
     Country
     Locality
     Org
     Email

Die folgenden Kurznamen sind ebenfalls gültig:

     IST, ICN, IOU, IC, IL, IO, IE, ST, CN, OU, C, L, O, E 

Zugehörige Informationen