Sichere JAX-RS-Anwendungen implementieren

Die IBM® Die JAX-RS-Laufzeitumgebung (Java™ API for RESTful Web Services) ist ein vom Projekt "Apache Wink" abgeleitetes Servlet. In der Umgebung von WebSphere Application Server wird der Lebenszyklus von Servlets im Web-Container verwaltet. Daher sind die Sicherheitsservices, die vom Web-Container angeboten werden, auf REST-Ressourcen anwendbar, die in WebSphere Application Server implementiert sind.

Informationen zu diesem Vorgang

Sie können Sicherheitsvorgaben für REST-Ressourcen mit denselben Tools definieren und hinzufügen, die auch für die Assemblierung von REST-Anwendungen verwendet werden. Diese Vorgaben werden im J2EE-Webimplementierungsdeskriptor, der Ihrer Anwendung zugeordnet ist, erfasst. In der folgenden Liste sind die Sicherheitsdefinitionen beschrieben, die Sie im Implementierungsdeskriptor angeben können:
  • Benutzerauthentifizierung beim Aufrufen von REST-Ressourcen, die in die Anwendung integriert werden. Die Verfahren sind folgende:
    • HTTP-Basisauthentifizierung
    • Authentifizierung über Formularanmeldung
  • Berechtigungsprüfung über REST-Ressourcen laut Definition durch URL-Muster für die Ressourcen
  • Verwendung des SSL-Transports beim Aufruf von REST-Ressourcen
  • Programmgesteuerte Verwendung des Objekts "SecurityContext" zur Bestimmung von Benutzeridentität und Rollen
Alle Sicherheitsmechanismen, die vom Web-Container unterstützt werden, sind auf REST-Ressourcen anwendbar, einschließlich der Verwendung des Kerberos-basierten Authentifizierungsverfahrens SPNEGO.

Vorgehensweise

  1. Konfigurieren Sie die Entwicklungsumgebung.
    1. Bevor Sie beginnen, JAX-RS-Anwendungen zu entwickeln, müssen Sie Ihre Entwicklungsumgebung einrichten, indem Sie die JAX-RS-Bibliotheken im Klassenpfad hinzufügen.
  2. Definieren Sie die Ressourcen in den JAX-RS-Webanwendungen.
    1. Ressourcen sind die Grundbausteine eines REST-konformen Service. Ressourcen können statische oder dynamisch aktualisierte Daten enthalten. Im Falle einer Onlinebuchhandlung sind Ressourcen beispielsweise ein Buch, eine Bestellung von einem Geschäft, ein Benutzerverbund. Wenn Sie die Ressourcen in Ihrer Anwendung definieren, können Sie den Service effizienter machen und so gestalten, dass er einfacher entwickelt werden kann.
  3. Konfigurieren Sie die JAX-RS-Anwendung.

    Sie können JAX-RS-Anwendungen je nach Anforderungen auf unterschiedliche Weise konfigurieren. Um die Funktionen von Java Platform, Enterprise Edition (Java EE) 6 zu nutzen, können Sie die Scanfunktionen für Annotationen verwenden. Wenn Sie die Scanfunktionen für Annotationen verwenden, können Sie eine JAX-RS-Unterklasse vom Typ "javax.ws.rs.core.Application" ausschließen oder eine minimal definierte Unterklasse "javax.ws.rs.core.Application" verwenden. Alternativ können Sie das IBM JAX-RS-Servlet bzw. den IBM JAX-RS-Filter angeben, wenn Sie die im IBM JAX-RS-Servlet bzw. -Filter enthaltenen Funktionen verwenden möchten.

    Wenn Sie eine der Konfigurationsmethoden der JAX-RS Version 1.1 verwenden, können Sie eine Unterklasse "javax.ws.rs.core.Application" in Ihrer Anwendung ausschließen oder eine Unterklasse "javax.ws.rs.core.Application" verwenden, die einen leeren Satz von Klassen zurückgibt, um die JAX-RS-Laufzeitumgebung anzuweisen, alle JAX-RS-Klassen in der Anwendung zu suchen und zu verwenden. Sie können diese Methode verwenden, wenn Sie beim Entwickeln der Anwendung nicht jede relevante JAX-RS-Klasse manuell einer Unterklasse "javax.ws.rs.core.Application" hinzufügen möchten.

    Durch die Angabe des speziellen IBM JAX-RS-Servlets und -Filters können Sie bestimmte IBM JAX-RS-Verhalten nutzen und sicherstellen. Die Verwendung des IBM JAX-RS-Filters kann beispielsweise bei der Entwicklung einer Webanwendung mit einer Mischung von JAX-RS-Ressourcen und JSP-Dateien (JavaServer Pages) mit denselben URL-Mustern hilfreich sein.

    Obwohl es eine Konfigurationsmethode der JAX-RS Version V1.1 gibt, die die Verwendung einer optionalen Datei web.xml unterstützt, müssen Sie Integritätsbedingungen für die Sicherheit oder Rollen und andere Features, die Sie verwenden möchten und die über eine Datei web.xml aktiviert werden, in einer Datei web.xml angeben.

    Wählen Sie eine der folgenden drei Methoden aus, um Ihre JAX-RS-Anwendung zu konfigurieren:

    • JAX-RS-Anwendungen mithilfe von Methoden der JAX-RS Version 1.1 konfigurieren

      Verwenden Sie diese Methode, wenn Sie die Scanfunktionen für Annotationen oder die Konfigurationsmethoden der JAX-RS Version 1.1 verwenden möchten. Sie können die Scanfunktionen für Annotationen verwenden, um die Portierbarkeit von Anwendungen zu fördern, das Konfigurationscodevolumen zu minimieren oder die Anwendung dynamisch zu ändern, ohne Änderungen am Anwendungscode vorzunehmen.

    • Datei "web.xml" für JAX-RS-Servlets konfigurieren

      Verwenden Sie diese Methode, wenn Sie Features, die über Initialisierungsparameter für Servlets aktiviert werden, angeben möchten, um das Verhalten zu ändern und um sicherzustellen, dass Sie das IBM JAX-RS-Servlet erhalten. Wenn Sie Servlets verwenden möchten, können Sie einen Servletpfad in der Datei web.xml definieren, der an den Basis-URL angefügt wird.

    • Datei "web.xml" für JAX-RS-Filter konfigurieren

      Verwenden Sie diese Methode, um den Filter zu verwenden, wenn Sie JSPs, andere Servlets und Filter sowie JAX-RS-Ressourcen mit verschiedenen URL-Mustern haben. Sie können die Datei web.xml konfigurieren, um Filter zu definieren, die die möglichen URLs angeben, unter denen der Filter aufgerufen werden kann.

  4. Sichern Sie die JAX-RS-Anwendungen im Web-Container.
    1. Mit den Sicherheitsservices, die dem Web-Container zur Verfügung stehen, können Sie REST-Ressourcen sichern. Dazu müssen Sie Sicherheitsmechanismen konfigurieren, die die Benutzerauthentifizierung, die Transportsicherheit, die Berechtigungsprüfung und die Zuordnungen von Benutzern zu Rollen definieren.
  5. Sichern Sie JAX-RS-Ressourcen mit Annotationen.
    1. Sie können JAX-RS-Ressourcen mit Annotationen sichern, die Sicherheitseinstellungen enthalten. Sie können die Annotationen "@PermitAll", "@DenyAll" und "@RolesAllowed" verwenden, um die Konfiguration der Integritätsbedingungen für die Sicherheit zu überschreiben, die in der Datei web.xml definiert ist.
  6. (Optional) Sichern Sie die nachgeschalteten (Downstream-)JAX-RS-Ressourcen.
    1. Sie können nachgeschaltete JAX-RS-Ressourcen sichern, indem Sie die Methode "BasicAuth" für die Authentifizierung konfigurieren und den LTPA-JAX-RS-Sicherheitshandler verwenden, um SSO (Single Sign-on) für die Benutzerauthentifizierung zu nutzen.
  7. (Optional) Sichern Sie JAX-RS-Clients mit SSL.
    1. Sie können die Kommunikation zwischen Ihrer JAX-RS-Anwendung und Clients sichern, die die Anwendung mit SSL-Sicherheit auf Transportebene (Secure Sockets Layer) aufrufen.
  8. Assemblieren Sie JAX-RS-Webanwendungen.
    1. Nachdem Sie die Java-Klassendateien für Ihre JAX-RS-Webanwendung entwickelt und die Datei "web.xml" bearbeitet haben, um das JAX-RS-Servlet zu aktivieren, können Sie die Anwendung assemblieren. Assemblieren Sie die Webanwendung in einem WAR-Paket (Webarchiv). Sie können das WAR-Paket in einem EAR-Paket (Unternehmensarchiv) assemblieren, falls dies erforderlich ist.
  9. Implementieren Sie JAX-RS-Webanwendungen.
    1. Wenn Sie die JAX-RS-Webanwendung assembliert haben, müssen Sie das WAR-Paket oder das EAR-Paket auf dem Anwendungsserver implementieren.
  10. Verwalten Sie die sichere JAX-RS-Anwendung.
    1. Nachdem Sie die Sicherheitsmechanismen, wie z. B. die HTTP-Basisauthentifizierung oder die rollenbasierten Berechtigungsvorgaben für Ihre REST-Ressourcen implementiert haben, können Sie die Administrationskonsole verwenden, um Ihre JAX-RS-Anwendungen zu verwalten, indem Sie Benutzern, Gruppen oder Sondersubjekten definierte Rollen zuordnen.

Ergebnisse

Sie haben eine sichere JAX-RS-Webanwendung auf dem Anwendungsserver entwickelt und implementiert. Sie können die Administrationskonsole auch zur Verwaltung Ihrer sicheren JAX-RS-Anwendung verwenden.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



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