Web-Service-Anwendungen entwickeln, die Token aus dem JAAS-Subjekt in einer Serveranwendung abrufen

Bei einer Serveranwendung tritt die Anwendung als Anforderungskonsument auf, und der Antwortgenerator wird im Java-EE-Container implementiert und ausgeführt. Die Konsumentenkomponente für Web Services Security speichert die empfangenen Sicherheitstoken im JAAS-Subjekt (Java Authentication and Authorization Service) des aktuellen Thread. Sie können die Sicherheitstoken aus dem JAAS-Subjekt abrufen, das als lokaler Thread im Container verwaltet wird.

Informationen zu diesem Vorgang

Diese Informationen gelten nur für JAX-RPC-Web-Services (Java™ API for XML-based RPC).

Die Sicherheitshandler sind für die Weitergabe von Sicherheitstoken verantwortlich. Diese Sicherheitstoken werden in den SOAP-Sicherheitsheader eingebunden und an nachgeschaltete Server übergeben. Die Sicherheitstoken sind in den Implementierungsklassen für die Schnittstelle "com.ibm.wsspi.wssecurity.auth.token.Token" gekapselt. Sie können die Daten für das Sicherheitstoken von einer Serveranwendung oder einer Clientanwendung anfordern.

Führen Sie die folgenden Schritte aus, um die Daten für ein Sicherheitstoken von einer Serveranwendung anzufordern:

Vorgehensweise

  1. Fordern Sie das JAAS-Subjekt des aktuellen Thread mit der Dienstprogrammklasse WSSubject an. Wenn Sie in der Anzeige "Globale Sicherheit" der Administrationskonsole die Java-2-Sicherheit aktivieren, wird der Zugriff auf das JAAS-Subjekt verweigert, wenn der Anwendungscode nicht die Berechtigung javax.security.auth.AuthPermission("wssecurity.getCallerAsSubject") hat. Das folgende Codebeispiel zeigt, wie Sie das JAAS-Subjekt anfordern:
    javax.security.auth.Subject subj;
    try  {    
    subj = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
    } catch (com.ibm.websphere.security.WSSecurityException e) {
      …
    }
  2. Fordern Sie die privaten Berechtigungsnachweise aus dem Subjekt an. Nähere Informationen hierzu finden Sie in der Beschreibung der API-Klasse com.ibm.websphere.security.auth.WSSubject im Information Center. Zum Anzeigen dieser Informationen im Information Center klicken Sie auf Referenz > Entwickler > API-Dokumentation > Anwendungsprogrammierschnittstellen. Klicken Sie unter "Anwendungsprogrammierschnittstellen" auf com.ibm.websphere.security.auth > WSSubject.
    Achtung: Wenn die Java-2-Sicherheit aktiviert ist, müssen Sie unter Umständen die Klasse AccessController verwenden, um einen Sicherheitsverstoß zu vermeiden, der durch die Bearbeitung der Sicherheitsobjekte im Java-EE-Container verursacht wird.
    Das folgende Codebeispiel zeigt, wie Sie die Klasse AccessController setzen und die privaten Berechtigungsnachweise anfordern:
    Set s = (Set) AccessController.doPrivileged(new PrivilegedAction() {
       public Object run() {
       return subj.getPrivateCredentials();
       }
          });
  3. Suchen Sie die gewünschte Tokenklasse in den privaten Berechtigungsnachweisen. Sie können die Tokenklasse mit der Schnittstelle "java.util.Iterator" suchen. Das folgende Beispiel zeigt, wie Sie ein UsernameToken mit eine bestimmten Token-ID aus dem Sicherheitsheader anfordern. Sie können für den Abruf von Sicherheitstoken auch andere Methodenaufrufe verwenden. Nähere Informationen hierzu finden Sie in den API-Dokumenten für die Schnittstelle "com.ibm.wsspi.wssecurity.auth.token.Token" und angepasste Tokenklassen.
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    Iterator it = s.iterator();
    while (it.hasNext()) {
      Object obj = it.next();
      if (obj != null &&
    obj instanceOf com.ibm.wsspi.wssecurity.auth.token.UsernameToken) {
        unt =(com.ibm.wsspi.wssecurity.auth.token.UsernameToken) obj;
    if (unt.getId().equals(“…”)) break;
    else continue;
      }
    }

Ergebnisse

Sie haben die Sicherheitstoken aus dem JAAS-Subjekt in einer Serveranwendung abgerufen.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



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