[z/OS]

Java-EE-Identität und Betriebssystemthreadidentität

Ein Benutzer wird mit einer Identität identifiziert, die von WebSphere Application Server authentifiziert werden muss, damit sie auf eine WAS-Anwendung in einer sicheren Umgebung zugreifen kann.

Unterschiedliche Identitäten: Der WebSphere Application Server authentifiziert die Benutzeridentität und repräsentiert den Benutzer mit einem JAAS-Subject (Java Authentication and Authorization Service). Ein Subject enthält einen oder mehrere Principals (technologieabhängige Darstellungen der authentifizierten Benutzeridentität). Detailinformationen:
Benutzeridentitäten
Java™-EE-Identität
Die Benutzeridentität, die von WebSphere authentifiziert und für die von WebSphere Application Server zur Java-EE-Laufzeit getroffenen Entscheidungen hinsichtlich der Zugriffssteuerung verwendet wurde (wie z. B. die Benutzeridentität, die einer Java-EE-Anwendungsanforderung zugeordnet und in Zugangskontrollentscheidungen für EJB-Methoden verwendet wird).
Betriebssystemidentität
Die Benutzeridentität, die vom zugrunde liegenden Betriebssystem authentifiziert und für die vom Betriebssystem und seinen Subsystemen getroffenen Zugangskontrollentscheidungen verwendet wurde (z. B. der Benutzeridentität, die vom Klassendienstprogramm SAF STARTED eines Servant von WebSphere Application Server for z/OS zugeordnet und vom Dateisystem für Zugangskontrollentscheidungen beim Versuch, auf Dateien zuzugreifen, verwendet wurde).
Threadidentität
Java-Threadidentität
Die Java-EE-Identität, die gegenwärtig einem von der WebSphere-Java-EE-Laufzeit verwalteten Thread zugeordnet ist (ein Java-Thread ist die JVM-Darstellung eines Thread). Die Java-Threadidentität ist einem Betriebssystemthread zugordnet, aber die JVM verwaltet die Benutzeridentität in der Java-Darstellung des Thread getrennt von der Benutzeridentität, die das Betriebssystem im Betriebssystemthread verwaltet. Die Java-EE-Identität wird im Java-Thread verwendet, solange die entsprechende Anwendungsanforderung aktiv ist.
Betriebssystemthreadidentität
Die Betriebssystemidentität, die dem Betriebssystemthread gegenwärtig zugeordnet ist. Im Normalfall ist die Betriebssystemthreadidentität mit der Benutzeridentität, die dem Servant zugeordnet ist, identisch und stimmt nicht mit der Java-Threadidentität überein. Beachten Sie, dass Java EE eine Java-EE-Identität verwaltet. Diese Java-EE-Identität entspricht der Betriebssystemthreadidentität, die dem Servant zugeordnet ist. Die Java-EE-Identität kann als RunAs-Identität verwendet werden.
RunAs-Identität
Die Java-EE-Identität, die als Java-Thread-Identität für eine bestimmte Java-EE-Anwendungsanforderung ausgewählt wurde (basierend auf der RunAs-Implementierungsdeskriptorrichtlinie in einer EJB, die in der Java-EE-Anwendungsanforderung aufgerufen wurde). Die Java-EE-Identität ist normalerweise die ID des authentifizierten Benutzers, der die Java-EE-Anwendungsanforderung abgesetzt hat. Die RunAs-Richtlinie von WebSphere Application Server lässt drei Optionen für die Zuordnung der Java-Thread-Identität für die aktuelle Anforderung zu:
  1. Java-EE-Client-Identität (z. B. "Benutzer") zuordnen - entspricht der Auswahl der RunAs-Rolle "Caller"
  2. Java-EE-Identität des Servers zuordnen
  3. Java-EE-Identität in der angegebenen Rolle zuordnen

Bei aktivierter Sicherheit wird jede WAS-for-z/OS-Anforderung, die eine Java-EE-Komponente aufruft, authentifiziert, um sicherzustellen, dass ein berechtigter Benutzer den Zugriff anfordert. Ein Benutzer wird von einer Java-EE-Identität dargestellt (die auch als JAAS-Subject bezeichnet wird). Diese Java-EE-Identität enthält einen oder mehrere Principals, und jeder Principal entspricht einer bestimmten Benutzeridentität. Diese Zuordnung wird von WebSphere Application Server verwaltet. Die Java-EE-Identität und die Betriebssystemthreadidentität werden einander zugeordnet, da sie denselben Namen haben und denselben Benutzer darstellen.

WebSphere Application Server for z/OS teilt Komponentenanforderungen in einem seiner verfügbaren Servant-Prozesse zu. Im Servant-Prozess wird die Komponentenanforderung in einem Java-Thread zugeteilt. Dann teilt die JVM einem z/OS-TCB (z/OS Thread Control Block) intern einen Java-Thread zu. Ein TCB ist ein Betriebssystem-Thread und wird als native Prozessinfrastruktur betrachtet. Beim Start eines Servant-Prozesses ist dem Prozess eine Betriebssystemidentität zugeordnet. Die z/OS-Sicherheitsrichtlinie verwendet das Dienstprogramm der Klasse SAF STARTED für die Zuordnung der Identität.

Entscheidungen hinsichtlich der Java-EE-Berechtigungen einschließlich Berechtigungen für Rollen und Berechtigungsprüfungen werden mit der Java-EE-Identität durchgeführt. Über eine Konfigurationseinstellung kann die Prüfung von Berechtigungen für Rollen an den Sicherheitsmanager des zugrunde liegenden Betriebssystems (z. B. SAF) delegiert werden. In diesem Fall wird die zugeordnete Betriebssystemidentität bei der Entscheidung hinsichtlich der Berechtigungen für Rollen verwendet.

Einige Ressourcenmanager in z/OS verwenden die Betriebssystemthreadidentität, um Entscheidungen hinsichtlich der Berechtigungen zu treffen. Beispielsweise hängt die Zugangskontrolle des Dateisystems vollständig davon ab, welche Betriebssystemthreadidentität gegenwärtig im TCB verwendet wird, wenn auf die Datei zugegriffen wird. Analog dazu verwenden lokale JDBC-Verbindungen zu DB2 für z/OS unter bestimmten Konfigurationen die Betriebssystemthreadidentität des TCB als Berechtigungsidentität. Bei Ressourcenmanagern, die die Betriebssystemthreadidentität (z. B. DB2 for z/OS) verwenden, auf die Anwendungen über JMS (Java Message Service), JDBC oder von der WAS-for-z/OS-Verbindungsverwaltung verwaltete JCA-Connector (Java EE Connector Architecture) zugreifen, spricht man davon, dass die Connector zu diesen z/OS-Ressourcenmanagern "die Betriebssystem-Thread-Sicherheit verwenden".


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_understandj2eenativeid
Dateiname:csec_understandj2eenativeid.html