Configuration de l'authentification par certificat client

Cette rubrique décrit comment configurer HCL Digital Experience pour l'authentification de certificat client SSL. Le scénario pris en charge est une configuration "certificat client uniquement" qui n'utilise que cette méthode d'authentification et n'autorise pas la connexion par formulaire via un nom d'utilisateur et un mot de passe. D'autres scénarios de configuration sont possibles mais ils ne sont pas conseillés ou pris en charge.

Pourquoi et quand exécuter cette tâche

Procédez comme suit pour configurer HCL pour l'authentification de certificat client SSL :
Remarque : Reportez-vous à la section relative aux références connexes pour savoir comment configurer WAS pour la prise en charge SSL avec la certification client.

Procédure

  1. Veillez à utiliser la procédure ci-après pour configurer IBM® WebSphere® Application Server pour la prise en charge SSL avec des certificats client :
    1. Lorsque vous définissez les paramètres de qualité de protection (QoP) pour le nouveau répertoire SSL, procédez comme suit :
      1. Sélectionnez Obligatoire dans la liste Authentification de client.
      2. Sélectionnez SSL_TLS dans la liste Protocole.
      3. Dans la section Fournisseur, sélectionnez Fournisseur JSSE prédéfini, puis IBMJSSE dans la liste Sélectionner le fournisseur.
      Pour plus d'informations, reportez-vous à la rubrique Qualité de protection dans le centre de documentation de WebSphere® Application Server.
    2. Assurez-vous de bien référencer les clés et les fichiers de clés certifiées. Vous devez créer une nouvelle clé et de nouveaux fichiers de clés certifiées en utilisant l'outil IKEYMAN et le format PKCS12 pour une compatibilité de navigateur maximale.
      Remarque : Le fichier de clés certifiées doit contenir le certificat serveur Le fichier de clés certifiées doit contenir tous les certificats client des utilisateurs à authentifier ou un certificat d'autorité de certification (clé CA) pouvant être utilisé pour vérifier les certificats client des utilisateurs.
    3. Associez la chaîne de transport sécurisé au nouveau répertoire SSL.
    4. Configurez vos paramètres avancés de sécurité LDAP. L'authentification basée sur les certificats nécessite une configuration du mécanisme d'authentification afin que les conditions suivantes s'appliquent :
      • WebSphere® Application Server mappe l'intégralité du nom absolu (DN) du champ Sujet du certificat vers un nom absolu correspondant dans votre LDAP. Pour utiliser cette option, définissez la technique de mappage dans le panneau de configuration LDAP sur exact.
      • WebSphere® Application Server mappe l'entrée du champ objet à un attribut autre que le nom distinctif de votre registre d'utilisateurs. Pour vous servir de cette option, définissez dans le panneau de configuration LDAP la technique de mappage permettant d'utiliser l'option de filtre de certificat. Ce choix offre une plus grande souplesse dans la mise en oeuvre des attributs autres que le nom distinctif pour identifier les utilisateurs. Ainsi, le filtre uid=${SubjectCN} mappe la zone SubjectCN du certificat client à l'attribut uid de votre annuaire LDAP.
  2. Procédez comme suit si vous utilisez un serveur HTTP externe :
    1. Régénérez le plug-in. Sélectionnez Serveurs > Serveurs Web. Sélectionnez le serveur Web et cliquez sur Générer un plug-in. Mettez à jour le serveur HTTP avec ce plug-in.
    2. Redémarrez le serveur HTTP pour que les changements soient pris en compte.
    3. Activez l'authentification par certificat client sur votre serveur Web. Pour IBM HTTP Server (IHS), reportez-vous à http://www.redbooks.ibm.com/ et recherchez dans le manuel de sécurité les informations les plus récentes concernant WebSphere® Application Server.
  3. Mettez à jour le fichier wps.ear pour changer la méthode d'authentification et le paramètre de garantie de transport pour prendre en charge l'authentification du certificat client.
    Clustered environments : Procédez comme suit sur le noeud principal, puis effectuez une resynchronisation complète pour propager les modifications sur tous les noeuds.
    1. Exportez wps.ear.
      Reportez-vous à la rubrique suivante de la section des tâches connexes pour obtenir des instructions : Exportation du fichier EAR du portail.
    2. Accédez au répertoire où vous avez exporté wps.ear : path_to_exported_EAR/installedApps/node_name/wps.ear/wps.war/WEB-INF
      Remarque : Vous devrez peut-être extraire le fichier EAR exporté avant de pouvoir modifier des fichiers.
    3. Modifiez le fichier web.xml se trouvant dans le répertoire ear exporté, sous /wps.war/WEB-INF.
    4. Changez la balise login-config dans la méthode d'authentification par certificat client.
      <login-config id="LoginConfig_1">	
      		<auth-method>CLIENT-CERT</auth-method>	
      		<realm-name>WPS</realm-name>	
      		<!--<form-login-config id="FormLoginConfig_1">		    
      			<form-login-page>/redirect</form-login-page>	    
      			<form-error-page>/error.html</form-error-page>	
      		</form-login-config> -->
      </login-config>
    5. Remplacez le paramètre de garantie de transport dans la contrainte de sécurité pour la zone protégée par CONFIDENTIAL :
      <security-constraint id="SecurityConstraint_1">  
      		<web-resource-collection id="WebResourceCollection_1">    
      			<web-resource-name/>   
      			<url-pattern>/myportal/*</url-pattern>    
      			<http-method>DELETE</http-method>    
      			<http-method>GET</http-method>    
      			<http-method>POST</http-method>    
      			<http-method>PUT</http-method>    
      			<http-method>HEAD</http-method> 
      		</web-resource-collection>  
      		<auth-constraint id="AuthConstraint_1">	
      			<description/>	
      			<role-name>All Role</role-name>  
      		</auth-constraint>  
      		<user-data-constraint id="UserDataConstraint_4">    
      			<transport-guarantee>CONFIDENTIAL</transport-guarantee>  
      		</user-data-constraint>
      </security-constraint>
    6. Sauvegardez et fermez web.xml.
    7. Redéployez wps.ear.
      Reportez-vous à la rubrique suivante de la section des tâches connexes pour obtenir des instructions : Redéploiement du fichier EAR du portail.
    8. Environnements en cluster : Synchronisez les noeuds.
      1. Connectez-vous au gestionnaire de déploiement.
      2. Sélectionnez Administration système > Nœuds.
      3. Sélectionnez les noeuds pour synchroniser à partir de la liste.
      4. Cliquez sur Resynchronisation complète.
  4. Mettez à jour les thèmes et les paramètres.
    1. Modifiez les URL pour la connexion et la déconnexion dans les thèmes utilisés dans votre scénario. Dans les thèmes par défaut, elles se situent dans les fichiers banner_toolbar.jspf et mainMenu.jsp du répertoire PortalServer_root/installer/wp.ear/installableApps/wps.ear/wps.war/themes/.Les fichiers contenant les liens de connexion et de déconnexion peuvent être différents en fonction du thème. Dans les thèmes plus récents, ces liens peuvent se trouver dans le fichier Default.jsp. Dans les thèmes plus anciens, ces liens peuvent se trouver dans le fichier banner.jspf ou mainMenu.jsp.
      Finding theme resources : See the Location of theme resources link in the Related section.
      Clustered environments : Procédez comme suit. Notez que, dans un environnement en cluster, vous devez effectuer ces étapes sur le gestionnaire de déploiement.
      • Pour le lien de connexion, utilisez une page arbitrairement protégée. Le lien de connexion déclenchera alors implicitement l'établissement de liaison SSL dans WebSphere® Application Server du fait de la contrainte de sécurité. Ainsi, vous pouvez générer l'URL pour qu'elle pointe vers la page de bienvenue protégée :
        <%-- Login button --%>
        <%-- comment this to enable screen login --%> 
        <portal-logic:if loggedIn="no">
        <portal-navigation:urlGeneration 
        contentNode="ibm.portal.Home.Welcome" home="protected">	    
        				<a tabIndex="7" class="toolbarLink" href='<% 
        wpsURL.write(escapeXmlWriter); %>'>	    
        				<portal-fmt:text key="link.login" bundle="nls.engine"/>	    
        </a></portal-navigation:urlGeneration>
        </portal-logic:if>
      • Pour la déconnexion, vous devez décider si elle doit vous rediriger ou non sur HTTP. Si vous voulez mettre en place cette redirection, définissez la propriété redirect.logout.ssl sur true dans le service de configuration. Dans ce même service, attribuez le port correct dans host.port.http. Si vous souhaitez continuer à utiliser le protocole HTTPS après la déconnexion, aucune procédure de configuration n'est nécessaire à ce stade.
    2. Supprimez le portlet de connexion de toutes les pages où il figure ; par exemple, la page de bienvenue et la page de connexion.
    3. Si vous souhaitez désactiver complètement les points d'entrée 'portlet de connexion' et 'URL de connexion' pour HCL, procédez comme suit : définissez la propriété command.login dans le service de configuration sur la valeur LoginUserBlocked. De cette façon, une connexion ne peut être déclenchée qu'après avoir été authentifiée par WebSphere® Application Server, dans le cas présent, par l'établissement de liaison de certificat client.
      1. Log on to the WebSphere® Integrated Solutions Console.
      2. Go to Resources > Resource Environment > Resource Environment Providers.
      3. Click WP ConfigService.
      4. Cliquez sur Propriétés personnalisées sous l'en-tête Propriétés supplémentaires.
      5. Cliquez sur command.login et remplacez la valeur LoginUserAuth par LoginUserBlocked.
      6. Click Save to save the changes to the master configuration.
      7. Log out of the WebSphere® Integrated Solutions Console.
  5. Arrêtez et redémarrez les serveurs appropriés afin d'appliquer les modifications. Pour obtenir des instructions spécifiques, accédez à Démarrage et arrêt des serveurs, des gestionnaires de déploiement et des agents de nœud.
  6. Vérifiez votre configuration.
    1. Importez dans votre navigateur l'un des certificats client acceptés par le serveur.
    2. Lancez la page d'accueil dans ce navigateur par le biais d'une URL HTTP qui n'est pas sécurisée ; par exemple, http://hostname.example.com:10039/wps/portal, où hostname.example.com est le nom de système hôte qualifié complet sur lequel Portal est en cours d'exécution et 10039 est le port de transfert par défaut créé par WebSphere® Application Server. Le numéro de port peut être différent pour votre environnement..
    3. Cliquez sur le lien de connexion.
    4. Vérifiez que le serveur passe à HTTPS et que le certificat client vous est demandé.
    5. Après avoir sélectionné et confirmé le certificat client correct, vous êtes redirigé dans la zone protégée servie par HTTPS.