Nachgeschaltete (Downstream-)JAX-RS-Ressourcen sichern
Sie können nachgeschaltete (Downstream-)JAX-RS-Ressourcen sichern, indem Sie die Methode "BasicAuth" für die Authentifizierung konfigurieren und den LTPA-JAX-RS-Sicherheitshandler verwenden, um SSO (Single Sign-on) für die Benutzerauthentifizierung zu nutzen.
Vorbereitende Schritte
- Sie haben Ihren Anwendungsserver in einem Zellenprofil definiert, das in die Deployment Manager-Zelle eingebunden ist.
- Sie haben Ihre JAX-RS-Anwendung im Anwendungsserver installiert.
- Sie haben die Sicherheit für Ihre JAX-RS-Anwendung aktiviert.
- Sie haben Ihre JAX-RS-Anwendungen im Web-Container gesichert, indem Sie die Verwendung der Basisauthentifizierung für die Benutzerauthentifizierung in Ihren nachgeschalteten JAX-RS-Anwendungen konfiguriert haben.
Informationen zu diesem Vorgang
Beim Erstellen von JAX-RS-Ressourcen kann ein neuer LTPA-JAX-RS-Sicherheitshandler für eine nahtlose Authentifizierung in Aufrufen nachgeschalteter Ressourcen verwendet werden.
Wenn nachgeschaltete sichere JAX-RS-Ressourcen aufgerufen werden, muss sich die aufrufende Anwendung bei der Zielressource authentifizieren. Verwendet die Zielressource in einem nachgeschalteten Server die Methode "BasicAuth" für die Sicherheit, kann die aufrufende Anwendung Single Sign-on (SSO) für JAX-RS-Ressourcen verwenden. Bei der Verwendung von SSO wird ein authentifizierter Kontext in Aufrufen an nachgeschaltete Server weitergegeben. Sie können den LTPA-basierten Sicherheitsclienthandler für die Authentifizierung bei nachgeschalteten Ressourcen, die auf Server einer Zellenumgebung verteilt sind, verwenden.
Zur Veranschaulichung dieses Szenarios sei angenommen, dass Sie zwei Server in Ihrer Zelle und JAX-RS-Ressourcen in beiden Servern implementiert haben. Jetzt müssen Sie über eine Ressource in server1 eine andere Ressource aufrufen, die in server2 implementiert ist. Wenn die Ressourcen von server2 mit der Authentifizierungsmethode "BasicAuth" gesichert sind, verwenden Sie den LTPA-JAX-RS-Sicherheitshandler, um SSO zu nutzen und die Benutzerauthentifizierung nahtlos in Aufrufen an nachgeschaltete Server weiterzugeben, ohne Benutzer-IDs und Kennwörter in der Anwendung angeben oder verwalten zu müssen.

Verwenden Sie die folgenden Schritte, um die Benutzerauthentifizierung in einem nachgeschalteten Server mithilfe des JAX-RS-Sicherheitshandlers zur Buildzeit der Anwendung zu konfigurieren.
Vorgehensweise
Ergebnisse
Sie haben sichere JAX-RS-Ressourcen in Ihrer Zellenumgebung so definiert, das beim Aufruf nachgeschalteter Ressourcen SSO verwendet und die Benutzerauthentifizierung nahtlos in Aufrufen nachgeschalteter Ressourcen weitergeben werden kann, ohne Benutzer-IDs und Kennwörter in der Anwendung angeben und verwalten zu müssen.
Beispiel
import org.apache.wink.client.Resource;
import org.apache.wink.client.RestClient;
import org.apache.wink.client.ClientConfig;
import org.apache.wink.client.handlers.LtpaAuthSecurityHandler;
ClientConfig config = new ClientConfig();
LtpaAuthSecurityHandler secHandler = new LtpaAuthSecurityHandler();
// Diesen Sicherheitshandler der Handlerkette hinzufügen.
config.handlers(secHandler);
// Die REST-Clientinstanz erstellen.
RestClient client = new RestClient(config);
// Ressourceninstanz erstellen, mit der Sie interagieren möchten.
// Einen Wert für die Ressourcenadresse angeben.
resource =
client.resource("http://localhost:8080/path/to/resource");
// Die Ressource kann jetzt aufgerufen werden.
ClientBuilder cb = ClientBuilder.newBuilder();
Client c = cb.build();
c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
String res = "";
res = c.target("http://" + serverIP + ":" + serverPort + "/" + moduleName + "/rest/ltpa")
.request()
c.close();
return res;