< Zurück | Weiter >

Lerneinheit 4.2: Benutzerbasierte Berechtigung aktivieren

Im Authentifizierungsmodul dieses Lernprogramms haben Sie zwei Benutzer erstellt: operator und manager. 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 operator nur Leseberechtigungen für alle Maps zu. Ordnen Sie dem Benutzer manager alle Berechtigungen zu. Verwenden Sie die JAAS-Berechtigungsrichtliniendatei, um Principals Berechtigungen zu erteilen.
Bearbeiten Sie die JAAS-Berechtigungsdatei. Die Datei xsAuth3.policy befindet sich im Verzeichnis Ausgangsverzeichnis_für_Beispiele/security_extauth.
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=operator,O=acme,OU=OGSample" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=manager,O=acme,OU=OGSample" {
    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 "CN=operator,O=acme,OU=OGSample" die Map-Berechtigung read. Der Benutzer "CN=operator,O=acme,OU=OGSample" hat nur Leseberechtigung für die Map "Map1" in der ObjectGrid-Instanz "Grid".
  • Die zweite grant-Anweisung erteilt dem Principal "CN=manager,O=acme,OU=OGSample" alle Map-Berechtigungen. Der Benutzer "CN=manager,O=acme,OU=OGSample" hat alle Berechtigungen für die Map "Map1" in der ObjectGrid-Instanz "Grid".

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_extauth/xsAuth3.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 Managerbenutzer 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. Für dieses Lernprogramm starten Sie die Server xs1 und xs2 erneut.
  2. Öffnen Sie die Anwendung EmployeeManagementWeb. Öffnen Sie in einem Webbrowser http://<Host>:<Port>/EmployeeManagermentWeb/management.jsp.
  3. Melden Sie sich mit einem gültigen Benutzernamen und einem Kennwort an der Anmeldung an.
  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. Editieren Sie die Datei Ausgangsverzeichnis_für_Beispiele/security_extauth/client3.props. Ändern Sie den Wert der Eigenschaft "credentialGeneratorProps" von manager manager1 in operator operator1. Nach dem Editieren der Datei verwendet das Servlet den Benutzernamen "operator" und das Kennwort "operator1" für die Authentifizierung bei den Servern von WebSphere eXtreme Scale.
  7. Starten Sie den Cluster "appCluster" erneut, damit die Änderungen in der Datei Ausgangsverzeichnis_für_Beispiele/security_extauth/client3.props übernommen werden.
  8. 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.
  9. 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.
    Der detaillierte Ausnahmetext folgt:
    java.security.AccessControlException: Access denied
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    Diese Nachricht wird angezeigt, weil der Benutzer operator 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 >