< Zurück | Weiter >

Lerneinheit 4.3: Gruppenbasierte Berechtigung konfigurieren

In der vorherigen Lerneinheit haben Sie Benutzerprincipals in der JAAS-Berechtigungsrichtlinie (Java Authentication and Authorization Service) einzelne benutzerbasierte Berechtigungen zugeordnet. Wenn Sie jedoch Hunderte oder Tausende von Benutzern haben, verwenden Sie die gruppenbasierte Berechtigung, die den Zugriff auf der Basis von Gruppen und nicht auf der Basis einzelner Benutzer autorisiert.

Leider enthält das Subject-Objekt, das über WebSphere Application Server authentifiziert wird, nur einen Benutzerprincipal. Dieses Objekt enthält keinen Gruppenprincipal. Sie können ein angepasstes Anmeldemodul hinzufügen, um den Gruppenprincipal in das Subject-Objekt einzutragen.

In diesem Lernprogramm hat das angepasste Anmeldemodul den Namen com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule. Das Modul ist in der Datei groupLM.jar enthalten. Speichern Sie diese JAR-Datei im Verzeichnis WAS-INSTALL/lib/ext.

WASAddGroupLoginModule ruft den öffentlichen Gruppenberechtigungsnachweis aus dem Subject-Objekt von WebSphere Application Server ab und erstellt einen Gruppenprincipal com.ibm.websphere.samples.objectgrid.security.WSGroupPrincipal für die Darstellung der Gruppe. Dieser Gruppenprincipal kann dann für die Gruppenberechtigung verwendet werden. Die Gruppen sind in der Datei xsAuthGroup2.policy definiert:
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
		"defaultWIMFileBasedRealm/cn=operatorGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
	"defaultWIMFileBasedRealm/cn=adminGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
Der Principalname ist WSGroupPrincipal und stellt die Gruppe dar.

Angepasstes Anmeldemodul hinzufügen

Das angepasste Anmeldemodul muss jedem der folgenden Systemanmeldemoduleinträge hinzugefügt werden. Wenn Sie Lightweight Third Party Authentication (LTPA) verwenden, fügen Sie den Eintrag den RMI_INBOUND-Anmeldemodulen hinzu. LTPA ist der Standardauthentifizierungsmechanismus für WebSphere Application Server Version 7.0. Für eine Konfiguration von WebSphere Application Server Network Deployment müssen Sie nur die Konfigurationseinträge für den LTPA-Authentifizierungsmechanismus konfigurieren.

Verwenden Sie die folgenden Schritte, um das bereitgestellte Anmeldemodul "com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule" zu konfigurieren:

  1. Klicken Sie in der Administrationskonsole auf Sicherheit > Globale Sicherheit > Java Authentication and Authorization Service > Systemanmeldungen > Name_des_Anmeldemoduls > JAAS-Anmeldemodule > Neu.
  2. Geben Sie als Klassennamen com.ibm.websphere.sample.xs.security.lm.WASAddGroupLoginModule ein.
  3. Optional: Fügen Sie die Eigenschaft debug hinzu, und setzen Sie sie auf den Wert true.
  4. Klicken Sie auf Anwenden, um der Anmeldmodulliste das neue Modul hinzuzufügen.

JAAS-Berechtigungsrichtliniendatei mit JVM-Eigenschaften definieren

Führen Sie in der Administrationskonsole die folgenden Schritte für die Server "xs1" und "xs2" im Cluster "xsCluster" aus. Wenn eine andere Implementierungstopologie verwendet wird, führen Sie die folgenden Schritte für die Anwendungsserver aus, die die Container-Server hosten.

  1. Klicken Sie in der Administrationskonsole auf Server > Anwendungsserver > Servername > Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine.
  2. Geben Sie die folgenden generischen JVM-Argumente ein, oder ersetzen Sie den Eintrag -Djava.security.auth.policy durch den folgenden Text:
    -Djava.security.auth.policy=Ausgangsverzeichnis_für_Beispiele/security/xsAuthGroup2.policy
  3. Klicken Sie auf OK, und speichern Sie Ihre Änderungen.

Gruppenberechtigung mit der Beispielanwendung testen

Mit der Beispielanwendung können Sie prüfen, ob die Gruppenberechtigung vom Anmeldemodul konfiguriert wird.

  1. Starten Sie die Container-Server erneut. In diesem Lernprogramm sind die Server "xs1" und "xs2" die Container-Server.
  2. Melden Sie sich an der Beispielanwendung an. Öffnen Sie in einem Web-Browser den URL http://<Host>:<Port>/EmployeeManagementWeb/management.jsp, und melden Sie sich mit dem Benutzernamen admin1 und dem Kennwort admin1 an.
  3. Mitarbeiter anzeigen. Klicken Sie auf Display an Employee, und suchen Sie die E-Mail-Adresse authemp2@acme.com. Es erscheint eine Nachricht, in der Ihnen mitgeteilt wird, dass der Benutzer nicht gefunden wurde.
  4. Mitarbeiter hinzufügen. Klicken Sie auf Add an Employee. Fügen Sie die E-Mail-Adresse authemp2@acme.com, den Vornamen Joe und den Nachnamen Doe hinzu. Klicken Sie auf Submit. Es erscheint eine Nachricht, in der Ihnen mitgeteilt wird, dass der Benutzer hinzugefügt wurde.
  5. Melden Sie sich als Benutzer mit Bedienerberechtigung an. Öffnen Sie in einem zweiten Web-Browser-Fenster den URL http://<Host>:<Port>/EmployeeManagermentWeb/management.jsp. Verwenden Sie den Benutzernamen operator1 und das Kennwort operator1.
  6. Versuchen Sie, einen Mitarbeiter anzuzeigen. Klicken Sie auf Display an Employee, und suchen Sie die E-Mail-Adresse authemp2@acme.com. Der Mitarbeiter wird angezeigt.
  7. Mitarbeiter hinzufügen. Klicken Sie auf Add an Employee. Fügen Sie die E-Mail-Adresse authemp3@acme.com, den Vornamen Joe und den Nachnamen Doe hinzu. Klicken Sie auf Submit. Die folgende Nachricht wird angezeigt:
    An exception occurs when Add the employee. See below for detailed exception messages.
    Die folgende Ausnahme ist in der Ausnahmekette enthalten:
    java.security.AccessControlException: Access denied
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    Diese Nachricht wird angezeigt, weil der Benutzer mit Bedieneraufgaben nicht berechtigt ist, Daten in die Map "Map1" einzufügen.

Prüfpunkt der Lerneinheit

Sie haben Gruppen konfiguriert, um die Zuordnung von Berechtigungen zu den Benutzern Ihrer Anwendung zu vereinfachen.

< Zurück | Weiter >