Sie können Ihre Webanwendung in Liberty mithilfe der SSL-Clientauthentifizierung konfigurieren.
Informationen zu dieser Task
Clientzertifikatsauthentifizierung tritt auf, wenn die Serverseite
anfordert, dass die Clientseite ein Zertifikat sendet. Ein WebSphere® -Server kann für die Clientzertifikatsauthentifizierung in der SSL-Konfiguration konfiguriert werden. Dazu fügen Sie das Feature transportSecurity-1.0 Liberty zusammen mit Code, der dem Server die Keystore-Informationen für die Authentifizierung mitteilt, zur Datei server.xml hinzu.
Ausführliche Informationen dazu, welche Aspekte von SSL unterstützt werden, finden Sie unter Liberty-Features.
Vorgehensweise
- Stellen Sie sicher, dass der Implementierungsdeskriptor für Ihre Webanwendung
Clientzertifikatsauthentifizierung als zu verwendende Authentifizierungsmethode
angibt.
Überprüfen Sie, ob der Implementierungsdeskriptor die folgenden Elemente
enthält:
<auth-method>CLIENT-CERT</auth-method>
Hinweis: Sie können ein Tool wie Rational® Application Developer verwenden, um den Implementierungsdeskriptor zu erstellen.
- Optional: Generieren Sie ein SSL-Zertifikat über die Befehlszeile. Weitere Informationen finden Sie unter BefehlsecurityUtility.
- Konfigurieren Sie Ihren Server für die Aktivierung der SSL-Clientauthentifizierung, indem Sie die folgenden Zeilen zur Datei server.xml hinzufügen:
<featureManager>
<feature>transportSecurity-1.0</feature>
<featureManager>
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore" clientAuthenticationSupported="true" />
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password="defaultPWD" />
<keyStore id="defaultTrustStore" location="trust.jks" type="JKS" password="defaultPWD" />
- Wenn Sie
clientAuthentication="true" angeben, fordert der Server an,
dass ein Client ein Zertifikat sendet. Falls der Client kein Zertifikat hat oder falls der Server das Zertifikat nicht anerkennt,
ist der Handshake jedoch nicht erfolgreich.
- Wenn Sie
clientAuthenticationSupported="true" angeben, fordert der Server an,
dass ein Client ein Zertifikat sendet. Falls der Client kein Zertifikat hat oder falls der Server das Zertifikat nicht anerkennt,
kann der Handshake trotzdem erfolgreich sein.
- Wenn Sie weder
clientAuthentication noch
clientAuthenticationSupported angeben, oder wenn Sie
clientAuthentication="false" oder clientAuthenticationSupported="false" angeben,
fordert der Server während des Handshake kein Zertifikat vom Client an.
- Fügen Sie Ihrem Browser ein Clientzertifikat hinzu. Informationen zum Hinzufügen von Clientzertifikaten zu Ihrem Browser entnehmen Sie der Dokumentation zu Ihrem Browser.
- Stellen Sie sicher, dass der Server die verwendeten Clientzertifikate anerkennt.
- Stellen Sie sicher, dass die für die Clientauthentifizierung verwendeten Clientzertifikate einer Benutzeridentität in Ihrer Registry
zugeordnet sind.
- Bei der Basisregistry ist die Benutzeridentität der allgemeine Name (CN, Common Name) aus dem definierten Namen (DN, Distinguished Name) des Zertifikats.
- Bei der LDAP-Registry (Lightweight Directory Access Protocol) muss der DN aus dem Clientzertifikat in der LDAP-Registry enthalten sein.
- Fügen Sie die folgende Zeile zur Datei server.xml hinzu, um nur die Basisauthentifizierung, die Benutzer-ID und das Kennwort zu verwenden, wenn die Clientzertifikatsauthentifizierung nicht erfolgreich ist.
<webAppSecurity allowFailOverToBasicAuth="true" />
Anmerkung: Wenn Sie allowFailOverToBasicAuth="false" angeben oder allowFailOvertoBasicAuthnicht angeben und die Clientzertifikatsauthentifizierung nicht erfolgreich ist, generiert die Anforderung eine403 Authentication errorund der Client wird nicht zur Basisauthentifizierung aufgefordert.