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 Internet Explorer. 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 Edition d'un 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

    2. Importez la chaîne de certificat de l'autorité de certification complète qui a signé les certificats client existants sur les cartes CAC.
      Remarque : Vous pouvez utiliser un outil Java iKeyman pour gérer vos certificats numériques. Avec iKeyman, vous pouvez ajouter des racines d'autorité de certification à votre base de données, copier des certificats d'une base de données à une autre, demander et recevoir un certificat numérique d'une autorité de certification, définir des clés par défaut et changer les mots de passe. L'utilitaire iKeyman est inclus avec AppScan® Enterprise et stocké dans <install-dir>\AppScan Enterprise\Liberty\jre\bin\ikeyman.exe. Vous pouvez télécharger des informations supplémentaires sur iKeyman depuis IBM DeveloperWorks : Guide iKeyman.
    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. Trouvez 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>

      with

      <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. Recherchez 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. Trouvez 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.
    4. Localisez la section <ssl> du fichier et vérifiez qu'elle comprend <ssl-Protocol="SSL_TLSv2">.
    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="SSL_TLSv2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />.
    6. Localisez la section <ldapRegistry> du fichier et ajoutez les attributs suivants :
      • certificateMapMode="CERTIFICATE_FILTER"
      • certificateFilter="uid=${SubjectCN}" .
        Remarque : L'élément "uid" dans l'annuaire LDAP doit correspondre à l'attribut du certificat. Modifiez cet exemple de filtre pour que votre environnement soit mappé. Dans cet exemple, si l'élément "SubjectCN" du certificat est "CN=IBM", le nom d'utilisateur (uid) dans l'annuaire LDAP doit aussi être "IBM".
      Cet exemple illustre une configuration de registre LDAP qui utilise IBM® Tivoli® Directory Server. Les ID utilisateur LDAP correspondent au CN de l'objet des certificats stockés sur la carte CAC :

      <ldapRegistry ldapType="IBM Tivoli Directory Server" host="<<host name>>"  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.