Java Authentication Service Provider Interface for Containers (JASPIC)

La spécification JASPIC (Java™ Authentication Service Provider Interface for Containers) définit une interface de fournisseur de services (SPI). Les fournisseurs d'authentification, qui implémentent des mécanismes d'authentification de message, peuvent être intégrés dans des conteneurs ou des contextes d'exécution de traitement de message client ou serveur.

À propos de cette tâche

Les fournisseurs d'authentification intégrés via l'interface JASPIC fonctionnent sur les messages réseau fournis par leur conteneur appelant. Les fournisseurs transforment les messages sortants afin que la source du message puisse être authentifiée par le conteneur de réception et que le destinataire du message puisse être authentifié par l'expéditeur du message. Les messages entrants sont authentifiés et renvoyés à leur conteneur appelant, qui est l'identité établie à la suite de l'authentification du message.

JSR 196 définit une interface SPI standard et normalise la façon dont un module d'authentification est intégré dans des conteneurs Java EE . Un modèle de traitement des messages et les détails d'un certain nombre de points d'interaction sur le client et le serveur sont fournis. Un conteneur Web compatible utilise l'interface SPI à ces points pour déléguer le traitement de la sécurité des messages à un module d'authentification de serveur (SAM).

Liberty prend en charge l'utilisation de fournisseurs d'authentification tiers compatibles avec le conteneur de servlet spécifié dans jaspic-1.1. Le conteneur de servlet définit les interfaces utilisées par l'environnement d'exécution de sécurité en collaboration avec le conteneur Web. Ces modules d'authentification démarrent avant et après le traitement d'une demande Web par une application. L'authentification qui utilise des modules JASPIC est utilisée uniquement lorsque JASPIC est activé dans la configuration de la sécurité.

Procédure

  1. Créez un projet de bundle OSGi pour développer la classe Java.
    Il se peut que votre projet comporte des erreurs de compilation. Pour corriger ces erreurs, vous devez importer deux packages, javax.security.auth.message et com.ibm.wsspi.security.jaspi. La plateforme cible doit être éditée pour ajouter les fichiers JAR manquants dans les listes com.ibm.ws.security.jaspic à partir du répertoire <cics_install>/wlp/lib et com.ibm.ws.javaee.jaspic.<version_number> à partir du répertoire <cics_install>/wlp/dev/api/spec . Envoyez-les par FTP à votre système de développement et ajoutez-les au chemin de génération.

    Editez le fichier MANIFEST.MF pour importer le package manquant.

    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: com.example.myjaspic.osgiBundle
    Bundle-SymbolicName: com.example.myjaspic.osgiBundle
    Bundle-Version: 1.0.0
    Bundle-RequiredExecutionEnvironment: JavaSE-1.7
    Import-Package: com.ibm.wsspi.security.jaspi;version="1.0.13",
    javax.security.auth.message;version="1.0.0",
    javax.security.auth.message.callback;version="1.0.0",
    javax.security.auth.message.config;version="1.0.0",
    javax.security.auth.message.module;version="1.0.0",
    javax.servlet;version="2.7.0",
    javax.servlet.http;version="2.7.0"
    Service-Component: myjaspicExampleComponent.xml

    Exemple de code XML de composant de service, myjaspicExampleComponent.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="com.example.myjaspic.osgiBundle">
        <implementation class="com.example.myjaspic.osgiBundle.TestJASPICProviderService"/>
        <service>
            <provide interface="com.ibm.wsspi.security.jaspi.ProviderService"/>
        </service>
    </scr:component>
  2. Créez un projet de fonction Liberty pour ajouter le bundle OSGi précédent à la fonction utilisateur Liberty, sous Subsystem-Content dans le fichier manifeste de la fonction.
  3. Editez le manifeste de fonction pour ajouter le contenu de sous-système OSGi nécessaire: com.ibm.websphere.appserver.jaspic-1.1; type="osgi.subsystem.feature".
    Subsystem-ManifestVersion: 1.0
    IBM-Feature-Version: 2
    IBM-ShortName: jaspic11CICSLiberty-1.0
    Subsystem-SymbolicName: com.example.myjaspic.libertyFeature;visibility:=public
    Subsystem-Version: 1.0.0.201611081617
    Subsystem-Type: osgi.subsystem.feature
    Subsystem-Content: com.example.myjaspic.osgiBundle;version="1.0.0",
      com.ibm.websphere.appserver.jaspic-1.1;type="osgi.subsystem.feature",
      com.ibm.websphere.appserver.servlet-3.0;ibm.tolerates:="3.1";type="osgi.subsystem.feature"
    Manifest-Version: 1.0

    Si vous devez ajouter un autre contenu de sous-système, vous devez ajouter au moins un space avant de saisir le contenu. Si vous n'ajoutez pas de space, CICS® renvoie java.lang.IllegalArgumentException.

  4. Exporter le projet de fonction Liberty en tant que fichier ESA (Liberty Feature).
  5. FTP le fichier ESA vers zFS.
  6. Utilisez installUtility pour installer le fichier ESA.
    ./wlpenv installUtility install myFeature.esa
  7. Ajoutez la fonction jaspic-1.1 et le fichier ESA contenant le fournisseur JASPIC en tant que fonction utilisateur à server.xml.
    <feature>jaspic-1.1</feature>
    <feature>usr:jaspic11CICSLiberty-1.0</feature>