Migration d'une connexion par programmation CORBA (Common Object Request Broker Architecture) vers JAAS (Java Authentication and Authorization Service)

Utilisez cette rubrique à titre d'exemple pour effectuer une connexion par programmation à l'aide des API de connexion par programmation CORBA.

Avant de commencer

[AIX Solaris HP-UX Linux Windows][IBM i]Le présent document décrit les API de connexion par programmation CORBA (Common Object Request Broker Architecture) qu'il est déconseillé d'utiliser aujourd'hui. Il présente les API fournies en remplacement par JAAS. WebSphere Application Server prend intégralement en charge le service JAAS (Java™ Authentication and Authorization Service) en tant qu'API de connexion par programmation. Pour plus d'informations, voir Configuration de connexions par programmation pour JAAS (Java Authentication and Authorization Service) et Développement de connexions par programmation avec le service JAAS (Java Authentication and Authorization).

[z/OS]Les API CORBA (Common Object Request Broker Architecture) ne sont pas prises en charge dans l'environnement WebSphere Application Server for z/OS. Si vous migrez une application d'un autre produit WebSphere Application Server vers WebSphere Application Server for z/OS, vous devez connaître les API de sécurité qui ne sont plus utilisées dans la version 6.0.x. Si vous voulez utiliser ces applications sur WebSphere Application Server for z/OS version 8.0, vous devez effectuer la migration vers Java Authentication and Authorization Service (JAAS).

La liste suivante regroupe les API de connexion par programmation CORBA.
  • [AIX Solaris HP-UX Linux Windows][z/OS]${racine.installation.utilisateur}/installedApps/sampleApp.ear/default_app.war/WEB-INF/classes/LoginHelper.java.
  • [AIX Solaris HP-UX Linux Windows][z/OS]${racine.installation.utilisateur}/installedApps/sampleApp.ear/default_app.war/WEB-INF/classes/ServerSideAuthenticator.java.
  • [IBM i]racine_profil/installedApps/sampleApp.ear/default_app.war/WEB-INF/classes/ServerSideAuthenticator.java.
  • [AIX Solaris HP-UX Linux Windows][IBM i]org.omg.SecurityLevel2.Credentials. Cette API est fournie avec le produit mais il est déconseillé de l'utiliser.

Les API de WebSphere Application Server sont des API JAAS standard associées à l'implémentation d'interfaces JAAS standard.

[z/OS]Les API prises en charge dans WebSphere Application Server for z/OS sont des API JAAS standard associées à l'implémentation d'interfaces JAAS standard avec quelques extensions mineures.

Les informations ci-après sont un récapitulatif ; Reportez-vous à la documentation JAAS applicable à votre plateforme sur le site : http://www.ibm.com/developerworks/java/jdk/security/ .

  • API de connexion par programmation.
    • javax.security.auth.login.LoginContext
    • Interface javax.security.auth.callback.CallbackHandler : le produit WebSphere Application Server fournit l'implémentation suivante de l'interface javax.security.auth.callback.CallbackHandler :
      com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl
      Fournit un gestionnaire CallbackHandler sans invite lorsque l'application transmet les données d'authentification de base (ID utilisateur, mot de passe et domaine de sécurité) ou le jeton aux modules de connexion du produit. Cette API est recommandée pour la connexion côté serveur.
      [AIX Solaris HP-UX Linux Windows][IBM i]com.ibm.websphere.security.auth.callback.WSGUICallbackHandlerImpl
      [AIX Solaris HP-UX Linux Windows][IBM i]Fournit un gestionnaire CallbackHandler avec invite de connexion pour la collecte des données d'authentification de base (ID utilisateur, mot de passe et domaine de sécurité). Cette API est recommandée pour la connexion côté client.

      Si vous l'utilisez côté serveur, le serveur est bloqué pour la saisie des données.

      com.ibm.websphere.security.auth.callback.WSStdinCallbackHandlerImpl
      Fournit un gestionnaire CallbackHandler avec invite de connexion stdin pour la collecte des données d'authentification de base (ID utilisateur, mot de passe et domaine de sécurité). Cette API est recommandée pour la connexion côté client.
      Remarque : Si vous l'utilisez côté serveur, le serveur est bloqué pour la saisie des données.
    • Interface javax.security.auth.callback.Callback :
      javax.security.auth.callback.NameCallback
      Cette interface est fournie par le service JAAS pour transmettre le nom d'utilisateur à l'interface des modules de connexion.
      javax.security.auth.callback.PasswordCallback
      Cette interface est fournie par le service JAAS pour transmettre le mot de passe à l'interface des modules de connexion.
      com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl
      Interface fournie par le produit pour une connexion par jeton. Avec cette API, une application peut transmettre un tableau des octets de jeton à l'interface des modules de connexion.
    • Interface javax.security.auth.spi.LoginModule

      WebSphere Application Server fournit une implémentation de modules de connexion pour la connexion côté client et côté serveur. Pour plus de détails, consultez Configuration de connexions par programmation pour JAAS (Java Authentication and Authorization Service).

  • javax.security.Subject :
    [AIX Solaris HP-UX Linux Windows][IBM i]com.ibm.websphere.security.auth.WSSubject
    [AIX Solaris HP-UX Linux Windows][IBM i]Extension fournie par le produit pour appeler les ressources J2EE à l'aide de justificatifs dans l'interface javax.security.Subject.
    [z/OS]com.ibm.websphere.security.auth.WSSubject
    [z/OS]Extension fournie par le produit pour appeler les ressources J2EE à l'aide de justificatifs dans l'interface javax.security.Subject.

    Une application doit appeler la méthode WSSubject.doAs pour permettre l'accès aux ressources J2EE à l'aide du sujet généré par un appel explicite d'un module de connexion WebSphere Application Server.

    com.ibm.websphere.security.cred.WSCredential
    Une fois que la connexion JAAS est établie à l'aide des interfaces des modules de connexion WebSphere Application Server, un justificatif com.ibm.websphere.security.cred.WSCredential est créé et stocké dans le sujet.
    com.ibm.websphere.security.auth.WSPrincipal
    Un principal qui est créé et stocké dans un sujet authentifié par l'interface des modules de connexion WebSphere Application Server.

Procédure

  1. [AIX Solaris HP-UX Linux Windows][IBM i]Utilisez les données suivantes à titre d'exemple pour effectuer une connexion par programmation à l'aide des API de connexion par programmation CORBA : Les API de connexion par programmation CORBA sont remplacées par la connexion JAAS.
    Remarque : L'API LoginHelper utilisée dans l'exemple suivant est obsolète dans WebSphere Application Server Version 9.0 et sera supprimée dans une future édition. Il est conseillé d'utiliser les API de connexion par programmation JAAS présentées à l'étape suivante.
    public class TestClient {
    ...
    private void performLogin() {
    // Get the ID and password of the user.
    String userid = customGetUserid();
    String password = customGetPassword();
    
    // Create a new security context to hold authentication data.
    LoginHelper loginHelper = new LoginHelper();
    try {
    // Provide the ID and password of the user for authentication.
    org.omg.SecurityLevel2.Credentials credentials = 
    loginHelper.login(userid, password);
    
    // Use the new credentials for all future invocations.
    loginHelper.setInvocationCredentials(credentials);
    // Retrieve the name of the user from the credentials
    // so we can tell the user that login succeeded.
    
    String username = loginHelper.getUserName(credentials);
    System.out.println("Security context set for user: "+username);
    } catch (org.omg.SecurityLevel2.LoginFailed e) {
    // Handle the LoginFailed exception.
    }
    }
    ...
    }
  2. Utilisez l'exemple suivant pour migrer les API de connexion par programmation CORBA vers les API de la connexion par programmation JAAS.

    L'exemple suivant suppose que le code de l'application dispose des droits d'accès de la sécurité Java 2 nécessaires. Pour plus d'informations, voir Configuration de connexions par programmation pour JAAS (Java Authentication and Authorization Service), Protection des ressources système et des API (sécurité Java 2) pour le développement des applications, et la documentation JAAS à l'adresse http://www.ibm.com/developerworks/java/jdk/security/.

    public class TestClient {
    ...
    private void performLogin() {
    // Create a new JAAS LoginContext.
    javax.security.auth.login.LoginContext lc = null;
    
    try {
    // Use GUI prompt to gather the BasicAuth data.
    lc = new javax.security.auth.login.LoginContext("WSLogin",
    new com.ibm.websphere.security.auth.callback.WSGUICallbackHandlerImpl());
    
    // create a LoginContext and specify a CallbackHandler implementation
    // CallbackHandler implementation determine how authentication data is collected
    // in this case, the authentication date is collected by  login prompt
    //   and pass to the authentication mechanism implemented by the LoginModule.
    } catch (javax.security.auth.login.LoginException e) {
    System.err.println("ERROR: failed to instantiate a LoginContext and the exception: " 
    + e.getMessage());
    e.printStackTrace();
    
    // may be javax.security.auth.AuthPermission "createLoginContext" is not granted
    //   to the application, or the JAAS Login Configuration is not defined.
    }
    
    if (lc != null)
    try {
    lc.login();  // perform login
    javax.security.auth.Subject s = lc.getSubject();
    // get the authenticated subject
    
    // Invoke a J2EE resources using the authenticated subject
    com.ibm.websphere.security.auth.WSSubject.doAs(s,
    new java.security.PrivilegedAction() {
    public Object run() {
    try {
    bankAccount.deposit(100.00);  // where bankAccount is an protected EJB
    } catch (Exception e) {
    System.out.println("ERROR: error while accessing EJB resource, exception: " 
    + e.getMessage());
    e.printStackTrace();
    }
    return null;
    }
    }
    );
    
    // Retrieve the name of the principal from the Subject
    // so we can tell the user that login succeeded,
    // should only be one WSPrincipal.
    java.util.Set ps = 
    s.getPrincipals(com.ibm.websphere.security.auth.WSPrincipal.class);
    java.util.Iterator it = ps.iterator();
    while (it.hasNext()) {
    com.ibm.websphere.security.auth.WSPrincipal p =
    (com.ibm.websphere.security.auth.WSPrincipal) it.next();
    System.out.println("Principal: " + p.getName());
    }
    } catch (javax.security.auth.login.LoginException e) {
    System.err.println("ERROR: login failed with exception: " + e.getMessage());
    e.printStackTrace();
    
    // login failed, might want to provide relogin logic
    }
    }
    ...
    }

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_migratecorba
Nom du fichier : tsec_migratecorba.html