Intégration de la sécurité WebSphere Application Server à l'aide d'un intercepteur

La présente section décrit la création d'un intercepteur de connexion unique à intégrer à la sécurité WebSphere Application Server.

Avant de commencer

Vous devez être configuré dans WebSphere Application Server avec des données d'identification utilisateur LDAP.
Remarque : Vous devez définir le domaine LDAP Build Forge contenant les utilisateurs WebSphere Application Server comme serveur LDAP "par défaut". Pour ce faire, accédez à ce domaine LDAP Build Forge et sélectionnez Définir par défaut.

Pourquoi et quand exécuter cette tâche

L'intercepteur de connexion unique au formulaire authentifie les utilisateurs à l'aide d'une page de connexion basée sur un formulaire. L'exemple suivant illustre le mode de création d'un intercepteur de connexion unique personnalisé. L'intercepteur personnalisé utilise une classe d'intercepteur personnalisée.

La classe d'intercepteur accède à WebSphere Application Server pour obtenir des données d'identification authentifiées. Une fois ces données obtenues, elles sont mises en mémoire cache. Les connexions ultérieures utilisent les données d'identifications en mémoire cache.

Protection de votre service d'autorisation (AuthServlet)

Build Forge exécute normalement ses services en tant qu'application sur le serveur d'applications Apache Tomcat fourni.

Pourquoi et quand exécuter cette tâche

Les instructions ci-après vous permettent de configurer Build Forge pour utiliser WebSphere Application Server au lieu de Tomcat. Suivez les instructions figurant dans la section Utilisation de WebSphere Application Server au lieu d'Apache Tomcat, avec une exception : le fichier jas.war contient un fichier nommé web.xml que vous devez extraire et modifier pour ajouter une contrainte de sécurité. Avant d'installer cette application sous WebSphere Application Server, le fichier war doit être régénéré après avoir été modifié pour utiliser la version protégée.

Pour régénérer le fichier war, procédez comme suit :

Procédure

  1. Accédez au répertoire contenant votre fichier jas.war (le répertoire webapps dans votre fichier principal de serveur Tomcat). Copiez ce fichier dans un emplacement temporaire, tel que C:\jas.
  2. Développez le fichier WAR. A partir de la ligne de commande, exécutez la commande : %IBM_JAVA_HOME%\jar –xvf jas.war pour développer le contenu du fichier war.
    Remarque : Java doit être disponible et la variable d'environnement IBM_JAVA_HOME doit avoir été créée.
  3. Sauvegardez le fichier jas.war pour le récupérer ultérieurement :
    1. Windows : copy jas.war jas.war.bak
    2. UNIX ou Linux : cp jas.war jas.war.bak
  4. Recherchez le fichier web.xml dans le répertoire WEB-INF (à partir des fichiers développés dans le fichier war). Editez-le pour ajouter un contexte de sécurité. Par exemple, ajoutez les lignes suivantes à la fin du fichier, juste avant la balise </web-app> :
    <security-constraint id="SecurityConstraint_1">
             <web-resource-collection id="WebResourceCollection_1">
                <web-resource-name>/*</web-resource-name>
                <url-pattern>/AuthServlet/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
             </web-resource-collection>
             <auth-constraint id="AuthConstraint_1">
                <description>myconstraint:+:</description>
                <role-name>User</role-name>
             </auth-constraint>
             <user-data-constraint id="UserDataConstraint_1">
                <transport-guarantee>NONE</transport-guarantee>
             </user-data-constraint>
          </security-constraint>
          <login-config id="LoginConfig_1">
             <auth-method>BASIC</auth-method>
             <realm-name>domaine-qualifié-complet</realm-name>
          </login-config>
          <security-role id="SecurityRole_1">
             <role-name>User</role-name>
          </security-role>
    Remarque : La valeur de <auth-method> peut être toute méthode d'authentification J2EE prise en charge par WebSphere Application Server. La méthode d'authentification la plus commune est FORM, qui requiert des paramètres de configuration supplémentaires. Consultez votre documentation WebSphere Application Server pour obtenir des instructions sur la configuration de FORM dans votre application.
  5. A partir d'une ligne de commande, régénérez le fichier war (appelé à partir du même répertoire que celui dans lequel il a été extrait) en exécutant la commande suivante :
    %IBM_JAVA_HOME%\jar –cvf  jas.war

    Vous devez à présent disposer d'une nouvelle version de jas, qui a été modifié pour protéger l'AuthServlet avec des contraintes J2EE. Suivez les instructions d'installation pour l'exécution avec WebSphere Application Server et installez cette version de jas.war via Applications->Installation d'une nouvelle application. Assurez-vous que Build Forge n'est pas en cours d'exécution lors de la configuration de WebSphere Application Server.

    Après l'installation, accédez à Applications > Applications d'entreprise. Cliquez sur le nom de l'application pour la configurer. Sous Propriétés détaillées, cliquez sur le lien Mappage d'un rôle de sécurité à un utilisateur/groupe. Cochez la case Tous authentifiés pour Utilisateur. Après avoir effectué cette modification, sauvegardez-la dans la configuration principale.

    La sécurité des applications doit également être activée sous WebSphere Application Server. Pour ce faire, accédez à Sécurité > ->Administration, applications et infrastructure sécurisées. Veillez à ce que la case Activer la sécurité de l'application soit cochée.

    A ce stade, redémarrez WebSphere Application Server puis redémarrez le serveur Build Forge.
    Remarque : Le fichier jas démarre désormais dans le cadre du processus de démarrage de WebSphere Application Server ; démarrez donc WebSphere Application Server avant Build Forge.

Création d'une configuration de connexion unique

Créez une configuration de connexion unique pour utiliser l'intercepteur.

Procédure

  1. Dans la console Build Forge, accédez à Administration > Sécurité > Connexion unique.
  2. Cliquez sur Ajouter configuration SSO.
  3. Définissez les propriétés de la configuration.
    • Nom - entrez un nom pour cette configuration.
    • Classe Java - entrez com.buildforge.services.server.sso.was.WebSphereSSOInterceptor
    • Actif - sélectionnez Oui.
  4. Cliquez sur Sauvegarder.
  5. Déplacez cette configuration pour qu'elle apparaisse en premier dans la liste. Dans le menu, à gauche du nom de la configuration, sélectionnez Déplacer au début.

Mappage des utilisateurs LDAP ou d'un groupe LDAP à des utilisateurs locaux

Mappez les utilisateurs LDAP ou un groupe LDAP à des utilisateurs locaux, comme l'utilisateur root local par exemple.

Pourquoi et quand exécuter cette tâche

Après avoir créé un intercepteur de connexion unique WebSphere Application Server, vous pouvez configurer l'intercepteur pour qu'il :
  • Mappe les utilisateurs LDAP à des utilisateurs locaux, y compris l'utilisateur root.
  • Mappe un groupe LDAP à un utilisateur local, tel que l'utilisateur root.

Pour configurer un mappage, définissez un environnement, puis référencez cet environnement dans l'intercepteur.

Définition d'un environnement

Procédure

  1. Dans la console Build Forge, cliquez sur Environnements.
  2. Spécifiez un nom pour l'environnement, puis cliquez sur Enregistrer l'environnement.
  3. Pour mapper des utilisateurs LDAP à des utilisateurs locaux, définissez et enregistrez les variables suivantes :
    1. Définissez ldap_user_list_mapping sur utilisateur1_LDAP|utilisateur1_local;utilisateur2_LDAP|utilisateur2_local;utilisateur3_LDAP|utilisateur3_local
    2. Définissez ldap_realm_name sur nom_domaine_LDAP
    Par exemple, supposons que l'environnement suivant soit défini :
    	ldap_user_list_mapping = utilisateur1|root;utilisateur2|root;utilisateur3|root
    	ldap_realm_name = bluepages.ibm.com:389

    Dans ce cas, l'utilisateur1, l'utilisateur2 et l'utilisateur3 de LDAP sont tous mappés vers le superutilisateur local.

  4. Pour mapper des membres d'un groupe LDAP spécifique à un utilisateur local, définissez et enregistrez les variables suivantes :
    1. Définissez ldap_group_name_mapping sur groupe_LDAP|utilisateur_local
    2. Définissez ldap_realm_name sur nom_domaine_LDAP
    Remarque : Si vous utilisez les deux types de mappage, le mappage des utilisateurs prévaut sur le mappage de groupe.
    Pour obtenir un exemple de mappage de groupe, supposons que l'environnement suivant soit défini :
    	ldap_group_name_mapping = cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com|root
    	ldap_realm_name = bluepages.ibm.com:389

    Dans ce cas, les utilisateurs qui sont membres du groupe LDAP cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com sont mappés au superutilisateur local.

Référencement de l'environnement

Procédure

  1. Dans la console Build Forge, cliquez sur Administration > Sécurité > Connexion unique.
  2. Cliquez sur le nom de l'intercepteur de connexion unique WebSphere Application Server.
  3. Définissez la propriété Environnement pour la configuration pour l'environnement que vous venez de définir.
  4. Cliquez sur Sauvegarder.
  5. Déplacez cette configuration pour qu'elle apparaisse en premier dans la liste. Dans le menu, à gauche du nom de la configuration, sélectionnez Déplacer au début.

Exécution de l'intercepteur de connexion unique personnalisé

Vous pouvez maintenant vous connecter en utilisant vos nouvelles configurations.

Pourquoi et quand exécuter cette tâche

Cet intercepteur de connexion unique personnalisé permet désormais aux techniques de sécurité WebSphere Application Server d'authentifier l'utilisateur à l'aide d'une requête AuthServlet à transmettre à Build Forge en tant qu'utilisateur.

Procédure

  1. Ouvrez votre navigateur Web, puis entrez l'adresse http://localhost. A la place du formulaire de connexion Build Forge, vous voyez à présent une page d'authentification.
  2. Entrez vos données d'identification de l'utilisateur et cliquez sur Entrée.
    Remarque : Après l'authentification, la connexion s'établit automatiquement.

    Après la déconnexion, la page jsp par défaut s'affiche à la place du formulaire de connexion. Les connexions ultérieures sont automatiques si vous êtes toujours connecté.

Rétablissement de la connexion unique basée sur un formulaire

Vous pouvez revenir à l'utilisation du formulaire de connexion SSO.

Pourquoi et quand exécuter cette tâche

Pour reconfigurer les systèmes afin qu'ils utilisent la connexion de formulaire, vous devez désinstaller jas sous WebSphere Application Server puis réinstaller le fichier jas.war d'origine. Sous Build Forge, assurez-vous que l'intercepteur de connexion unique basée sur le formulaire est activé et répertorié comme premier élément. Désactivez l'intercepteur WebSphere Application Server personnalisé. Pour activer vos modifications, vous devez redémarrer WebSphere Application Server et Build Forge.

Procédure

  1. Désinstallez jas, puis réinstallez le fichier jas.war d'origine.
  2. Sous Build Forge, assurez-vous que l'intercepteur de connexion unique basée sur un formulaire et répertorié comme premier élément (voir "Configurations de sécurité de connexion unique Build Forge," ci-dessus).
  3. Désactivez l'intercepteur WebSphere Application Server personnalisé.
  4. Redémarrez WebSphere Application Server.
  5. Redémarrez Build Forge.

Feedback