Authentification avec une carte CAC (Common Access Card)

La carte CAC (Common Access Card) constitue l'identification standard pour le personnel militaire actif, les troupes de réserve et le personnel civil du ministère de la défense ainsi que le personnel contractuel admissible aux Etats-Unis. Elle permet un accès physique aux bâtiments et aux espaces contrôlés ainsi qu'aux réseaux et aux systèmes informatiques du ministère de la défense. Elle peut être utilisée pour accéder à des ordinateurs et à des réseaux équipés de divers lecteurs de carte à puce. Lorsqu'elle est insérée dans le lecteur, le périphérique invite l'utilisateur à entrer un code confidentiel. Cette tâche permet de configurer AppScan® Enterprise pour permettre l'authentification par carte CAC sur LDAP de sorte que les utilisateurs puissent se connecter à AppScan® Enterprise sans indiquer de nom d'utilisateur et de mot de passe.

Avant de commencer

Pendant l'installation et la configuration, sélectionnez Authentification LDAP sur l'écran Mécanisme d'authentification de l'assistant de configuration.
Remarque :
  1. Si la carte CAC a été activée avant l'application du correctif AppScan Enterprise 9.0.3.1 iFix1, désactivez-la avant d'exécuter l'assistant de configuration lors de l'installation du correctif iFix1. Vous pouvez ensuite réactiver la carte CAC et vous connecter à AppScan Enterprise en procédant comme suit.
  2. Aucune intervention de l'utilisateur n'est requise pour activer l'authentification dans Microsoft Edge. Si vous utilisez Mozilla Firefox, il se peut que votre organisation dispense des instructions spécifiques pour l'activation de la carte CAC dans le navigateur.

Procédure

  1. Installez AppScan® Enterprise avec un serveur LDAP contenant les utilisateurs CAC.
  2. Assurez-vous que l'administrateur du produit pour AppScan Enterprise utilise également une carte CAC.
    1. Connectez-vous à AppScan Enterprise en tant qu'administrateur.
    2. Accédez à Administration > Utilisateurs et groupes et sélectionnez Utilisateur par défaut dans la liste.
    3. Sur la page Editer l'utilisateur, sélectionnez Administrator dans la liste Type. Terminez la configuration des propriétés utilisateur, cliquez sur Sauvegarder, puis déconnectez-vous d'AppScan Enterprise.
  3. Importez la chaîne d'autorité de certification complète dans le magasin de clés de confiance.
    1. Créez un fichier de magasin de clés ou utilisez le magasin de clés existant.
      Remarque : Pour générer un magasin de clés, vous pouvez utiliser keytool. AppScan Enterprise inclut un keytool et peut être téléchargé à partir de <install-dir>\AppScan Enterprise\Liberty\jre\bin\

      Utilisez la commande suivante :
      keytool -genkey -alias mydomain.com -keyalg RSA -keystore MyKeystore.jks
      -keysize 2048 - keypass storePassword

      Remarque : Vous pouvez utiliser un Java keytool pour importer un certificat dans defaultTrustStore. AppScan Enterprise inclut un keytool, et peut être téléchargé depuis <install-dir>\AppScan Enterprise\Liberty\jre\bin\. Mettez à jour les paramètres de la commande suivante avec vos valeurs spécifiques : <path-to-certificate>, <install-dir>, <ase instance name>, <truststore-password>. Si des chemins contiennent des espaces, encadrez-les de guillemets doubles, par exemple : "C:\Program Files (x86)\HCL\AppScan Enterprise\Liberty\usr\servers\ase\resources\security\cacerts".
    2. Si le certificat a un nom personnalisé, mettez à jour la commande pour refléter ce nom personnalisé. Pour importer le certificat dans le truststore, exécutez la commande suivante dans une fenêtre d'invite de commandes :
      
      				keytool -importkeystore -srckeystore <path-to-certificate>\certificate.pfx -destkeystore <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\cacerts -srcstoretype JKS -deststoretype PKCS12 -deststorepass <truststore-password>
      			
    3. Ajoutez les certificats de l'autorité de certification, un à la fois, et créez un libellé pour chaque certificat. Si vous utilisez iKeyman, vous pouvez aussi créer un libellé pour chaque certificat. Une fois que vous avez fini d'ajouter tous les certificats de la chaîne complète, fermez l'outil iKeyman.
    4. Si defaultTrustStore, qui est disponible à l'emplacement :
      <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\cacerts
      est utilisé comme trustStore, alors la réexécution de l'assistant de configuration nécessitera la réimportation de la chaîne de certificats. Si cela doit être évité, avant d'exécuter l'assistant de configuration, importez la chaîne de certificats dans le fichier trustStore, disponible à l'emplacement :
      <install-dir>\AppScan Enterprise\Liberty\templates\servers\defaultServer\resources\security\cacerts
  4. Modifiez le fichier web.xml afin de remplacer l'authentification par formulaire par l'authentification par certificat client.
    Remarque : Effectuez une sauvegarde du fichier web.xml avant de le modifier.
    1. Arrêtez le service HCL AppScan Enterprise Server.
    2. Localisez le fichier AppScanServerWeb.war de votre instance AppScan® Enterprise qui se trouve dans : <install-dir>\AppScan Enterprise\Liberty\usr\servers\ase\apps\AppScanServerWeb.war.
    3. Renommez le fichier AppScanServerWeb.war en AppScanServerWeb.zip et accédez au dossier WEB-INF afin d'extraire le fichier web.xml pour l'éditer.
    4. Remplacez la section suivante du fichier :

      <login-config>
      <auth-method>FORM</auth-method>
      <form-login-config>
      <form-login-page>/pages/Login.jsp</form-login-page>
      <form-error-page>/pages/Login.jsp?Retry=True</form-error-page>
      </form-login-config>
      </login-config>

      par

      <login-config> <auth-method>CLIENT-CERT</auth-method> </login-config>

    5. Sauvegardez le fichier et renommez AppScanServerWeb.zip en AppScanServerWeb.war.
  5. Modifiez le fichier server.xml pour appliquer le protocole SSL, définir le magasin de clés de confiance et définir le mappage des certificats LDAP.
    1. Localisez le fichier server.xml dans <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\server.xml.
    2. Assurez-vous que la section <featureManager> contient <feature>ssl-1.0</feature>.
    3. Localisez la section <keystore> du fichier et ajoutez la ligne suivante : <keyStore id="cacTrustKeyStoreID" password="store password" location="cacTrustKeyStore.jks" type='jks' />, où
      • id est une chaîne qui identifie de manière unique le magasin de clés (utilisez n'importe quelle chaîne).
      • password est le mot de passe du magasin de clés (cette valeur peut être stockée en texte en clair ou chiffré. Utilisez l'outil securityUtility de Liberty pour coder le mot de passe)
      • location est un chemin absolu ou relatif d'accès au fichier du magasin de clés (le chemin relatif désigne <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\
      • type est le type du magasin de clés. jks est la valeur par défaut.
      Remarque : Reportez-vous à la rubrique Profil Liberty : magasins de clés.
    4. Localisez la section <ssl> du fichier et vérifiez qu'elle comprend <sslProtocol="TLSv1.2">.
    5. Ajoutez les attributs suivants à <ssl> :
      • trustStoreRef="cacTrustKeyStoreID"cacTrustKeyStoreID est l'ID du magasin de clés qui a été configuré dans la section <keystore> du fichier.
      • clientAuthenticationSupported="true"
      La section peut être similaire à l'exemple suivant une fois l'édition terminée : <ssl id="defaultSSLConfig" sslProtocol="TLSv1.2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />.
    6. Localisez la section <ldapRegistry> du fichier et ajoutez les attributs suivants :
      • certificateMapMode="CERTIFICATE_FILTER"
      • certificateFilter="<ldapAttribute>=${<certificateAttribute>} (remplacez <ldapAttribute> et <certificateAttribute> en conséquence)

        Remarque : Les valeurs de ldapAttribute et certificateAttribute dépendent du type du serveur LDAP et des attributs du certificat. Modifiez l'exemple de ce filtre en fonction de votre environnement.
      Une de ces valeurs CertificateFilter peut être :

      certificateFilter="uid=${SubjectCN}"

      L'attribut "uid" dans l'enregistrement LDAP doit correspondre à l'attribut SubjectCN du certificat. Si l'élément "SubjectCN" du certificat est "admin", le nom d'utilisateur (uid) dans l'annuaire LDAP doit être "admin".

      L'exemple suivant illustre une configuration de registre LDAP qui utilise IBM® Tivoli® Directory Server. L'attribut uid du serveur LDAP correspond à l'attribut SubjectCN dans les certificats stockés sur la carte CAC :

      <ldapRegistry ldapType="IBM Tivoli Directory Server" host="<<hostname>>" port="<<Port no>>" sslEnabled="false" baseDN="o=IBM,c=US "certificateMapMode="CERTIFICATE_FILTER" certificateFilter="uid=${SubjectCN}"> <activedFilters userFilter="(objectclass=Person)" userIdMap="*:uid"/> </ldapRegistry>
  6. Redémarrez le service HCL AppScan Enterprise Server.
  7. Connectez-vous à nouveau à AppScan Enterprise en tant qu'administrateur avec votre authentification CAC.
  8. Accédez à Administration > Utilisateurs et groupes et changez les droits d'accès pour l'utilisateur en fonction des droits à attribuer à ce rôle. (Généralement, il n'est pas souhaitable que l'utilisateur par défaut soit administrateur mais plutôt un utilisateur standard).
  9. Une fois qu'AppScan Enterprise est configuré, il n'existe aucun autre moyen de créer de compte Administrateur pour l'utilisateur de carte CAC, si ce n'est en utilisant une requête de base de données. Si vous n'avez pas suivi l'étape 2, procédez comme suit :
    1. Connectez-vous à AppScan Enterprise avec votre carte CAC et vérifiez vos droits afin de voir si vous êtes administrateur.
    2. Si vous n'êtes pas administrateur, exécutez votre requête dans la base de données AppScan Enterprise SQL Server : select *from UserInfo.
    3. Recherchez l'utilisateur CAC dans les résultats de la requête puis notez l'ID utilisateur.
    4. Ensuite, exécutez la requête suivante : Update UserInfo set UserTypeId=5, LicenseType=3, EffectiveType=32768, où UserId correspond à l'ID de l'administrateur CAC.
    5. Déconnectez-vous d'AppScan Enterprise puis connectez-vous à nouveau. Vous devriez maintenant être administrateur.

Résultats

Les utilisateurs qui utilisent des cartes CAC (Common Access Card) peuvent se connecter à AppScan® Enterprise sans indiquer de nom d'utilisateur et de mot de passe.