Berechtigung für Anwendungen in Liberty konfigurieren
Wenn Sie die Berechtigung für Ihre Anwendung konfigurieren, prüfen Sie, ob ein Benutzer oder eine Gruppe zu einer bestimmten Rolle gehört und ob diese Rolle die Berechtigung zum Zugriff auf einen Service hat.
Informationen zu diesem Vorgang
Der Liberty-Server extrahiert Informationen zu Benutzer- und Gruppenzuordnungen aus einer Benutzerregistry und überprüft dann die Berechtigungskonfiguration für die Anwendung, um zu bestimmen, ob ein Benutzer oder eine Gruppe einer der erforderlichen Rollen zugeordnet ist. Anschließend liest der Server den Implementierungsdeskriptor der Anwendung, um festzustellen, ob der Benutzer oder die Gruppe die Berechtigung für den Zugriff auf die Ressource hat.
Wenn Sie die SAF-Berechtigung "System Authorization Facility) verwenden, werden die Rollen mit der SAF-Rollenzuordnungsfunktion (SAF Role Mapper) den EJBROLE-Ressourcenprofilen zugeordnet. Der Server fragt die SAF ab, um festzustellen, ob der Benutzer den erforderlichen Lesezugriff (READ) für das
EJBROLE-Ressourcenprofil hat.
Vorgehensweise
- Legen Sie das Feature
appSecurity-2.0
Liberty in der Datei
server.xml fest. Beispiel:
<featureManager> <feature>appSecurity-2.0</feature> </featureManager>
Anmerkung:
- Wenn Sie den
SAF-Berechtigungsprovider verwenden, schließen Sie das Feature
zosSecurity-1.0 ein, und definieren Sie ein
safAuthorization-Konfigurationselement in der Datei
server.xml. Beispiel:
<featureManager> <feature>appSecurity-2.0</feature> <feature>zosSecurity-1.0</feature> </featureManager> <safAuthorization id="saf" />
- Wenn Sie den
SAF-Berechtigungsprovider verwenden, schließen Sie das Feature
zosSecurity-1.0 ein, und definieren Sie ein
safAuthorization-Konfigurationselement in der Datei
server.xml. Beispiel:
- Konfigurieren Sie eine Benutzerregistry für die Berechtigung im Liberty-Server.
Informationen hierzu finden Sie unter Benutzer in Liberty authentifizieren.
Wenn Sie den SAF-Berechtigungsprovider verwenden, müssen Sie die SAF-Registry verwenden und der Server muss berechtigt sein, die berechtigten SAF-Services zu verwenden. Weitere Informationen hierzu finden Sie unter SAF-Registry unter z/OS aktivieren und konfigurieren.
- Stellen Sie sicher, dass der Implementierungsdeskriptor für Ihre Anwendung
Integritätsbedingungen für die Sicherheit und andere sicherheitsrelevante Informationen umfasst. Anmerkung: Sie können auch ein Tool wie Rational Application Developer verwenden, um den Implementierungsdeskriptor zu erstellen.
- Konfigurieren Sie die Berechtigunginformationen, wie z. B. die Zuordnung von Benutzern und Gruppen
zu Rollen. Die Berechtigungstabelle kann auf folgende Art und Weise konfiguriert werden:
- Wenn Sie eine EAR-Datei haben, können Sie der Datei ibm-application-bnd.xml oder der Datei ibm-application-bnd.xmi die Berechtigungskonfigurationsdefinition hinzufügen.
- Wenn Sie eigenständige WAR-Dateien haben, können Sie die Definitionen der Berechtigungstabelle in die Datei server.xml unter dem entsprechenden Anwendungselement aufnehmen. Sie können hierzu WebSphere Application Server Developer Tools for Eclipse verwenden.
Anmerkungen:- Wenn Sie eine EAR-Datei haben, ist die Berechtigungskonfiguration möglicherweise bereits vorhanden. In EAR-Dateien, die für die aktuelle Spezifikation geschrieben wurden, sind diese Informationen in einer Datei mit dem Namen ibm-application-bnd.xml gespeichert. In älteren EAR-Dateien sind diese Informationen in einer Datei mit dem Namen ibm-application-bnd.xmi gespeichert.
- Wenn Ihre EAR-Datei noch keine Datei des Typs ibm-application-bnd.xm* enthält, ist es nicht unkompliziert eine solche Datei zu erstellen, und Sie werden stattdessen vielleicht lieber der Datei server.xml die Berechtigungskonfiguration hinzufügen wollen.
- Wenn die Berechtigungskonfiguration für die EAR-Datei in einer Datei des Typs ibm-application-bnd.xm* und in einer Datei des Typs server.xml definiert ist, werden die beiden Tabellen zusammengeführt. Wenn es Konflikte gibt, werden die Informationen aus der Datei server.xml verwendet.
- Wenn Sie die Benutzerregistry ändern, denken Sie daran, die Berechtigungstabelle auf erforderliche Änderungen hin zu überprüfen. Wenn Sie z. B. ein access-id-Element angeben und den Realmnamen der Registry ändern, müssen Sie auch den Realmnamen im Element access-id ändern.
- Wenn Sie das Element application-bnd in der
Datei server.xml angeben, darf sich Ihre Anwendung
nicht im Ordner dropins befinden. Wenn Sie die Anwendung im Ordner
dropins belassen, müssen Sie die Anwendungsüberwachung
inaktivieren, indem Sie Folgendes in der Datei server.xml festlegen:
<applicationMonitor dropinsEnabled="false" />
Eine Rolle kann einem Benutzer, einer Gruppe oder einem Sondersubjekt zugeordnet werden. Die beiden Sondersubjekttypen sind EVERYONE und ALL_AUTHENTICATED_USERS. Wenn eine Rolle dem Sondersubjekt EVERYONE zugeordnet ist, gibt es keine Sicherheit, weil alle Benutzer für den Zugriff berechtigt sind und keine Berechtigungsnachweise angefordert werden. Wenn eine Rolle dem Sondersubjekt ALL_AUTHENTICATED_USERS zugeordnet wird, kann jeder von der Anwendung authentifizierte Benutzer auf die geschützte Ressource zugreifen.
Nachfolgend ist ein Beispielcode zur Konfiguration der Zuordnung von Benutzern/Gruppen zu Rollen in der Datei server.xml aufgeführt:<application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war"> <application-bnd> <security-role name="user"> <group name="students" /> </security-role> <security-role name="admin"> <user name="gjones" /> <group name="administrators" /> </security-role> <security-role name="AllAuthenticated"> <special-subject type="ALL_AUTHENTICATED_USERS" /> </security-role> </application-bnd> </application>
In diesem Beispiel ist die Rolle admin der Benutzer-ID gjones und allen Benutzern in der Gruppe administrators zugeordnet. AllAuthenticatedRole ist dem Sondersubjekt ALL_AUTHENTICATED_USERS zugeordnet, d. h., dass jeder Benutzer Zugriff hat, sofern er gültige Berechtigungsnachweise für die Authentifizierung bereitstellt.
Anmerkung: Wenn Sie die SAF-Berechtigung aktivieren, können Sie nicht die Sondersubjekte ALL_AUTHENTICATED_USERS und EVERYONE verwenden.
Wenn Sie die SAF-Berechtigung verwenden, werden die Rollen mit der SAF-Rollenzuordnungsfunktion (SAF Role Mapper) den EJBROLE-Ressourcenprofilen zugeordnet. Das Muster der SAF-Rollenzuordnungsfunktion kann mit dem Element safRoleMapper in der Datei server.xml konfiguriert werden. Weitere Informationen hierzu finden Sie unter Liberty: Zuordnung von Rollen zu SAF-Profilen steuern. Standardmäßig wird die Rolle einem Ressourcenprofil anhand des Musters Profilpräfix.Ressource.Rolle zugeordnet, wobei Folgendes gilt:
- Profilpräfix wurde mit dem Attribut profilePrefix im Konfigurationselement safCredentials definiert. Standardmäßig hat profilePrefix den Wert BBGZDFLT.
- Ressource ist der Ressourcenname, z. B. der Anwendungsname.
- Rolle ist der Rollenname.
Anmerkung: In den EJBROLE-Ressourcenprofilen muss die Groß-/Kleinschreibung beachtet werden.Das folgende Beispiel zeigt RACF-Beispielbefehle für die Berechtigung eines Benutzers:rdef EJBROLE BBGZDFLT.myapp.admin uacc(none) permit BBGZDFLT.myapp.admin class(EJBROLE) access(read) id(gjones)
- Optional: Konfigurieren Sie eine Berechtigungsentscheidung, wenn keine Anwendungsbindungsinformationen vorliegen. Wenn die Bindungsinformationen für die Rollenzuordnung für eine geschützte Anwendung nicht angegeben werden, verwendet die Standardberechtigungsengine den Rollennamen, der die Ressource schützt, als Gruppennamen für diese Rolle. Lautet der Rollennamen beispielsweise manager, hat ein Benutzer, der zu einer manager-Gruppe gehört, Zugriff auf diese Ressource. Dies gilt nur, wenn in der Datei server.xml oder in der Anwendungsbindungsdatei keine Anwendungsbindungsinformationen für die Anwendung angegeben sind. Das Hinzufügen der nachstehenden Bindung inaktiviert beispielsweise die Bindung der Sicherheitsrolle zur Gruppe:
<application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war"> <application-bnd> <security-role name="anyAppRoleName"/> </application-bnd> </application>
Anmerkung: Damit eine Berechtigung für einen Gruppennamen in der Benutzerregistry erfolgreich ist, muss der Rollenname mit dem vollständigen oder eindeutigen Namen der Gruppe in der Registry übereinstimmen, die konfiguriert ist, und nicht mit dem Kurznamen. Wenn beispielsweise der Kurzname der Gruppe swGroup ist, der vollständige oder eindeutige Name in der Benutzerregistry jedoch CN=swGroup,o=company,c=us lautet, müssen Sie als Rollennamen CN=swGroup,o=company,c=us angeben, damit die Berechtigung erfolgreich funktioniert.
Untergeordnete Themen
Liberty: Zuordnung von Rollen zu SAF-Profilen steuern
Der SAF-Rollenmapper (System Authorization Facility) bestimmt, wie EJBROLE-Profilnamen aus anwendungsdefinierten Rollennamen generiert werden. Der Mapper wird aufgerufen, wenn eine SAF-Berechtigung für eine Anwendungsrolle durchgeführt wird. Die Berechtigungsprüfung für die Anwendungsrolle wird mithilfe des zugrunde liegenden SAF-Sicherheitsprodukts unter Verwendung des vom SAF-Rollenmapper generierten zugeordneten Profilnamens durchgeführt.

Dateiname: twlp_sec_rolebased.html