Implémentation d'applications JAX-RS sécurisées

L'environnement d'exécution IBM® pour l'API Java™ API pour les services Web RESTful (JAX-RS) est géré par un servlet issu du projet Apache Wink. Dans l'environnement WebSphere Application Server, le cycle de vie des servlets est géré dans le conteneur Web. Par conséquent, les services de sécurité fournis par le conteneur Web sont applicables aux ressources REST déployées dans WebSphere Application Server.

Pourquoi et quand exécuter cette tâche

Vous pouvez définir et ajouter des contraintes de sécurité dans les ressources en utilisant les outils utilisés pour assembler les applications REST. Ces contraintes sont capturées dans le descripteur de déploiement web J2EE associé à l'application. La liste suivante décrit les définitions de sécurité que vous pouvez inclure dans le descripteur de déploiement :
  • Authentification des utilisateurs lors de l'appel des ressources REST incorporées dans l'application, notamment :
    • Authentification HTTP de base
    • Authentification de connexion par formulaire
  • Contrôle d'autorisation sur les ressources REST, tel que défini par les modèles d'URL des ressources
  • Utilisation de SSL pour le transport lors de l'appel des ressources REST
  • Utilisation programmatique de l'objet SecurityContext pour déterminer l'identité et les rôles des utilisateurs
Tous les mécanismes de sécurité pris en charge par le conteneur Web sont applicables aux ressources REST, notamment l'utilisation du mécanisme d'authentification SPNEGO Kerberos.

Procédure

  1. Configurez l'environnement de développement.
    1. Avant de développer des applications JAX-RS, vous devez configurer l'environnement de déploiement en ajoutant les bibliothèques JAX-RS dans le chemin d'accès aux classes.
  2. Définissez les ressources dans les applications Web JAX-RS.
    1. Les ressources sont les principaux blocs fonctionnels d'un service RESTful. Les ressources peuvent contenir des données statiques ou mises à jour dynamiquement. Un manuel, une commande et une collection d'utilisateurs sont des exemples de ressources d'une application de librairie en ligne. En identifiant les ressources dans l'application, vous améliorez l'utilité du service et facilitez son développement.
  3. Configurez l'application JAX-RS.

    Vous pouvez configurer les applications JAX-RS de plusieurs façons, selon vos besoins. Pour tirer parti de la fonctionnalité Java EE (Java Platform, Enterprise Edition) 6, vous pouvez utiliser les fonctions d'analyse des annotations. L'analyse des annotations permet d'ignorer une sous-classe JAX-RS javax.ws.rs.core.Application ou de disposer d'une sous-classe javax.ws.rs.core.Application à définition minimale. Sinon, vous pouvez aussi spécifier le servlet ou le filtre IBM JAX-RS si vous préférez utiliser la fonction qu'ils contiennent.

    En employant l'une des méthodes de configuration JAX-RS version 1.1, vous pouvez ignorer une sous-classe javax.ws.rs.core.Application dans votre application ou disposer d'une sous-classe javax.ws.rs.core.Application qui renvoie un ensemble vide de classes pour informer l'environnement d'exécution JAX-RS qu'il doit détecter et utiliser toutes les classes JAX-RS de l'application. Cette méthode peut être utile pour ne pas avoir à ajouter manuellement chaque classe JAX-RS pertinente à une sous-classe javax.ws.rs.core.Application au cours du développement de l'application.

    En indiquant le servlet ou le filtre IBM JAX-RS spécifique, vous pouvez bénéficier d'un comportement IBM JAX-RS particulier et le garantir. Par exemple, l'utilisation du filtre IBM JAX-RS peut faciliter le développement d'une application Web faisant appel à un mélange de ressources JAX-RS et de fichiers JSP (JavaServer Pages) avec les mêmes modèles d'URL.

    Bien qu'une méthode de configuration JAX-RS version 1.1 prenne en charge le fichier web.xml facultatif, le fichier web.xml est obligatoire pour indiquer des contraintes ou des rôles de sécurité ou pour tirer parti de fonctions activées avec un fichier web.xml.

    Choisissez l'une des trois méthodes suivantes pour configurer votre application JAX-RS :

    • Configuration d'applications JAX-RS selon les méthodes JAX-RS 1.1

      Utilisez cette méthode pour employer les fonctions d'analyse des annotations ou les méthodes de configuration JAX-RS 1.1. Vous pouvez utiliser les fonctions d'analyse des annotations pour promouvoir la portabilité de l'application, réduire la quantité de code de configuration ou modifier l'application dynamiquement sans changer son code.

    • Configuration du fichier web.xml pour les servlets JAX-RS

      Utilisez cette méthode pour indiquer des fonctions activées à l'aide des paramètres d'initialisation du servlet, afin d'obtenir un changement de comportement et le servlet IBM JAX-RS. Lors de l'utilisation de servlets, vous pouvez définir un chemin de servlet dans le fichier web.xml qui est ajouté à l'URL de base.

    • Configuration du fichier web.xml pour les filtres JAX-RS

      Utilisez cette méthode pour employer le filtre lorsque vous avez des fichiers JSP, d'autres servlets et filtres ainsi que des ressources JAX-RS incluant plusieurs masques d'URL. Des filtres peuvent être définis dans le fichier web.xml pour indiquer les URL à partir desquelles le filtre peut être appelé.

  4. Sécurisez les applications JAX-RS dans le conteneur Web.
    1. En utilisant les service de sécurité disponibles pour le conteneur Web, vous pouvez sécuriser les ressources REST en configurant des mécanismes de sécurité qui définissent l'authentification des utilisateurs, la sécurité du transport, le contrôle des autorisations et les mappages d'utilisateurs à des rôles.
  5. Sécurisez les ressources JAX-RS en utilisant des annotations.
    1. Vous pouvez sécuriser les ressources JAX-RS en utilisant des annotations qui définissent les paramètres de sécurité. Vous pouvez utiliser les annotations @PermitAll, @DenyAll et @RolesAllowed pour remplacer la configuration des contraintes de sécurité définies dans le fichier web.xml.
  6. (Facultatif) Sécurisez les ressources JAX-RS en aval.
    1. Les ressources en aval JAX-RS peuvent être sécurisées par la configuration de la méthode d'authentification BasicAuth et l'utilisation du gestionnaire de sécurité LTPA JAX-RS afin de profiter de la connexion unique pour l'authentification utilisateur.
  7. (Facultatif) Sécurisez les clients JAX-RS avec SSL.
    1. Vous pouvez sécuriser les communications entre l'application JAX-RS et les clients qui appellent l'application à l'aide du protocole SSL/TLS.
  8. Assemblez les applications Web JAX-RS.
    1. Après avoir développé les fichiers de classe Java de l'application Web JAX-RS et modifié le fichier web.xml pour activer le servlet JAX-RS, vous pouvez assembler l'application. Assemblez-la dans un package WAR (archive WAR). Vous pouvez assembler le package WAR dans un package EAR (Enterprise Archive), le cas échéant.
  9. Déployez les applications Web JAX-RS.
    1. Après avoir assemblé l'application Web JAX-RS, vous devez déployer le package WAR (fichier d'archive Web) ou EAR (fichier d'archive d'entreprise) sur le serveur d'applications.
  10. Administrez l'application JAX-RS sécurisée.
    1. Après avoir implémenté les mécanismes de sécurité, telle que l'authentification HTTP ou des contraintes d'autorisation basées sur des rôles dans les ressources REST, vous pouvez utiliser la console d'administration pour administrer les applications JAX-RS en mappant des rôles définis aux utilisateurs, à des groupes ou à des sujets spéciaux.

Résultats

Vous avez développé et déployé une application Web JAX-RS web sécurisée sur le serveur d'applications. Vous pouvez également utiliser la console d'administration pour administrer l'application JAX-RS sécurisée.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_impl_securejaxrs
Nom du fichier : twbs_jaxrs_impl_securejaxrs.html