Tipps zur Fehlerbehebung bei Authentifizierung, Berechtigung und sicherem Transportprokoll von Web-Services

Web-Services werden auf der Basis der Spezifikation Web Services for Java™ Platform, Enterprise Edition (Java EE) entwickelt und implementiert. In diesem Artikel wird beschrieben, wie Sie beim Sichern von Web-Services Fehler bei der Authentifizierung und Berechtigung beheben.

Web-Services werden auf der Basis der Spezifikation Web Services for Java Platform, Enterprise Edition (Java EE) entwickelt und implementiert. In diesem Artikel wird beschrieben, wie Sie beim Sichern von Web-Services Fehler bei der Authentifizierung, der Berechtigung und dem Transportprotokoll beheben.

Ferne WSDL-Datei mit HTTPS-Transportprotokoll angeben

Wenn Ihre JAX-WS-Clientanwendung (Java API for XML-Based Web Services) eine ferne Adresse für die Position der WSDL-Datei angibt, die sichere Kommunikation über HTTPS erfordert, und Sie die SSL-Konfiguration nicht durchführen, wird eine Ausnahmebedingung ausgelöst. Wenn Sie den WSDL-URL mit dem HTTPS-Transportprotokoll angeben, müssen Sie die SSL-Konfiguration durchführen, bevor die Clientinstanz erstellt wird. Definieren Sie zum Konfigurieren von SSL die Systemeigenschaft com.ibm.SSL.ConfigURL als Namen der SSL-Konfiguration.

Das folgende Beispiel zeigt, wie ein Web-Service-Client die Position der fernen WSDL-Datei mit dem HTTPS-Transportprotokoll angibt:
@WebServiceClient(name = "SampleService", targetNamespace = "http://jaxws.sample.websphere.ibm.com/", 
		wsdlLocation = "https://localhost:9443/Sample/SampleServicePort?WSDL")
public class SampleService
    extends Service
{

    private final static URL SAMPLESERVICE_WSDL_LOCATION;

    static {
        URL url = null;
        try  {
            url = new URL("https://localhost:9080/Sample/SampleService?WSDL");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        SAMPLESERVICE_WSDL_LOCATION = url;
    }

    ...
}

Weitere Informationen zur Definition dieser Systemeigenschaft finden Sie im Artikel "SSL-Konfiguration für Clients definieren" in der Dokumentation zur Clientkonfigurationsdatei ssl.client.props.

Authentifizierungsrisiko oder Berechtigungsfehler

Es kann ein Authentifizierungsrisiko oder Berechtigungsfehler auftreten, wenn Threads gewechselt werden. Eine Anwendung kann beispielsweise einen neuen Thread oder eine Raw-Socket-Verbindung zu einem Servlet öffnen. Threadwechsel werden von der Java EE-Spezifikation nicht empfohlen, weil die Informationen zum Sicherheitskontext lokal im Thread gespeichert werden. Bei einem Threadwechsel wird die authentifizierte Identität nicht vom lokalen an den neuen Thread übergeben. Deshalb stuft WebSphere Application Server die Identität als nicht authentifiziert ein. Wenn Sie einen neuen Thread erstellen müssen, muss der Sicherheitskontext an den neuen Thread weitergegeben werden. Dieser Prozess wird von WebSphere Application Server jedoch nicht unterstützt.

Eine Anwendung mit aktivierter Web Services Security kann nicht gestartet werden.

Wenn eine Anwendung, die Web Services Security unterstützt, nicht gestartet werden kann, wird möglicherweise eine Fehlernachricht wie die folgende zurückgegeben:
[6/19/03 11:13:02:976 EDT] 421fdaa2 KeyStoreKeyLo E WSEC5156E: Beim Abrufen des
Schlüssels aus dem KeyStore-Objekt ist eine Ausnahme eingetreten:
java.security.UnrecoverableKeyException: Given final block not properly padded
Dieser Fehler wurde ausgelöst, weil für einen bestimmten Schlüssel im Keystore ein falscher Schlüsselwert oder ein falsches Kennwort angegeben wurde. Die Keystore-Werte werden in den <KeyLocators>-Elementen einer der folgenden Bindungsdateien angegeben: ws-security.xml, ibm-webservices-bnd.xmi oder ibm-webservicesclient-bnd.xmi. Vergewissern Sie sich, dass die keypass-Werte für die in <KeyLocators>-Elementen angegebenen Schlüssel richtig sind.
Anmerkung: Richtliniensätze können nur für JAX-WS-Anwendungen verwendet werden. Für JAX-RPC-Anwendungen können keine Richtliniensätze verwendet werden.

Zwischen Anwendungen der WebSphere Application Server Version 6.0.x und der Version 5.0.2 mit aktivierter Web Services Security ist keine Interoperabilität möglich.

Zwischen Anwendungen der WebSphere Application Server Version 6.0..x und der Version 5.0.2 mit aktivierter Web Services Security ist keine Interoperabilität möglich. Wenn die Anwendungen versuchen, zusammenzuarbeiten, wird der Fehler "digest mismatch" angezeigt. Im Kanonisierungsalgorithmus for die digitale XML-Signatur, die in Version 5.1 festgelegt ist, ist ein Fehler aufgetreten. Damit Web Services Security zwischen WebSphere Application Server Version 6 und Version 5.0.2 funktioniert, müssen Sie den Anwendungsserver der Version 5.0.2 aktualisieren. Dazu müssen Sie die Unterstützungswebsite von WebSphere Application Server aufrufen und das aktuellste Fixpack für WebSphere Application Server Version 5.0.2 herunterladen.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_trbauth
Dateiname:rwbs_trbauth.html