![[z/OS]](../images/ngzos.gif)
Java-Thread-Identität und Betriebssystemthreadidentität
Sie können Optionen für die Synchronisation einer Java-Thread-Identität und einer Betriebssystemthreadidentität angeben.
EJBs (Enterprise JavaBeans) unterstützen eine Spezifikation für RunAs-Rollen auf Methodenebene, die eine Java EE-Rolle einem EJB-Methodenaufruf zuordnet. Der EJB-Methodenaufruf wird mit der der designierten Sicherheitsrolle zugeordneten Berechtigung ausgeführt. Die Berechtigung wird der designierten Rolle mit einer Benutzeridentität zugeordnet. Normalerweise wird die Identität von der webbasierten Java EE-Laufzeitumgebung erkannt und dem aktuellen Zuteilungsthread zugeordnet. Diese Identität steuert den Zugriff ausschließlich auf die der Java EE-Sicherheit untergeordneten Ressourcen und Dienstprogramme. Die tatsächliche Betriebssystemthreadidentität besteht unabhängig von der Auswahl der EJB-RunAs-Rolle und entspricht normalerweise der Identität des Servers.
Beim Setzen des Betriebssystemthreadidentität werden die Java EE-Rollenidentität und der Betriebssystemthread (SyncToOSThread) synchronisiert. Das bedeutet, dass für die Dauer des EJB-Methodenaufrufs die Betriebssystemthreadidentität der Java EE-Rollenidentität zugeordnet ist (Anwendungsassemblierer und -implementierer ordnen die RunAs-Identität dem Betriebssystemthread zu, indem sie für bestimmte Bean-Methoden die Threadidentität der RunAs-Identität zuordnen). Diese Zuordnung besagt, dass die Identität des aufrufenden Prozesses oder der Sicherheitsrolle (und nicht die Identität der Server-Region) für Serviceanforderungen des z/OS-Systems, z. B. den Zugriff auf Dateien und Datenbankverwaltungssysteme, verwendet wird. Der Java EE-Server von WebSphere Application Server for z/OS kann so konfiguriert werden, dass er diese Zuordnung (oder Synchronisation) aktiviert oder inaktiviert. Die Standardeinstellung bewirkt, dass die Identität im Betriebssystemthread unabhängig von der Betriebssystemthreadidentität nicht in die Einstellung für die RunAs-Identität im Implementierungsdeskriptor für die installierte Anwendung geändert werden kann. Wenn der Installationsverantwortliche die Synchronisation nicht aktiviert, schlägt jede Methode, die die RunAs-Identität auf den Betriebssystemthread setzt, mit einem Fehler des Typs "no_permission" fehl.
Sie können die Optionen für die Synchronisation einer Java-Thread-ID und einer Thread-ID des Betriebssystems mit RACF (Resource Access Control Facility) festlegen, um FACILITY- und optional SURROGAT-Klassenprofile für die Synchronisation mit Betriebssystemthread zu definieren. Damit kann der RACF-Administrator in der Konfiguration von WebSphere Application Server die Berechtigungen steuern, die die Synchronisation der Java EE-Rollen-ID und des Betriebssystemthreads (SyncToOSThread) zulassen.
- Synchronisation von WebSphere Application Server und z/OS-Threadidentitäten aktivieren
- Gibt an, ob der SynchToOSThread für eine Anwendung zulässig ist. Wenn diese Sicherheitsoption ausgewählt ist (d. h., wenn true angegeben ist), wird der von der Anwendung angegebene SyncToOSThread berücksichtigt und anschließend vom EJB- und vom Web-Container laut SyncToOSThread-Spezifikationen der EJB- und der Webanwendung ausgeführt. Die Standardeinstellung hat den Wert false oder ist inaktiviert.
- RunAs-Threadidentität des Verbindungsmanagers aktivieren
- Gibt an, ob der Verbindungsmanager den aktuellen Java™ EE-Principal mit dem Betriebssystemthread synchronisiert, wenn eine Verbindung von einer Ressourcenreferenz, die res-auth=container angibt, abgerufen wird. Diese Option ist standardmäßig auf false gesetzt oder inaktiviert.
- True. Dieser Wert gibt an, dass der Java EE-Principal bzw. die Java EE-ID für alle in der EJB- oder Webanwendung aufgerufenen Anforderungen mit dem Betriebssystemthread synchronisiert werden soll.
- False. Dieser Wert gibt an, dass die Java EE-Principal-Anwendung bzw. die Java EE-Principal-ID für alle in der EJB- oder Webanwendung aufgerufenen Anforderungen nicht mit dem Betriebssystemthread synchronisiert werden soll. Dieser Wert ist der Standardwert.
- LocalOS (Lokales Betriebssystem)
- LDAP
- Custom (Angepasst)
- Anfangswert beim Festlegen der ersten Methode
- Standardmäßig werden Aufrufe von Methoden eines Servlet-Service und Aufrufe von EJB-Geschäftsmethoden
implizit als aufrufender Prozess (RunAsCaller) ausgeführt, sofern im Feld "RunAs" eines Richtlinienattributs nichts anderes angegeben ist.
EJB-Clientanwendungen werden immer als Server ausgeführt (RunAsServer). Anmerkung: Für Webanwendungen kann die Anwendung, sofern keine Integritätsbedingungen für die Sicherheit festgelegt sind, unter einer nicht authentifizierten Benutzer-ID ausgeführt werden.
- Methodenberechtigung wird in Java EE-ID geändert (angegebene RunAs-Rolle)
- Der Verbindungsmanager synchronisiert die aktuelle Java EE-ID mit dem Betriebssystemthread, wenn Anwendungen von Ressourcenreferenzen, die eine containergesteuerte Ressourcenberechtigung (res-auth=container) besitzen, abgerufen werden. EJB-Methoden, die mit dem SynchToOSThread markiert sind, bewirken, dass die Java EE-Rollenidentität mit dem Betriebssystemthread synchronisiert wird.
- WSSubject.doAs()
- Mit dieser Einstellung kann das Subject allen fernen Aufrufen in diesem Thread zugeordnet werden, ohne die Methode WSSubject.doAs() aufzurufen, die das Subject der fernen Aktion zuordnet.
- JSP-Kompilierung (JavaServer Pages)
- Die JSP-Kompilierung der Web-Container ändert die Serveridentität, wenn SyncToOSThread für den Server aktiviert ist (security_EnableSyncToOSThread=1).
- Zugriff auf Stateful-Sicherungsspeicher
- Die Aktivierung von Stateful-Sitzungen für EJB-Container ändert die Serveridentität, wenn SyncToOSThread aktiviert ist. Greifen Sie auf den Sicherungsspeicher der EJB-Stateful-Sitzungen immer mit der Serveridentität zu.
- Erneutes Laden von Webanwendungen
- Wenn der Web-Container die Webanwendung erneut lädt und SyncToOSThread für Webanwendungen aktiviert ist, ändert er die Serveridentität.
- Anforderungen des Verbindungsmanagers
- Wenn die Ressourcenreferenz res-auth=application angibt, wird die Threadidentität vorübergehend auf die Serveridentität gesetzt.