Intégration de la sécurité WAS à l'aide d'un intercepteur

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

Avant de commencer

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 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 à WAS 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.

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

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 WAS 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 rbf-services.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 WAS, le fichier war doit être régénéré après avoir été modifié pour utiliser la version protégée.

Pour ce faire, suivez les instructions ci-dessous :

Procédure

  1. Accédez au répertoire contenant votre fichier rbf-services.war (le répertoire webapps dans votre fichier principal de serveur Tomcat). Copiez ce fichier à un emplacement temporaire, tel que C:\rbf.
  2. Développez le fichier WAR. A partir de la ligne de commande, exécutez la commande : %IBM_JAVA_HOME%\jar –xvf rbf-services.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 rbf-services.war pour le récupérer ultérieurement :
    1. Windows : copy rbf-services.war rbf-services.war.bak
    2. UNIX ou Linux : cp rbf-services.war rbf-services.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 WAS. La méthode d'authentification la plus commune est FORM, qui requiert des paramètres de configuration supplémentaires. Consultez votre documentation WebSphere pour obtenir des instructions sur la configuration de FORM dans votre application.
  5. A partir de la 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  rbf-services.war

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

    Une fois l'installation terminée, accédez à Applications->Enterprise Applications (Applications d'entreprise). Cliquez sur le nom de l'application pour la configurer. Sous Detail Properties, cliquez sur le lien Security role to user/group mapping. Cochez la case All Authenticated pour Utilisateur. Après avoir effectué cette modification, assurez-vous de la sauvegarder dans la configuration principale.

    La sécurité des applications doit également être activée sous WAS. Pour ce faire, accédez à Sécurité->Secure administration, applications, and infrastructure (Administration, applications et infrastructure sécurisées). Veillez à ce que la case Enable application security soit cochée.

    A ce moment, redémarrez le serveur WAS puis redémarrez le serveur Build Forge.
    Remarque : Les rbf-services devraient à présent démarrer comme partie du processus de configuration de WAS, qui doit par conséquent être démarré 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é->SSO.
  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 SSO WebSphere, 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é->SSO.
  2. Cliquez sur le nom de l'intercepteur SSO WebSphere.
  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é WAS d'authentifier l'utilisateur via une requête AuthServlet à transmettre à Build Forge en tant qu'utilisateur.

Procédure

  1. Ouvrez votre navigateur Web. Entrez l'adresse http://localhost.
  2. A la place du formulaire de connexion Build Forge, vous voyez à présent une page d'authentification. Entrez vos données d'identification de l'utilisateur et appuyez sur Enter.
  3. Après l'authentification, notez que la connexion doit être effectuée automatiquement.
  4. Après la déconnexion, la page jsp par défaut sera affichée au lieu du formulaire de connexion. Les connexions suivantes seront automatiques si l'utilisateur est toujours authentifié.

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 rbf-services sous WAS puis réinstaller le fichier rbf-services.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 WAS personnalisé. WAS et Build Forge doivent être redémarrés pour que ces modifications entrent en vigueur.

Procédure

  1. Désinstallez rbf-services, puis réinstallez le fichier rbf-services.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 WAS personnalisé.
  4. Redémarrez WAS.
  5. Redémarrez Build Forge.

Commentaires en retour