Implémentation d'un jeton d'authentification personnalisé pour la propagation des attributs de sécurité

Cette rubrique explique comment créer votre propre implémentation de jeton d'authentification, laquelle est définie dans le sujet de la connexion et propagée en aval.

Pourquoi et quand exécuter cette tâche

Cette implémentation permet de spécifier un jeton d'authentification qui peut être utilisé par un module ou une application de connexion personnalisé. Envisagez d'écrire votre propre implémentation si vous souhaitez accomplir l'une des tâches suivantes :
  • Isoler vos attributs au sein de votre propre implémentation.
  • Sérialiser les informations à l'aide de la sérialisation personnalisée. Vous devez désérialiser les octets au niveau de la cible et rajouter des informations sur l'unité d'exécution. Cette tâche peut aussi inclure un codage et un décodage.
  • Affecter l'unicité globale du sujet à l'aide de l'API getUniqueID.
Important : Les implémentations de jetons d'authentification personnalisées ne sont pas utilisées par le module d'exécution de sécurité de WebSphere Application Server pour imposer l'authentification. Le module d'exécution de sécurité des applications WebSphere utilise uniquement ce jeton dans les situations suivantes.
  • Appelez la méthode getBytes pour la sérialisation.
  • Appelez la méthode getForwardable pour déterminer si le jeton d'authentification doit être sérialisé.
  • Appelez la méthode getUniqueId pour l'unicité.
  • Appelez les méthodes getName et getVersion pour ajouter des octets sérialisés au conteneur de jeton envoyé en aval.
Toutes les autres utilisations sont des implémentations personnalisées.

Pour implémenter un jeton d'authentification personnalisé, vous devez suivre la procédure ci-après :

Procédure

  1. Ecrivez une implémentation personnalisée de l'interface AuthenticationToken. Différentes méthodes sont disponibles pour implémenter l'interface AuthenticationToken. Toutefois, assurez-vous que les méthodes requises par l'interface AuthenticationToken et l'interface du jeton sont entièrement implémentées. Une fois que vous avez implémenté cette interface, vous pouvez la placer dans le répertoire racine_serveur_app/classes. Une autre solution consiste à placer la classe dans un répertoire privé quelconque. Toutefois, assurez-vous que le chargeur de classe WebSphere Application Server peut localiser la classe et qu'il possède les droits d'accès appropriés. Vous pouvez ajouter le fichier JAR (archive Java™) ou le répertoire contenant cette classe dans le fichier server.policy de façon à ce que la classe dispose des droits requis par le code du serveur.
    Conseil : Tous les types de jeton définis par l'infrastructure de propagation ont des interfaces similaires. Les types de jetons sont des interfaces de marqueur qui implémentent l'interface com.ibm.wsspi.security.token.Token. Cette interface définit la plupart des méthodes. Si vous prévoyez d'implémenter plusieurs types de jeton, envisagez la création d'une classe abstraite qui implémente l'interface com.ibm.wsspi.security.token.Token. Toutes vos implémentations de jeton, y compris le jeton d'authentification, peuvent étendre la classe abstraite. La majeure partie du travail est alors terminée.

    Pour obtenir un exemple d'implémentation de l'interface AuthenticationToken, voir Exemple : Implémentation com.ibm.wsspi.security.token.AuthenticationToken.

  2. Ajoutez et recevez le jeton d'authentification personnalisé pendant les connexions WebSphere Application Server. En général, cette tâche s'accomplit en ajoutant un module de connexion personnalisé aux diverses configurations de connexion d'applications et de système. Cependant, pour désérialiser les informations, vous devez connecter un module de connexion personnalisé. Une fois que l'objet est instancié dans le module de connexion, vous pouvez l'ajouter au sujet pendant la méthode commit.

    Si vous souhaitez uniquement ajouter au sujet des informations à propager , voir Propagation d'un objet sérialisable personnalisé Java pour la propagation des attributs de sécurité. Si vous souhaitez garantir la propagation des informations, effectuer votre propre sérialisation personnalisée ou spécifier l'unicité pour les besoins de mise en mémoire cache du sujet, envisagez d'écrire votre propre implémentation de jeton d'authentification.

    L'exemple de code fourni dans Exemple : Module de connexion de jeton d'authentification personnalisé indique comment déterminer si la connexion est initiale ou s'il s'agit d'une connexion par propagation. La différence entre ces types de connexion concerne le fait que le rappel WSTokenHolderCallback contient des données de propagation ou non. Si le rappel ne contient pas de données de propagation, initialisez une nouvelle implémentation de jeton d'authentification personnalisée et définissez-la dans le sujet. Si le rappel contient des données de propagation, recherchez votre instance TokenHolder de jeton d'authentification personnalisée spécifique, reconvertissez le tableau d'octets en votre objet AuthenticationToken personnalisé et redéfinissez-le dans le sujet. L'exemple de code montre les deux instances.

    Vous pouvez faire en sorte que votre jeton d'authentification soit en lecture seule dans la phase de validation du module de connexion. Si vous ne définissez pas le jeton en lecture seule, des attributs peuvent être ajoutés dans vos applications.

  3. Ajoutez votre module de connexion personnalisé aux configurations de connexion du système WebSphere Application Server Application Server qui contiennent déjà le module de connexion com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule pour la réception des versions sérialisées de votre jeton d'autorisation personnalisé.

    Etant donné que ce module de connexion repose sur des informations situées dans l'état partagé ajouté par le module de connexion com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule, ajoutez ce dernier après le module de connexion com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule. Pour savoir comment ajouter votre module de connexion personnalisé aux configurations de connexion, voir Développement de modules de connexion personnalisés pour une configuration de connexion système pour JAAS.

Résultats

Une fois ces instructions suivies, vous avez implémenté un jeton d'authentification personnalisé.

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=tsec_custauthentimpl
Nom du fichier : tsec_custauthentimpl.html