Configuration du stockage des informations d’identification externe

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 10 minutes de lecture
  • Configurez votre instance pour obtenir des 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 externes à la fois : un outil de résolution d’informations d’identification CyberArk par défaut et un programme de résolution d’informations d’identification externe personnalisé. La création d’un résolveur d’informations d’identification CyberArk personnalisé utilise toujours le deuxième coffre-fort externe personnalisé, et aucun coffre-fort 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 à partir du MID Server dans les 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 fournis uniquement à titre de modèle. 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 du ServiceNow github :
    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’informations d’identification envoyés à partir du MID Server dans les informations d’identification réelles du référentiel.

    Avant de commencer

    Rôle requis : agent_admin ou admin

    Après avoir créé le fichier JAR, importez-le dans l’instance, où il devient accessible au MID Server.

    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 le MID Server.
    2. Accédez à la Serveur MID > Fichiers JAR.
    3. Cliquez sur Nouveau.
    4. Renseignez les champs suivants :
      Champ Description
      Nom Un 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 rôle dans l’instance.
    5. Cliquez sur l’icône de trombone dans la bannière et joignez le fichier JAR à l’enregistrement.
      Figure 1. Joindre un fichier JAR
      L’icône de trombone apparaît à côté du bouton Soumettre.
    6. Cliquez sur Envoyer.
    7. Redémarrez le service MID Server.
      La plateforme met le fichier JAR à la disposition de n’importe quel MID Server configuré pour communiquer avec l’instance.

    Configurer l’identificateur des 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étection > Identifiants ou Orchestration > Identifiants.
    2. Cliquez sur Nouveau.
    3. Sélectionnez un type d’informations d’identification.
    4. Cochez la case Banque d’identifiants externes .
      Les champs Nom d’utilisateur et Mot de passe disparaissent, et les menus Champ ID d’informations d’identification et Coffre de stockage des informations d’identification apparaissent.
    5. Dans le menu Coffre-fort de stockage des informations d’identification , sélectionnez Aucun, le coffre-fort CyberArk ou un coffre-fort de stockage d’informations d’identification externe personnalisé.
      Remarque :

      Si CyberArk vault est sélectionné, le menu Clé de recherche s’affiche avec quatre choix de clés de recherche : ID d’informations d’identification, Clé de recherche, FQDN et 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 plusieurs fois.

      1. Pour utiliser un coffre de stockage des informations d’identification externes personnalisé, accédez à Configurations du coffre [vault_configuration.list] dans l’instance.
      2. Créez un enregistrement à l’aide d’un nom associé à un fichier JAR importé pour un outil 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 plus d’informations sur la création d’un coffre-fort de stockage des informations d’identification externe personnalisé.

    6. Remplissez le formulaire Informations d’identification à l’aide des 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 MID Server 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 une liste de coffres disponibles. Le menu est composé d’enregistrements provenant des configurations du coffre-fort [vault_configuration.list]. Vous pouvez ajouter de nouveaux enregistrements et utiliser des noms associés à des fichiers JAR personnalisés pour le programme de résolution des informations d’identification. 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 plus d’informations sur la création d’un coffre-fort 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 (la séquence) selon lequel la plateforme essaie 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 des 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 MID Server a été installé :
    • Discovery (com.snc.discovery)
    • Cloud Provisioning and Governance [com.snc.cloud.mgmt]
    • Stockage des 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étection > Identifiants.
    2. Sélectionnez des informations d’identification que votre fournisseur de stockage d’informations d’identification externe prend en charge.
    3. Remplissez le formulaire à l’aide des champs de la table.
      Champ Description
      Nom Nom unique et descriptif pour ces informations d’identification. Par exemple, Amazon Web Services.
      Concerne Sélectionnez les MID Servers qui peuvent utiliser ces informations d’identification. Vous pouvez sélectionner Tous les MID Servers ou MID Servers spécifiques. Si vous sélectionnez cette dernière option, le champ MID Servers s’affiche.
      Actif Case à cocher pour activer ou désactiver les informations d’identification.
      Compte AWS Saisissez votre ID de compte AWS si vos informations d’identification AWS se trouvent sur un fournisseur de stockage externe.
      Serveurs MID Sélectionnez un ou plusieurs MID Servers qui peuvent utiliser ces informations d’identification.
      ID de certification Entrez le nom sous lequel ces informations d’identification sont stockées dans le fournisseur de stockage des informations d’identification externe.
      ID d'informations d'identification de confidentialité Saisissez le nom d’une clé de confidentialité SNMPv3 de CyberArk. Ce champ n'est visible que pour SNMPv3 lorsque vous sélectionnez CyberArk dans le champ Type de banque d'identifiants. Si vous n'utilisez pas de clé de confidentialité pour CyberArk, laissez ce champ vide.
      Alias d'identification Sélectionnez un alias pour ces informations d’identification qui contient des comportements spécifiques. Consultez Alias d’informations d’identification pour la détection pour plus d'informations.
      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.
      Type de banque d'identifiants Sélectionnez CyberArk uniquement si vous utilisez une clé de confidentialité SNMPv3 CyberArk. Le champ ID d'informations d'identification de confidentialité apparaît pour autoriser l'entrée de la clé.
    4. Cliquez sur Envoyer.