< Zurück | Weiter >

Lerneinheit 4.2: Benutzerbasierte Berechtigung aktivieren

Im Authentifizierungsmodul dieses Lernprogramms haben Sie zwei Benutzer erstellt: operator1 und admin1. Sie können diesen Benutzern mit JAAS-Berechtigung (Java Authentication and Authorization Service) verschiedene Berechtigungen zuordnen.

JAAS-Berechtigungsrichtlinie (Java Authentication and Authorization Service) mit Benutzerprincipals definieren

Sie können den Benutzern, die Sie zuvor erstellt haben, Berechtigungen zuordnen. Ordnen Sie dem Benutzer operator1 nur Leseberechtigungen für alle Maps zu. Ordnen Sie dem Benutzer admin1 alle Berechtigungen zu. Verwenden Sie die JAAS-Berechtigungsrichtliniendatei, um Principals Berechtigungen zu erteilen.
Bearbeiten Sie die JAAS-Berechtigungsdatei. Die Datei xsAuth2.policy befindet sich im Verzeichnis Ausgangsverzeichnis_für_Beispiele/security:
grant codebase http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction
Principal com.ibm.ws.security.common.auth.WSPrincipalImpl "defaultWIMFileBasedRealm/operator1" {
    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.ws.security.common.auth.WSPrincipalImpl "defaultWIMFileBasedRealm/admin1" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
In dieser Datei ist die Codebasis http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction ein speziell reservierter URL für ObjectGrid. Alle ObjectGrid-Berechtigungen, die Principals erteilt werden, verwenden diese spezielle Codebasis. Die folgenden Berechtigungen werden in dieser Datei zugeordnet:
  • Die erste grant-Anweisung erteilt dem Principal operator1 die Map-Berechtigung read. Der Benutzer operator1 hat nur Leseberechtigung für die Map "Map1" in der ObjectGrid-Instanz "Grid".
  • Die zweite grant-Anweisung erteilt dem Principal "admin1" alle Map-Berechtigungen. Der Benutzer admin1 hat alle Berechtigungen für die Map "Map1" in der ObjectGrid-Instanz "Grid".
  • Der Name des Principals ist defaultWIMFileBasedRealm/operator1, aber nicht Operator1. WebSphere Application Server fügt den Realmnamen dem Name des Principals automatisch hinzu, wenn eingebundene Repositorys als Benutzer-Account-Registry verwendet werden. Passen Sie diesen Wert bei Bedarf an.

JAAS-Berechtigungsrichtliniendatei mit JVM-Eigenschaften definieren

Verwenden Sie die folgenden Schritte, um JVM-Eigenschaften für die Server "xs1" und "xs2" im Cluster "xsCluster" zu definieren. Wenn Sie eine Topologie verwenden, die von der Beispieltopologie abweicht, die in diesem Lernprogramm verwendet wird, definieren Sie die Datei in allen Container-Servern.
  1. Klicken Sie in der Administrationskonsole auf Server > Anwendungsserver > Servername > Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine..
  2. Fügen Sie die folgenden generischen JVM-Argumente hinzu:
    -Djava.security.auth.policy=Ausgangsverzeichnis_für_Beispiele/security/xsAuth2.policy
  3. Klicken Sie auf OK, und speichern Sie Ihre Änderungen.

Beispielanwendung zu Testen der Berechtigung ausführen

Sie können die Beispielanwendung verwenden, um die Berechtigungseinstellungen zu testen. Der Benutzer mit Administratorberechtigung hat weiterhin alle Berechtigungen in der Map "Map1", einschließlich der Berechtigungen zum Anzeigen und Hinzufügen von Mitarbeitern. Der Benutzer mit Bedienerberechtigung darf Mitarbeiter nur anzeigen, weil diesem Benutzer nur Leseberechtigung erteilt wurde.
  1. Starten Sie alle Anwendungsserver, in denen Container-Server ausgeführt werden, erneut.
  2. Öffnen Sie die Anwendung EmployeeManagementWeb. Öffnen Sie in einem Webbrowser http://<Host>:<Port>/EmployeeManagermentWeb/management.jsp.
  3. Melden Sie sich als Administrator an der Anwendung an. Verwenden Sie den Benutzernamen admin1 und das Kennwort admin1.
  4. Versuchen Sie, einen Mitarbeiter anzuzeigen. Klicken Sie auf Display an Employee, und suchen Sie die E-Mail-Adresse authemp1@acme.com. Es erscheint eine Nachricht, in der Ihnen mitgeteilt wird, dass der Benutzer nicht gefunden wurde.
  5. Fügen Sie einen Mitarbeiter hinzu. Klicken Sie auf Add an Employee. Fügen Sie die E-Mail-Adresse authemp1@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.
  6. 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.
  7. Versuchen Sie, einen Mitarbeiter anzuzeigen. Klicken Sie auf Display an Employee, und suchen Sie die E-Mail-Adresse authemp1@acme.com. Der Mitarbeiter wird angezeigt.
  8. Fügen Sie einen Mitarbeiter hinzu. 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. 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 operator1 nicht berechtigt ist, Daten in die Map "Map1" einzufügen.
Wenn Sie mit einer Version von WebSphere Application Server vor Version 7.0.0.11 arbeiten, wird im Container-Server unter Umständen ein Fehler des Typs "java.lang.StackOverflowError" angezeigt. Dieser Fehler ist auf ein Problem mit IBM Developer Kit zurückzuführen. Das Problem ist in dem IBM Developer Kit, das mit WebSphere Application Server Version 7.0.0.11 und höher bereitgestellt wird, behoben.

Prüfpunkt der Lerneinheit

In dieser Lerneinheit haben Sie die Berechtigung konfiguriert, indem Sie bestimmten Benutzern Berechtigungen erteilt haben.

< Zurück | Weiter >