Configuration du stockage des informations d’identification externe

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 9 minutes de lecture
  • Configurez votre instance pour obtenir les informations d’identification à partir d’un référentiel distant.

    Ces procédures supposent que vous disposez déjà d’un référentiel externe configuré avec les informations d’identification que vous souhaitez protéger. L’identificateur d’informations d’identification configuré dans l’instance ServiceNow doit être mappé aux informations d’identification réelles dans le référentiel via le fichier JAR.

    Remarque :
    ServiceNow prend en charge deux coffres-forts externes à la fois : un outil de résolution des informations d’identification CyberArk par défaut et un outil de résolution des informations d’identification externe personnalisé. La création d’un outil de résolution des informations d’identification CyberArk personnalisé utilise toujours le deuxième coffre externe personnalisé, et aucun coffre externe personnalisé supplémentaire ne peut être utilisé.

    Pour configurer le stockage des informations d’identification externe, effectuez les tâches suivantes dans l’ordre.

    Créer un fichier JAR pour résoudre les informations d’identification

    Créez un fichier JAR pour résoudre les identificateurs d’informations d’identification envoyés par le serveur MID en informations d’identification réelles du référentiel.

    Avant de commencer

    Rôle requis : agent_admin ou admin

    Assurez-vous d’inclure tous les éléments d’informations d’identification attendus par l’instance, tels que la clé privée.

    Pour créer un fichier JAR afin de résoudre les informations d’identification :

    Procédure

    Utilisez les modèles fournis sur GitHub ServiceNow ou l’exemple de fichier Java.
    ATTENTION :
    Ces exemples sont destinés à servir de modèle uniquement. N’utilisez PAS ce code en production sans le modifier pour votre environnement.
    1. Téléchargez les fichiers JAR open source avec les instructions de github ServiceNow :
    2. Utilisez l’exemple de fichier Java suivant comme modèle et modifiez-le en fonction de votre environnement :
      
      package com.snc.discovery;
      
      import java.util.*;
      import java.io.*;
      
      /**
       * Basic implementation of a CredentialResolver that uses a properties file.
       */
      
      public class CredentialResolver {
      
      	private static String ENV_VAR = "CREDENTIAL_RESOLVER_FILE";
      	private static String DEFAULT_PROP_FILE_PATH = "C:\\dummycredentials.properties";
      
      	// These are the permissible names of arguments passed INTO the resolve()
      	// method.
      
      	// the string identifier as configured on the ServiceNow instance...
      	public static final String ARG_ID = "id";
      
      	// a dotted-form string IPv4 address (like "10.22.231.12") of the target
      	// system...
      	public static final String ARG_IP = "ip";
      
      	// the string type (ssh, snmp, etc.) of credential as configured on the
      	// instance...
      	public static final String ARG_TYPE = "type";
      
      	// the string MID server making the request, as configured on the
      	// instance...
      	public static final String ARG_MID = "mid";
      
      	// These are the permissible names of values returned FROM the resolve()
      	// method.
      
      	// the string user name for the credential, if needed...
      	public static final String VAL_USER = "user";
      
      	// the string password for the credential, if needed...
      	public static final String VAL_PSWD = "pswd";
      
      	// the string pass phrase for the credential if needed:
      	public static final String VAL_PASSPHRASE = "passphrase";
      
      	// the string private key for the credential, if needed...
      	public static final String VAL_PKEY = "pkey";
      
      	// the string authentication protocol for the credential, if needed...
      	public static final String VAL_AUTHPROTO = "authprotocol";
      
      	// the string authentication key for the credential, if needed...
      	public static final String VAL_AUTHKEY = "authkey";
      
      	// the string privacy protocol for the credential, if needed...
      	public static final String VAL_PRIVPROTO = "privprotocol";
      
      	// the string privacy key for the credential, if needed...
      	public static final String VAL_PRIVKEY = "privkey";
      
      
      	private Properties fProps;
      
      	public CredentialResolver() {
      	}
      
      	private void loadProps() {
      		if(fProps == null)
      			fProps = new Properties();
      
      		try {
      			String propFilePath = System.getenv(ENV_VAR);
      			if(propFilePath == null) {
      				System.err.println("Environment var "+ENV_VAR+" not found. Using default file: "+DEFAULT_PROP_FILE_PATH);
      				propFilePath = DEFAULT_PROP_FILE_PATH;
      			}
      
      			File propFile = new File(propFilePath);
      			if(!propFile.exists() || !propFile.canRead()) {
      				System.err.println("Can't open "+propFile.getAbsolutePath());
      			}
      			else {
      				InputStream propsIn = new FileInputStream(propFile);
      				fProps.load(propsIn);
      			}
      			//fProps.load(CredentialResolver.class.getClassLoader().getResourceAsStream("dummycredentials.properties"));
      		} catch (IOException e) {
      			System.err.println("Problem loading credentials file:");
      			e.printStackTrace();
      		}
      	}
      
      	/**
      	 * Resolve a credential.
      	 */
      	public Map resolve(Map args) {
      		loadProps();
      		String id = (String) args.get(ARG_ID);
      		String type = (String) args.get(ARG_TYPE);
      		String keyPrefix = id+"."+type+".";
      
      		if(id.equalsIgnoreCase("misbehave"))
      			throw new RuntimeException("I've been a baaaaaaaaad CredentialResolver!");
      
      		// the resolved credential is returned in a HashMap...
      		Map result = new HashMap();
      		result.put(VAL_USER, fProps.get(keyPrefix + VAL_USER));
      		result.put(VAL_PSWD, fProps.get(keyPrefix + VAL_PSWD));
      		result.put(VAL_PKEY, fProps.get(keyPrefix + VAL_PKEY));
      		result.put(VAL_PASSPHRASE, fProps.get(keyPrefix + VAL_PASSPHRASE));
      		result.put(VAL_AUTHPROTO, fProps.get(keyPrefix + VAL_AUTHPROTO));
      		result.put(VAL_AUTHKEY, fProps.get(keyPrefix + VAL_AUTHKEY));
      		result.put(VAL_PRIVPROTO, fProps.get(keyPrefix + VAL_PRIVPROTO));
      		result.put(VAL_PRIVKEY, fProps.get(keyPrefix + VAL_PRIVKEY));
      
      		System.err.println("Error while resolving credential id/type["+id+"/"+type+"]");
      
      		return result;
      	}
      
      
      	/**
      	 * Return the API version supported by this class.
      	 */
      	public String getVersion() {
      		return "1.0";
      	}
      
      	public static void main(String[] args) {
      		CredentialResolver obj = new CredentialResolver();
      		obj.loadProps();
      
      		System.err.println("I spy the following credentials: ");
      		for(Object key: obj.fProps.keySet()) {
      			System.err.println(key+": "+obj.fProps.get(key));
      		}
      
      	}
      }

    Importer un fichier JAR pour résoudre les informations d’identification

    Importez un fichier JAR créé pour résoudre les identificateurs d’identification envoyés par Serveur MID en informations d’identification réelles du référentiel.

    Avant de commencer

    Rôle requis : agent_admin ou admin

    Une fois le fichier JAR créé, importez-le dans l’instance, où il devient accessible au serveur MID.

    Procédure

    1. Après avoir créé le fichier JAR et les fichiers de propriétés, copiez le fichier de propriétés sur Serveur MID.
    2. Accédez à la Serveur MID > Fichiers JAR.
    3. Cliquez sur Nouveau.
    4. Renseignez les champs suivants :
      Champ Description
      Nom Nom unique et descriptif permettant d’identifier le fichier dans l’instance.
      Version Numéro de version du fichier, le cas échéant.
      Source Emplacement du fichier JAR à des fins de référence. Les informations sources ne sont pas utilisées par le système.
      Description Brève description du fichier JAR et de son objectif dans l’instance.
    5. Cliquez sur l’icône du presse-papier dans la bannière et joignez le fichier JAR à l’enregistrement.
      Figure 1. Joindre un fichier JAR
      L’icône du trombone apparaît en regard du bouton Soumettre.
    6. Cliquez sur Envoyer.
    7. Redémarrez le service Serveur MID.
      La plateforme met le fichier JAR à la disposition de tout serveur MID configuré pour communiquer avec l’instance.

    Configurer l’identificateur d’informations d’identification

    Configurez l’identificateur d’informations d’identification dans l’instance.

    Avant de commencer

    Rôle requis : admin
    Vérifiez les éléments suivants :

    Procédure

    1. Accédez à la Tous > Découverte > Informations d'identification ou Orchestration > Informations d'identification.
    2. Cliquez sur Nouveau.
    3. Sélectionnez un type d’informations d’identification.
    4. Sélectionnez la case à cocher Banque d’identifiants externes .
      Les champs Nom d’utilisateur et Mot de passe disparaissent, et le champ ID d’informations d’identification et le menu Chambre forte de stockage des informations d’identification apparaissent.
    5. Dans le menu Chambre forte de stockage des informations d’identification , sélectionnez Aucun, le coffre CyberArk ou un coffre de stockage des informations d’identification externe personnalisé.
      Remarque :

      Si le coffre-fort de CyberArk est sélectionné, le menu Clé de recherche s’affiche avec quatre choix de clé de recherche : ID d’informations d’identification, Adresse IP, FQDN, Tous les éléments ci-dessus. La sélection de Toutes les options ci-dessus peut dégrader les performances, car elle nécessite d’accéder au coffre-fort plusieurs fois.

      1. Pour utiliser un coffre de stockage des informations d’identification externe personnalisé, accédez à Configurations du coffre-fort [vault_configuration.list] dans l’instance.
      2. Créer un enregistrement à l’aide d’un nom associé à un fichier JAR importé pour un programme de résolution d’informations d’identification personnalisé.

        Consultez les procédures Créer un fichier JAR pour résoudre les informations d’identification et Importer un fichier JAR pour résoudre les informations d’identification pour en savoir plus sur la création d’un coffre de stockage des informations d’identification externe personnalisé.

    6. Remplissez le formulaire Informations d’identification en utilisant les champs de la table suivante.
      Champ Description
      Nom Entrez un nom unique et descriptif pour ces informations d'identification.
      Actif Activez ou désactivez ces informations d'identification pour les utiliser.
      ID de certification Entrez la clé unique configurée pour les informations d'identification externes dans le fichier JAR téléchargé sur le MID Server pour un système d'informations d'identification externe. Il s’agit de l’ID transmis à la classe Java dans la carte des paramètres :
      public static final String ARG_ID   = "id";
      Le Serveur MID utilise cet identificateur pour résoudre les informations d’identification réelles sur le référentiel.
      Remarque :
      Ce champ n'est visible que lorsque la case Banque d'identifiants externes est cochée.
      Balise Autorisez les créateurs de workflows à affecter des informations d'identification individuelles à n'importe quelle activité d'un workflow Orchestration ou affectez des informations d'identification différentes à chaque occurrence du même type d'activité dans un workflow Orchestration.
      Banque d'identifiants externes Cochez cette case pour utiliser un système de stockage des informations d'identification externe. Lorsque vous sélectionnez cette option, les champs Nom d'utilisateur et Mot de passe sont remplacés par le champ ID d'informations d'identification. Le stockage des informations d’identification externe n’est disponible que lorsque le module d’extension Stockage des informations d’identification externe est activé.
      Chambre forte de stockage des informations d'identification Choisissez le coffre de stockage des informations d’identification externe dans la liste des coffres disponibles. Le menu est composé d’enregistrements de la section Configurations du coffre-fort [vault_configuration.list]. De nouveaux enregistrements peuvent être ajoutés et utiliser des noms associés aux fichiers JAR pour le programme de résolution des informations d’identification personnalisés. Consultez les procédures Créer un fichier JAR pour résoudre les informations d’identification et Importer un fichier JAR pour résoudre les informations d’identification pour en savoir plus sur la création d’un coffre de stockage des informations d’identification externe personnalisé.
      Concerne Choisissez si appliquer ces informations d'identification à Tous les serveurs MID de votre réseau, ou à un ou plusieurs MID servers spécifiques. Spécifiez les MID Servers qui doivent utiliser ces informations d'identifications dans le champ MID servers.
      MID Servers Sélectionnez un ou plusieurs MID Servers dans la liste des MID Servers disponibles. Les informations d'identification configurées dans cet enregistrement sont disponibles pour les MID Servers de cette liste. Ce champ est disponible uniquement lorsque vous sélectionnez MID servers spécifiques depuis le champ S'applique à.
      Ordre Entrez l’ordre (séquence) dans lequel la plateforme teste ces informations d’identification lorsqu’elle tente de se connecter aux appareils. Plus le nombre est petit, plus les informations d'identification apparaissent en haut dans la liste. Établissez un ordre pour les informations d'identification lorsque vous utilisez des informations d'identification avec des numéros élevés ou lorsque la sécurité verrouille les utilisateurs après trois tentatives de connexion échouées. Si toutes les informations d'identification ont le même numéro d'ordre (ou n'en ont pas), Discovery ou Orchestration essaie les informations d'identification aléatoirement.
    7. Cliquez sur Envoyer.

    Configurer l’identificateur d’informations d’identification pour AWS

    Configurez votre instance pour obtenir les informations d’identification à partir d’un référentiel distant.

    Avant de commencer

    Rôle requis : cloud_admin

    Vérifiez que ces modules d’extension sont actifs et que le Serveur MID a été installé :
    • Discovery (com.snc.discovery)
    • Cloud Provisioning and Governance [com.snc.cloud.mgmt]
    • Stockage d’informations d’identification externe [com.snc.discovery.external_credentials]

    Pourquoi et quand exécuter cette tâche

    Ces procédures supposent que vous disposez déjà d’un référentiel externe configuré avec les informations d’identification que vous souhaitez protéger. L’identificateur d’informations d’identification configuré dans l’instance ServiceNow doit être mappé aux informations d’identification réelles dans le référentiel via le fichier JAR.

    Procédure

    1. Accédez à la Tous > Découverte > Informations d'identification.
    2. Sélectionnez les informations d’identification prises en charge par votre fournisseur de stockage d’informations d’identification externe.
    3. Remplissez le formulaire en utilisant les champs de la table.
      Champ Description
      Nom Nom unique et descriptif pour ces informations d’identification. Par exemple, Amazon Web Services.
      Actif Case à cocher pour activer ou désactiver les informations d’identification.
      ID de certification Saisissez le nom sous lequel ces informations d’identification sont stockées dans le fournisseur de stockage d’informations d’identification externe.
      Serveurs MID Sélectionnez un ou plusieurs serveurs MID qui peuvent utiliser ces informations d’identification.
      Banque d'identifiants externes Cochez cette case pour utiliser un système de stockage des informations d'identification externe. Lorsque le stockage externe est activé, le champ ID d'informations d'identification s'affiche. Si cette case n’est pas visible, cliquez sur l’icône de menu dans la barre d’en-tête et sélectionnez Vue > Stockage externe dans le menu contextuel.
      Chambre forte de stockage des informations d'identification Sélectionnez CyberArk.
    4. Cliquez sur Envoyer.