Unterstützung des Trust Association Interceptor für die Subjekterstellung

Der Trust Association Interceptor (TAI) "com.ibm.wsspi.security.tai.TrustAssociationInterceptor" unterstützt mehrere Features, die sich von der bestehenden Schnittstelle "com.ibm.websphere.security.TrustAssociationInterceptor" unterscheiden.

Die TAI-Schnittstelle unterstützt einen mehrphasigen vereinbarten Authentifizierungsprozess. Beispielsweise erfordern einige Systeme ein Challenge/Response-Protokoll für den Client. Diese Schnittstelle stellt die folgenden beiden Schlüsselmethoden bereit:
Name der Schlüsselmethode
public boolean isTargetInterceptor (HttpServletRequest req)

Mit der Methode isTargetInterceptor wird ermittelt, ob die Anforderung von dem mit dem Interceptor verbundenen Proxy-Server stammt. Der Implementierungscode muss das eingehende Anforderungsobjekt analysieren und feststellen, ob der Proxy-Server, von dem die Anforderung weitergeleitet wurde, für diesen Interceptor gültig ist. Das Ergebnis dieser Methode bestimmt, ob der Interceptor die Anforderung verarbeitet.

Ergebnis der Methode

Mit dem Wert true wird WebSphere Application Server mitgeteilt, dass der TAI die Anforderung abwickeln soll.

Mit dem Wert false wird WebSphere Application Server mitgeteilt, dass der TAI ignoriert werden soll.

Name der Schlüsselmethode
public TAIResult negotiateValidateandEstablishTrust (HttpServletRequest req, HttpServletResponse res)

Die Methode negotiateValidateandEstablishTrust bestimmt, ob der Proxy-Server, von dem die Anforderung stammt, vertrauenswürdig ist. Der Implementierungscode muss den Proxy-Server authentifizieren. Das Authentifizierungsverfahren ist abhängig vom Proxy-Server. In der Produktimplementierung des WebSEAL-Servers ruft diese Methode beispielsweise die grundlegenden Authentifizierungsinformationen aus dem HTTP-Header ab und wertet diese Informationen anhand der von WebSphere Application Server verwendeten Benutzerregistry aus. Ist der Berechtigungsnachweis ungültig, löst der Code eine Ausnahme des Typs WebTrustAssociationException aus. Diese gibt an, dass der Proxy-Server nicht vertrauenswürdig ist und die Anforderung abgelehnt werden muss. Falls die Berechtigungsnachweise gültig sind, gibt der Code ein Ergebnis des Typs TAIResult zurück, das den Status der Anforderungsverarbeitung und die für die Berechtigung der Webressource zu verwendende Client-ID (Subject und Principal-Name) enthält.

Ergebnis der Methode
Gibt ein Ergebnis des Typs TAIResult zurück, das den Status der Anforderungsverarbeitung anzeigt. Sie können das Anforderungsobjekt abfragen und das Antwortobjekt ändern.
Die Klasse TAIResult verfügt über drei statische Methoden zum Erstellen eines Ergebnisses des Typs TAIResult. Die TAIResult-create-Methoden verwenden als ersten Parameter den Typ int. WebSphere Application Server erwartet, dass das Ergebnis ein gültiger Rückkehrcode der HTTP-Anforderung ist. Das Ergebnis wird auf folgende Art und Weise interpretiert:
  • Wird der Wert HttpServletResponse.SC_OK zurückgegeben, wird WebSphere Application Server mit dieser Antwort mitgeteilt, dass der TAI die Vereinbarung abgeschlossen hat. Die Antwort gibt auch an, dass WebSphere Application Server die Informationen im TAIResult-Ergebnis zum Erstellen einer Benutzeridentität verwenden soll.
  • Mit anderen Werten wird WebSphere Application Server mitgeteilt, die TAI-Ausgabe zurückzugeben, die in die Antwort des Typs HttpServletResponse an den Web-Client eingefügt wird. Normalerweise stellt der Web-Client zusätzliche Informationen bereit und führt anschließend erneut einen TAI-Aufruf aus.
Tabelle 1. TAIResults-Definitionen. Die erstellten TAIResult-Ergebnisse haben folgende Bedeutungen:
TAIResult Erläuterung
public static TAIResult create(int status); Zeigt WebSphere Application Server einen Status an. Der Status kann nicht SC_OK sein, weil die Informationen zur Identität bereitgestellt werden.
public static TAIResult create(int status, String principal); Zeigt WebSphere Application Server einen Status an und stellt die Benutzer-ID oder die eindeutige ID für diesen Benutzer bereit. WebSphere Application Server erstellt durch Abfragen der Benutzerregistry Berechtigungsnachweise.
public static TAIResult create(int status, String principal, Subject subject); Zeigt WebSphere Application Server einen Status an, die Benutzer-ID oder die eindeutige ID für den Benutzer sowie ein angepasstes Subjekt. Enthält das Subjekt eine Hash-Tabelle, wird der Principal ignoriert. Der Inhalt des Subjekts (Subject) wird Teil des resultierenden Benutzersubjekts.
Alle folgenden Beispiele gelten innerhalb der Methode negotiateValidateandEstablishTrust eines TAI.
Das folgende Codebeispiel zeigt, dass eine zusätzliche Vereinbarung erforderlich ist:
// Das Objekt HttpServletResponse ändern.
	//  Der Antwortcode ist nur auf dem Client aussagekräftig.
	return TAIResult.create(HttpServletResponse.SC_CONTINUE);
Das folgende Codebeispiel zeigt, dass TAI die Benutzeridentität ermittelt hat. WebSphere Application Server empfängt lediglich die Benutzer-ID und fragt anschließend die Benutzerregistry nach weiteren Informationen ab:
// Das Objekt HttpServletResponse ändern.
	return TAIResult.create(HttpServletResponse.SC_OK, userid);
Das folgende Codebeispiel zeigt, dass TAI die Benutzeridentität ermittelt hat. WebSphere Application Server empfängt die vollständigen Benutzerinformationen, die in der Hash-Tabelle enthalten sind. Weitere Informationen zur Hash-Tabelle finden Sie im Artikel Identitätszuordnung für eingehende Anforderungen konfigurieren. In diesem Codebeispiel wird die Hash-Tabelle in den Teil des Subjekts (Subject) gestellt, der die öffentlich zugänglichen Identitätsnachweise enthält:
// Subjekt erstellen und Hash-Tabelle darin aufnehmen.
		Subject subject = new Subject;
		subject.getPublicCredentials().add(hashtable);
	//  Der Antwortcode ist nur auf dem Client aussagekräftig.
	return TAIResult.create(HttpServletResponse.SC_OK, "ignored", subject);
Das folgende Codebeispiel zeigt, dass die Authentifizierung fehlgeschlagen ist. Die Authentifizierungsanforderung von WebSphere Application Server ist fehlgeschlagen:
//Fehlernachricht protokollieren.
// ....
	throw new WebTrustAssociationFailedException("TAI failed for this reason");

Die Schnittstelle "TrustAssociationInterceptor" enthält die folgenden zusätzlichen Methoden. Diese Methoden werden für die Initialisierung, die Beendigung und die Identifizierung des TAI in WebSphere Application Server verwendet. Weitere Informationen finden Sie in der Java™-Dokumentation.

Methodenname
public int initialize(Properties props)

Ergebnis der Methode
Diese Methode wird während der TAI-Initialisierung und nur dann aufgerufen, wenn angepasste Eigenschaften für den Interceptor konfiguriert sind.
Methodenname
public String getVersion()
Ergebnis der Methode
Diese Methode gibt die Version des TAI zurück.
Methodenname
public String getType()
Ergebnis der Methode
Diese Methode gibt den Typ des TAI zurück.
Methodenname
public void cleanup()
Ergebnis der Methode
Diese Methode wird beim Stoppen des Prozesses von WebSphere Application Server aufgerufen. Wird der Prozess von WebSphere Application Server gestoppt, hat der TAI die Möglichkeit, die erforderlichen Bereinigungsaktionen auszuführen. Diese Methode ist nicht erforderlich, wenn keine Bereinigung benötigt wird.

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=rsec_taisubcreate
Dateiname:rsec_taisubcreate.html