Java-Thread-Identität und Betriebssystemthreadidentität
Sie können Optionen zum Synchronisieren einer Java™-Thread-Identität und einer Betriebssystem-Thread-Identität angeben.
Unternehmen JavaBeans (EJB) unterstützt eine Methode-Level RunAs Rollenspezifikation, die eine Java Platform, Enterprise Edition ( Java EE ) Rolle mit einem EJB-Methodenaufruf. 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 diese Identität von webbasierten und Java EE Laufzeit und ist mit dem aktuellen Dispatch-Thread verknüpft. Diese Identität regelt den Zugriff nur auf die Ressourcen und Einrichtungen, die Java EE Sicherheit. Die tatsächliche Betriebssystemthreadidentität besteht unabhängig von der Auswahl der EJB-RunAs-Rolle und entspricht normalerweise der Identität des Servers.
Durch das Setzen des OS-Identitätsthreads wird die Java EE Rollenidentität und OS-Thread ( SyncToOSThread). Dies bedeutet, dass die OS-Thread-Identität verknüpft ist mit dem Java EE Rollenidentität während des EJB-Methodenaufrufs (Anwendungsassembler und -deployer verknüpfen die RunAs mit dem Betriebssystem-Thread, indem Sie die Thread-Identität auf den RunAs Identität für bestimmte Bean-Methoden). Diese Zuordnung bedeutet, dass die Identität des Anrufers oder der Sicherheitsrolle (und nicht die Identität der Serverregion) verwendet wird für z/OS® Systemdienstanforderungen wie Zugriff auf Dateien und Datenbankverwaltungssysteme. Der WebSphere® Application Server for z/OS Java EE Der Server kann so konfiguriert werden, dass diese Zuordnung (oder Synchronisierung) aktiviert oder deaktiviert wird. 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 vervollständigen die Spezifikation der Optionen zum Synchronisieren einer Java-Thread-Identität und einer Betriebssystem-Thread-Identität mithilfe der Funktion zur Ressourcenzugriffssteuerung (RACF® ), um FACILITY- und optional SURROGAT-Klassenprofile für die zulässige Synchronisierung mit OS-Thread zu definieren. Dies gibt dem RACF Administrator im WebSphere Application Server Konfiguration die Möglichkeit, die Berechtigungen zu steuern, die die Synchronisierung der Java EE Rollenidentität und der OS-Thread ( SyncToOSThread).
- Aktivieren WebSphere Application Server Und z/OS Thread-Identitätssynchronisierung
- 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 die aktuelle Java EE Principal zum OS-Thread, wenn eine Verbindung von einer Ressourcenreferenz bezogen wird, die angibt res-auth=Container. Die Standardeinstellung hat den Wert false oder ist inaktiviert.
- WAHR, die angibt, dass die Java EE Prinzipal oder Identität sollten für alle Anforderungen, die in der EJB- oder Webanwendung aufgerufen werden, mit dem OS-Thread synchronisiert werden.
- FALSCH gibt den Java EE Die Hauptanwendung oder Identität sollte nicht für alle Anforderungen, die in der EJB- oder Webanwendung aufgerufen werden, mit dem Betriebssystem-Thread synchronisiert werden. Dieser Wert ist der Standardwert.
- LocalOS (Lokales Betriebssystem)
- LDAP
- 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).Notiz: Wenn bei Webanwendungen keine Sicherheitseinschränkungen angegeben sind, wird die Anwendung möglicherweise mit einer nicht authentifizierten Benutzer-ID ausgeführt.
- Änderungen an der Methodendelegierung an die Java EE Identität ( RunAs Angegeben)
- Der Verbindungsmanager synchronisiert die aktuelle Java EE Identität mit dem OS-Thread beim Abrufen von Anwendungen aus Ressourcenreferenzen, die über eine containergesteuerte Ressourcenautorisierung verfügen ( res-auth=Container). EJB-Methoden, die mit gekennzeichnet sind SynchToOSThread verursachen die Java EE Rollenidentität, die mit dem OS-Thread synchronisiert werden soll.
- 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.