Java ist sicher genug für E-Business

21.03.2002

Schließlich sollte noch die Konfigurierbarkeit von Berechtigungen hervorgehoben werden. Bestimmte sicherheitsrelevante Entscheidungen (zum Beispiel: „Darf Benutzer Meier auf die Datei secret.txt zugreifen?“) müssen nicht in das Anwendungsprogramm codiert werden - die Java-Laufzeitumgebung sorgt für die Einhaltung der Sicherheits-Policy.

In der J2EE-Sicherheitsarchitektur ist es ein wesentliches Ziel, IT-Basisdienste möglichst einfach nutzbar zu machen. Sie sollen konfigurierbar und ihre konkrete Implementierung leicht austauschbar sein. Das gilt insbesondere auch für die Sicherheitsdienste, mit denen Web- und EJB-Komponenten vor unerlaubtem Zugriff geschützt und die Kommunikation zwischen den Komponenten sicher gemacht werden sollen.

Die Authentifizierung von Web-Clients erfolgt entweder mit Benutzername und Passwort oder per Zertifikat. Im ersten Fall kann man wählen, ob das Standard-Login-Fenster des Browsers zum Einsammeln der Daten verwendet werden soll oder ein von der Anwendung in Form einer JSP vorgegebenes Formular. Da Benutzername und Passwort jeweils unverschlüsselt in den Aufruf gestellt werden, sollten diese Verfahren unbedingt mit Transportsicherheit kombiniert werden. Die Authentifizierung mit Zertifikaten hat dieses Problem nicht, erfordert jedoch höheren Verwaltungs- und Konfigurationsaufwand. Die Festlegung auf ein Verfahren geschieht erst zum Zeitpunkt der Installation. Die Verwaltung einer Login-Session, welche gewährleistet, dass jeder Benutzer sich nur einmal beim Server anmelden muss (Single-sign-on), ist Aufgabe des Servers. Er nutzt dazu im allgemeinen Cookies.

Anbinden der Benutzerverzeichnisse

Zur Authentifizierung von Applikations-Clients verwenden die Applikations-Server zunehmend JAAS-Login-Module. Diese sind entweder für gängige Benutzerverzeichnisse im Lieferumfang enthalten oder müssen selbst implementiert werden. Häufig sind in den Unternehmen bereits umfangreiche Benutzerverzeichnisse in Form von LDAP-Verzeichnissen, Datenbanktabellen oder auf der Ebene des Betriebssystems (NT-Domänen, Unix NIS) vorhanden. Diese können in den gängigen Applikations-Servern für die Authentifizierung herangezogen werden. Die Anbindung ist bisher allerdings nicht standardisiert worden.

Die Autorisierung beim Zugriff auf Ressourcen basiert auf dem Konzept der Rolle. Um auf eine bestimmte Ressource, etwa eine HTML-Seite oder eine Entity Bean, zugreifen zu dürfen, muss ein Benutzer in einer bestimmten Rolle agieren. Ist dies nicht der Fall, verweigert das Laufzeitsystem den Zugriff. Die Rollen, die zum Zugriff berechtigen, werden in einer standardisierten Konfigurationsdatei bei der Installation spezifiziert. Die Zuordnung der Benutzer zu Rollen erfolgt auf proprietäre Art. Schützbare Ressourcen im Web-Container sind HTML-Seiten, Servlets und JSPs. Schützbare EJB-Ressourcen sind die Methoden der Enterprise Beans.