Für eine Webanwendung können Sie drei Arten der Authentifizierung für die Webanmeldung konfigurieren:
die Basisauthentifizierung, die formularbasierte Authentifizierung und die Authentifizierung mit Clientzertifikat. Schützen Sie
die Webressourcen einer Webanwendung,
indem Sie ihnen Sicherheitsrollen zuordnen.
Informationen zu diesem Vorgang
Für den Schutz von Webanwendungen sollten Sie im Voraus wissen, welche
Webressourcen geschützt werden müssen und wie dieser Schutz realisiert werden soll.
Anmerkung: Diese Prozedur stimmt unter Umständen
nicht mit den Schritten überein, die in Ihrem
Assembliertool bzw. in der von Ihnen verwendeten Version des
Assembliertools ausgeführt werden müssen.
Folgen Sie den Anweisungen für das Tool und die Version, das bzw. die Sie verwenden.
Die folgenden Schritte beschreiben ausführlich, wie eine Webanwendung mit einem Assembliertool
gesichert werden kann:
Vorgehensweise
- Importieren Sie in einem Assembliertool Ihre WAR-Datei oder eine
EAR-Datei, die mindestens ein Webmodul enthält.
- Suchen Sie im Project-Explorer-Ordner Ihre Webanwendung.
- Klicken Sie mit der rechten Maustaste auf den Implementierungsdeskriptor und klicken Sie anschließend auf
Öffnen mit > Editor für Implementierungsdeskriptor. Das Fenster "Implementierungsdeskriptor'" erscheint.
Wenn Sie Onlineinformationen zum Editor
anzeigen möchten, drücken Sie die Taste F1, und klicken Sie auf den Editornamen. Wenn Sie eine Webarchivdatei (WAR) auswählen, wird ein Editor für Webimplementierungsdeskriptoren geöffnet. Wenn Sie eine
Unternehmensanwendungsdatei (EAR)
auswählen, wird ein Editor für den Implementierungsdeskriptor der Anwendung geöffnet.
- Erstellen Sie Sicherheitsrollen auf Anwendungsebene oder auf Webmodulebene. Wenn eine Sicherheitsrolle auf Webmodulebene erstellt wird, wird die Rolle
auch auf Anwendungsebene angezeigt. Wird eine Sicherheitsrolle auf Anwendungsebene erstellt, erscheint sie nicht in allen Webmodulen.
Sie können eine Sicherheitsrolle auf Anwendungsebene kopieren und in
Sicherheitsrollen von Webmodulen einfügen.
- Erstellen Sie eine Rolle auf der Webmodulebene. Klicken Sie in einem Editor für Webimplementierungsdeskriptoren
auf das Register Sicherheit.
Klicken Sie unter Sicherheitsrollen auf Hinzufügen.
Geben Sie den Namen der Sicherheitsrolle ein, beschreiben Sie die Sicherheitsrolle,
und klicken Sie auf Fertigstellen.
- Erstellen Sie eine Rolle auf der Anwendungsebene. Klicken Sie in einem Editor für den Implementierungsdeskriptor der Anwendung
auf das Register Sicherheit. Klicken Sie unter der Liste der Sicherheitsrollen auf Hinzufügen. Geben
Sie im Assistenten "Sicherheitsrolle hinzufügen" einen Namen und eine Beschreibung für den die Sicherheitsrolle
an. Klicken Sie dann auf Fertigstellen.
- Erstellen Sie Sicherheitsvorgaben. Sicherheitsvorgaben sind die Zuordnung von einer oder mehreren
Webressourcen zu einer Rollengruppe.
- Klicken Sie auf der Registerkarte Sicherheit eines Editors für Webimplementierungsdeskriptoren
auf Integritätsbedingungen für die Sicherheit. Auf der Registerkarte "Integritätsbedingungen für die Sicherheit"
können Sie die Aktionen Schritte ausführen:
- Sie können Sicherheitsvorgaben für bestimmte Sicherheitsrollen hinzufügen oder entfernen.
- Sie können Webressourcen und ihre HTTP-Methoden hinzufügen und entfernen.
- Sie können festlegen, welche Sicherheitsrollen auf die Webressourcen zugreifen dürfen.
- Sie können für Benutzerdaten die Vorgaben "None", "Integral" oder "Confidential" angeben.
- None
- Die Anwendung erfordert keine Transportgarantie.
- Integral
- Die Daten können während der Übertragung zwischen dem Client und dem Server nicht geändert werden.
- Confidential
- Der Dateninhalt kann während der Übertragung nicht überwacht werden.
"Integral" und
"Confidential" erfordern in der Regel die Verwendung von SSL. Wenn Sie Anwendungen implementieren, die über öffentliche Netze verfügbar sind, geben Sie als Einschränkung für Webanwendungen
"Confidential" an.
- Klicken Sie unter "Integritätsbedingungen für die Sicherheit" auf Hinzufügen.
- Geben Sie unter "Integritätsbedingungsname" einen Anzeigenamen für die Sicherheitsvorgabe ein und klicken Sie anschließend
auf Weiter.
- Geben Sie einen Namen und eine Beschreibung für die Webressourcensammlung ein.
- Wählen Sie HTTP-Methoden aus. Folgende HTTP-Methoden stehen zur Auswahl:
GET, PUT, HEAD, TRACE, POST, DELETE und OPTIONS.
- Klicken Sie im Feld "Muster" auf Hinzufügen.
- Geben Sie ein URL-Muster an. Geben Sie beispielsweise - /*,
*.jsp, /hello ein. Anweisungen für die Angabe von URL-Mustern für Servlets können Sie
der Servletspezifikation 2.4 entnehmen. Die Sicherheitslaufzeitumgebung prüft als erstes, ob der ankommenden URL
exakt mit einem URL-Muster übereinstimmt. Wenn es keine exakte Übereinstimmung gibt, verwendet die Sicherheitslaufzeit
den URL, bei dem die meisten Zeichen mit einem URL-Muster übereinstimmen. Der Abgleich mit URL-Mustern, die Platzhalterzeichen
enthalten (*.,*.jsp), wird zuletzt durchgeführt.
- Klicken Sie auf Fertigstellen.
- Wiederholen Sie diese Schritte, um mehrere Sicherheitsvorgaben zu erstellen.
- Ordnen Sie dem Element "role-link" die Elemente "security-role-ref" und "role-name" zu. Bei der Entwicklung einer Webanwendung können Sie das Element "security-role-ref" erstellen. Das Element "security-role-ref"
enthält nur das Feld "role-name". Das Feld "role-name" enthält den Namen der Rolle, auf
die das Servlet oder der JSP-Code zurückgreift, um festzustellen, ob der Aufrufende in einer bestimmten
Rolle enthalten ist.
Da Sicherheitsrollen in der Assemblierungsphase
erstellt werden, verwendet der Entwickler im Feld role-name den Namen einer logischen Rolle und
weist den Assemblierenden im Feld description an, die tatsächliche Rolle
zuzuordnen. Das Element
"security-role-ref" wird auf der Servletebene verwendet. Ein Servlet oder eine JSP-Datei kann null oder mehrere
security-role-ref-Elemente enthalten.
- Rufen Sie die Registerkarte Verweise eines Editors für Webimplementierungsdeskriptoren
auf. Auf der Registerkarte Verweise können Sie den Namen einer Enterprise-Bean-Referenz auf den Implementierungsdeskriptor
hinzufügen oder
entfernen. Sie können auf dieser Registerkarte fünf Typen von Referenzen definieren:
- EJB-Referenz
- Servicereferenz
- Ressourcenreferenz
- Nachrichtenzielreferenz
- Sicherheitsrollenreferenz
- Ressourcenumgebungsreferenz
- Klicken Sie unter der Liste mit den EJB-Referenzen (Enterprise JavaBeans)
auf Hinzufügen.
- Geben Sie einen Namen und einen Typ für die Referenz in den Feldern Name und Verweistyp ein.
- Wählen Sie Enterprise Beans in the workplace oder Enterprise
Beans not in the workplace aus.
- Optional: Wenn Sie Enterprise Beans not in the workplace auswählen, wählen Sie im Feld Typ den Enterprise-Bean-Typ aus. Sie können zwischen Entity-Beans und Session-Beans wählen.
- Optional: Klicken Sie auf Durchsuchen, um in den Feldern Lokale Home-Schnittstelle und
Lokal Werte für die lokale Home-Schnittstelle und die lokale Schnittstelle einzugeben, bevor Sie auf
Weiter klicken.
- Ordnen Sie mit den oben beschriebenen Schritten jeden bei der Entwicklung verwendeten role-name der
Rolle zu. Jeder bei der Entwicklung verwendete Name einer
Rolle wird der tatsächlichen Rolle zugeordnet.
- Geben Sie die RunAs-Identität für Servlets und JSP-Dateien an. Die RunAs-Identität
eines Servlet wird zum Aufrufen von Enterprise-Beans aus dem Servlet-Code heraus verwendet. Wenn Enterprise-Beans aufgerufen werden, wird die RunAs-Identität an die Enterprise-Bean übergeben, um
die Berechtigungen für die Enterprise-Beans zu überprüfen. Ist die RunAs-Identität nicht
angegeben, wird die Clientidentität an die Enterprise-Beans weitergeleitet. Die RunAs-Identität
wird auf Servletebene zugeordnet.
- Klicken Sie auf der Registerkarte Servlets eines Editors für Webimplementierungsdeskriptoren
unter Servlets und JSP auf Hinzufügen. Daraufhin wird der Assistent "Servlet oder JSP hinzufügen" geöffnet.
- Geben Sie die Servlet- bzw. JSP-Einstellungen, einschließlich des Namens, der Initialisierungsparameter und der URL-Zuordnungen, an und klicken Sie auf
Weiter.
- Geben Sie die Zieladresse für die Klassendatei an.
- Klicken Sie auf Weiter, um weitere Einstellungen festzulegen, oder klicken Sie auf Fertigstellen.
- Klicken Sie auf der Registerkarte Servlets auf Ausführen als. Wählen Sie
die Sicherheitsrolle aus, und beschreiben Sie die Rolle.
- Geben Sie für jedes Servlet und jede JSP, das bzw. die von Ihrer Webanwendung verwendet wird,
eine RunAs-Identität an.
- Konfigurieren Sie das Anmeldeverfahren für das Webmodul. Das konfigurierte Anmeldeverfahren gilt für alle Servlets, JSP-Dateien und HTML-Ressourcen
des Webmoduls.
- Klicken Sie auf das Register Seiten eines Editors für Webimplementierungsdeskriptoren
und klicken Sie anschließend auf Anmeldung. Wählen Sie die erforderliche
Authentifizierungsmethode aus. Die gültigen Werte für die Authentifizierungsmethode sind
Unspecified, Basic, Digest, Form und Client-Cert.
- Geben Sie einen Realmnamen an.
- Wenn Sie die Formularauthentifizierung ausgewählt haben, wählen Sie
die Webadresse für eine Anmeldeseite und für eine Fehlerseite aus.
Sie könnten beispielsweise /login.jsp und /error.jsp verwenden.
Die angegebene Anmeldeseite und die Fehlerseite sind in der Datei .war enthalten.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Wenn Sie ClientCert ausgewählt haben,
installieren Sie das Clientzertifikat im Browser oder Webclient, und stellen Sie es in die Trustschlüsselringdatei
des Servers.
Wenn Sie das Zertifikat "ClientCert" ausgewählt haben,
installieren Sie das Clientzertifikat im Browser-Webclient, und stellen Sie es in die Trustschlüsselringdatei
des Servers.Das öffentliche Zertifikat der Client-CA muss in den
RACF-Schlüsselring des Servers
gestellt werden.
Wenn die Registry LocalOS verwendet wird, aktivieren Sie mit dem Befehl RACDCERT MAP oder einem äquivalenten SAF-Befehl
das Erstellen einer MVS-ID unter Verwendung des Clientzertifikats.
- Schließen Sie den Editor für Implementierungsdeskriptoren, und klicken Sie nach der Systemanfrage
auf Yes, um die Änderungen zu speichern.
Ergebnisse
Nach dem Sichern einer Webanwendung enthält der Implementierungsdeskriptor der resultierenden WAR-Datei die
Sicherheitsinformationen. Die Sicherheitsinformationen für Webmodule werden in der Datei
web.xml gespeichert. Wenn Sie mit dem Editor für Webimplementierungsdeskriptoren arbeiten, können Sie auch andere
Implementierungsdeskriptoren des Webprojekts editieren, z. B. die Informationen zu Bindungen und
IBM®
Erweiterungen in den Dateien
ibm-web-bnd.xmi und
ibm-web-ext.xmi.
Unterstützte Konfigurationen: Bei IBM Erweiterungs- und Bindungsdateien weicht der Name
der XMI- oder XML-Datei ab, je nachdem, ob Sie eine Java™ EE-Anwendung bzw. ein Java EE-Modul vor oder nach Version 5 verwenden.
Eine IBM Erweiterungs- bzw. Bindungsdatei heißt "ibm-*-ext.xmi" bzw. "ibm-*-bnd.xmi". Das Platzhalterzeichen "*" steht für
den Typ der Erweiterungs- oder Bindungsdatei, z. B. "app", "application", "ejb-jar" oder "web". Es gelten die folgenden Bedingungen:
- Für eine Anwendung oder ein Modul, die bzw. das Java EE vor Version 5 verwendet,
muss die Dateierweiterung ".xmi" sein.
- Für eine Anwendung oder ein Modul, die bzw. das Java EE ab Version 5 verwendet,
muss die Dateierweiterung ".xml" sein. Wenn Dateien mit der Erweiterung ".xmi"
in der Anwendung oder im Modul enthalten sind, werden diese vom Produkt ignoriert.
Ein Modul von Java EE Version 5 oder einer höheren Version kann jedoch in einer Anwendung,
die Dateien einer älteren Java EE-Version als Version 5 enthält, koexistieren.
Die Dateien
ibm-webservices-ext.xmi,
ibm-webservices-bnd.xmi,
ibm-webservicesclient-bnd.xmi,
ibm-webservicesclient-ext.xmi und
ibm-portlet-ext.xmi können die Dateierweiterung ".xmi" weiterhin verwenden.
sptcfg
Nächste Schritte
Nachdem Sie die Webanwendung in einem Assembliertool geschützt haben, können Sie sie in der Administrationskonsole
installieren. Führen Sie während der Installation der Webanwendung die Schritte im
Artikel
Sichere Anwendungen implementieren aus, um den Schutz der Webanwendung zu vervollständigen.