Versionshinweise zu Sun Java System Message Queue 4.1

Einrichten der JAAS-konformen Authentifizierung

Das Einrichten der JAAS-konformen Authentifizierung umfasst das Festlegen von Broker- und Systemeigenschaften zur Auswahl dieses Authentifizierungstyps, zum Angeben des Speicherorts der Konfigurationsdatei sowie zum Angeben der Einträge für die Anmeldemodule, die verwendet werden sollen.

In diesem Abschnitt wird die Beziehung zwischen dem JAAS-Client, den Anmeldemodulen und der JAAS-Konfigurationsdatei erläutert. Ferner werden die erforderlichen Schritte zum Einrichten der JAAS-konformen Authentifizierung beschrieben. Die folgende Abbildung zeigt die Beziehung zwischen der Konfigurationsdatei, dem Anmeldemodul und dem Broker.

Abbildung 1–3 Einrichten der JAAS-Unterstützung

Diese Abbildung zeigt die Beziehung zwischen den JAAS-bezogenen Dateien. Der nachfolgende Text erläutert den Inhalt.

Wie in der Abbildung gezeigt, enthält die JAAS-Konfigurationsdatei MyJAASCFile.config Verweise auf mehrere Anmeldemodule, die unter einem Einstiegspunkt gruppiert sind. Der Broker ermittelt die Konfigurationsdatei anhand der Java-Systemeigenschaft java.security.auth.login.config oder der Java-Sicherheitseigenschaftendatei. Die zu verwendenden Anmeldemodule werden anhand der Broker-Eigenschaft imq.user_repository.jaas.name ermittelt, welche den gewünschten Eintrag in der Konfigurationsdatei angibt. Die Klassen für diese Module befinden sich im Verzeichnis lib/ext.

Zum Einrichten der JAAS-Unterstützung für Message Queue müssen die folgenden Schritte ausgeführt werden. (In einer Entwicklungsumgebung kann der Entwickler all diese Schritte ausführen. In einer Produktionsumgebung würde der Administrator einige dieser Schritte übernehmen.)

  1. Erstellen Sie mindestens eine Anmeldemodulklasse, welche den Authentifizierungsdienst implementiert. Im Folgenden sind die JAAS-Callback-Typen aufgelistet, die der Broker unterstützt.

    javax.security.auth.callback.LanguageCallback

    Der Broker verwendet diesen Callback-Typ, um das Gebietsschema an den Authentifizierungsdienst zu übergeben, in dem der Broker ausgeführt wird. Dieser Wert kann für die Lokalisierung verwendet werden.

    javax.security.auth.callback.NameCallback

    Der Broker verwendet diesen Callback-Typ, um den Benutzernamen an den Authentifizierungsdienst zu übergeben, den der Message Queue-Client beim Anfordern der Verbindung angegeben hat.

    javax.security.auth.callback.TextInputCallback

    Der Broker verwendet diesen Callback-Typ, um den Wert von imq.authentication.type für den Authentifizierungsdienst anzugeben, wenn TextInputCallback.getPrompt() imq.authentication.type lautet. Gegenwärtig ist für dieses Feld ausschließlich der Wert basic zulässig. Mit diesem Wert wird eine Base-64-Passwortverschlüsselung festgelegt.

    javax.security.auth.callback.PasswordCallback

    Der Broker verwendet diesen Callback-Typ, um das Passwort, das der Message Queue-Client beim Anfordern der Verbindung angegeben hat, an den Authentifizierungsdienst zu übergeben.

    javax.security.auth.callback.TextOutputCallback

    Der Broker verwendet diesen Callback-Typ, um Protokollierungsdienste für den Authentifizierungsdienst bereitzustellen, indem die Textausgabe in der Protokolldatei des Brokers protokolliert wird. Die Callback-Meldungstypen ERROR, INFORMATION, WARNING werden den Broker-Protokollebenen ERROR, INFO, und WARNING zugeordnet.

  2. Erstellen Sie eine JAAS-Konfigurationsdatei mit Einträgen, welche auf die Anmeldemodulklassen verweisen und den Speicherort dieser Datei für den Message Queue-Administrator angeben. (Die Datei kann sich in einem Remote-Verzeichnis befinden, und der Speicherort kann als URL angegeben werden.)

  3. Beachten Sie den Namen des Eintrags (der die Implementierungsklassen für die Anmeldung referenziert) in der JAAS-Konfigurationsdatei.

  4. Archivieren Sie die Klassen zur Implementierung der Anmeldemodule in einer .jar-Datei, und platzieren Sie die .jar-Datei im Message Queue-Verzeichnis lib/ext.

  5. Konfigurieren Sie die Broker-Eigenschaften, die sich auf die JAAS-Unterstützung beziehen. Diese Eigenschaften sind in Tabelle 1–2 beschrieben.

  6. Legen Sie die folgende Systemeigenschaft fest, um den Speicherort der JAAS-Konfigurationsdatei anzugeben.

    java.security.auth.login.config= Speicherort der JAAS-Konfigurationsdatei

    Sie können die Konfigurationsdatei beispielsweise beim Starten des Brokers angeben.

    imqbrokerd -Djava.security.auth.login.config=Speicherort der JAAS-Konfigurationsdatei

    Der Speicherort der JAAS-Konfigurationsdatei kann auch über andere Methoden angegeben werden. Weitere Informationen finden Sie unter

    http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html

In der folgenden Tabelle sind die Broker-Eigenschaften aufgeführt, die zum Einrichten der JAAS-Unterstützung benötigt werden.

Tabelle 1–2 Broker-Eigenschaften für JAAS-Unterstützung

Eigenschaft 

Beschreibung 

imq.authentication.type

Wählen Sie den Wert basic, um die Base-64-Passwortverschlüsselung festzulegen. Dies ist der einzig zulässige Wert für die JAAS-Authentifizierung.

imq.authentication.basic.user_repository

Wählen Sie den Wert jaas, um die JAAS-Authentifizierung festzulegen.

imq.accesscontrol.type

Wählen Sie file.

imq.user_repository.jaas.name

Wählen Sie den Namen des gewünschten Eintrags (in der JAAS-Konfigurationsdatei), welcher die Anmeldemodule referenziert, die Sie als Authentifizierungsmechanismus verwenden möchten. Dies ist der Name, den Sie in Schritt 3 aufgezeichnet haben.

imq.user_repository.jaas.userPrincipalClass

Diese Eigenschaft wird von der Message Queue-Zugriffssteuerung verwendet und gibt die java.security.Principal-Implementierungsklasse in den Anmeldemodulen an, die der Broker zum Extrahieren des Prinzipalnamens verwendet, der das Benutzerelement in der Message Queue-Zugriffssteuerungsdatei darstellt. Wenn diese Eigenschaft nicht angegeben wird, wird stattdessen der Benutzername verwendet, der vom Message Queue-Client beim Anfordern einer Verbindung übergeben wurde.

imq.user_repository.jaas.groupPrincipalClass

Diese Eigenschaft wird von der Message Queue-Zugriffssteuerung verwendet und gibt die java.security.Principal-Implementierungsklasse in den Anmeldemodulen an, die der Broker zum Extrahieren des Prinzipalnamens verwendet, der das Gruppenelement in der Message Queue-Zugriffssteuerungsdatei darstellt. Wenn diese Eigenschaft nicht angegeben wird, werden die Gruppenregeln (sofern vorhanden) in der Message Queue-Zugriffssteuerungsdatei ignoriert.