Konfiguration des externen Anmeldeinformationsspeichers

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 8 Minuten Lesedauer
  • Konfigurieren Sie Ihre Instanz so, dass Anmeldeinformationen von einem Remote-Repository abgerufen werden.

    Bei diesen Verfahren wird davon ausgegangen, dass Sie bereits ein externes Repository mit den Anmeldeinformationen konfiguriert haben, die Sie schützen möchten. Der in der ServiceNow-Instanz konfigurierte Nachweis-Bezeichner muss über die JAR-Datei den tatsächlichen Anmeldeinformationen im Repository zugeordnet werden.

    Hinweis:
    ServiceNow unterstützt zwei externe Tresore gleichzeitig: Einen standardmäßigen CyberArk-Anmeldeinformations-Resolver und einen anwenderdefinierten externen Anmeldeinformations-Resolver. Beim Erstellen eines anwenderdefinierten CyberArk-Anmeldeinformations-Resolvers wird weiterhin der zweite anwenderdefinierte externe Tresor verwendet, und es können keine zusätzlichen anwenderdefinierten externen Tresore verwendet werden.

    Führen Sie zum Konfigurieren des externen Anmeldeinformationsspeichers die folgenden Aufgaben in der angegebenen Reihenfolge aus.

    JAR-Datei zum Auflösen der Anmeldeinformationen erstellen

    Erstellen Sie eine JAR-Datei, um die vom MID Server gesendeten Anmeldeinformationen in tatsächliche Anmeldeinformationen aus dem Repository aufzulösen.

    Vorbereitungen

    Erforderliche Rolle: agent_admin oder admin

    Stellen Sie sicher, dass alle Anmeldeinformationen enthalten sind, die die Instanz erwartet, wie z. B. der private Schlüssel.

    So erstellen Sie eine JAR-Datei zum Auflösen von Anmeldeinformationen:

    Prozedur

    Verwenden Sie entweder die auf bereitgestellten Vorlagen ServiceNow github oder die Java-Beispieldatei.
    Vorsicht:
    Diese Beispiele sind nur als Vorlage vorgesehen. Tun NICHT Verwenden Sie diesen Code in der Produktion, ohne ihn für Ihre Umgebung zu ändern.
    1. Laden Sie die Open Source-JAR-Dateien mit Anweisungen aus dem herunter ServiceNow github:
    2. Verwenden Sie die folgende Java-Beispieldatei als Vorlage, und ändern Sie sie entsprechend Ihrer Umgebung:
      
      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));
      		}
      
      	}
      }

    JAR-Datei zum Auflösen der Anmeldeinformationen importieren

    Importieren Sie eine JAR-Datei, um die vom MID Server gesendeten Nachweis-Bezeichner in tatsächliche Anmeldeinformationen aus dem Repository aufzulösen.

    Vorbereitungen

    Erforderliche Rolle: agent_admin oder admin

    Nach dem Erstellen der JAR-Datei importieren Sie sie in die Instanz; dort kann der MID Server darauf zugreifen.

    Prozedur

    1. Kopieren Sie nach dem Erstellen der JAR- und Eigenschaftendateien die Eigenschaftendatei auf den MID-Server.
    2. Navigieren zu MID-Server > JAR-Dateienan.
    3. Klicken Sie auf Neu.
    4. Füllen Sie die folgenden Felder aus:
      Feld Beschreibung
      Name Ein eindeutiger und beschreibender Name zum Identifizieren der Datei in der Instanz.
      Version Eine Versionsnummer für die Datei, sofern verfügbar.
      Quelle Speicherort der JAR-Datei zu Referenzzwecken. Quellinformationen werden vom System nicht verwendet.
      Beschreibung Kurzbeschreibung der JAR-Datei und ihres Zwecks in der Instanz.
    5. Klicken Sie auf das Büroklammersymbol im Banner, und hängen Sie die JAR-Datei an den Datensatz an.
      Abbildung : 1. Eine JAR-Datei anhängen
      Das Büroklammer-Symbol wird neben der Schaltfläche Absenden angezeigt.
    6. Klicken Sie auf Absenden.
    7. Starten Sie den MID-Server-Service neu.
      Die Plattform stellt die JAR-Datei jedem MID Server zur Verfügung, der für die Kommunikation mit der Instanz konfiguriert ist.

    Nachweis-Bezeichner konfigurieren

    Konfigurieren Sie den Nachweis-Bezeichner in der Instanz.

    Vorbereitungen

    Erforderliche Rolle: Administrator
    Überprüfen Sie Folgendes:

    Prozedur

    1. Navigieren zu Alle > Discovery > Anmeldeinformationen oder Orchestration > Anmeldeinformationenan.
    2. Klicken Sie auf Neu.
    3. Wählen Sie einen Anmeldeinformationstyp aus.
    4. Aktivieren Sie das Kontrollkästchen Externer Anmeldeinformationsspeicher.
      Die Anwendername Und Passwort Felder, und werden ausgeblendet Anmeldeinformations-ID Feld und Anmeldeinformationsspeicher-Tresor Menü wird angezeigt.
    5. Von Anmeldeinformationsspeicher-Tresor Wählen Sie entweder keine, den CyberArk-Tresor oder einen anwenderdefinierten externen Anmeldeinformationsspeicher aus.
      Hinweis:

      Wenn CyberArk Vault ausgewählt ist, wird Suchschlüssel Das Menü wird mit vier Suchschlüsseloptionen angezeigt: Anmeldeinformations-ID, IP-Adresse, FQDN, alle oben genannten. Wenn Sie alle der oben genannten Optionen auswählen, kann die Leistung beeinträchtigt werden, da mehrmals auf den Tresor zugegriffen werden muss.

      1. Um einen anwenderdefinierten Tresor für einen externen Anmeldeinformationsspeicher zu verwenden, navigieren Sie in der Instanz zu Vault-Konfigurationen [Vault_Configuration.list].
      2. Erstellen Sie einen neuen Datensatz mit einem Namen, der einer importierten JAR-Datei für einen anwenderdefinierten Anmeldeinformations-Resolver zugeordnet ist.

        Siehe Verfahren JAR-Datei zum Auflösen der Anmeldeinformationen erstellen Und JAR-Datei zum Auflösen der Anmeldeinformationen importieren Informationen zum Erstellen eines anwenderdefinierten Tresors für einen Speicher mit externen Anmeldeinformationen.

    6. Füllen Sie das Formular „Anmeldeinformationen“ mithilfe der Felder aus der folgenden Tabelle aus.
      Feld Beschreibung
      Name Geben Sie einen eindeutigen und beschreibenden Namen für diese Anmeldeinformationen ein.
      Aktiv Aktivieren oder deaktivieren Sie diese Anmeldeinformationen.
      Nachweis-ID Geben Sie den für externe Anmeldeinformationen in der JAR-Datei, die für ein externes Anmeldeinformationssystem auf den MID Server hochgeladen wurde, konfigurierten eindeutigen Schlüssel ein. Dies ist die ID, die an die Java-Klasse in der Parameterzuordnung übergeben wird:
      public static final String ARG_ID   = "id";
      Der MID-Server verwendet diesen Identifier, um die tatsächlichen Anmeldeinformationen im Repositorium aufzulösen.
      Hinweis:
      Dieses Feld ist nur sichtbar, wenn das Kontrollkästchen Externer Anmeldeinformationsspeicher aktiviert ist.
      Tag Lassen Sie zu, dass Ersteller von Workflows, jeder Aktivität in einem Orchestration-Workflow einzelne Anmeldeinformationen zuweisen, oder weisen Sie jedem Vorkommen desselben Aktivitätstyps in einem Orchestration-Workflow unterschiedliche Anmeldeinformationen zu.
      Externer Anmeldeinformationsspeicher Aktivieren Sie dieses Kontrollkästchen, um ein externes Speichersystem für Anmeldeinformationen zu verwenden. Wenn Sie diese Option auswählen, werden die Felder Benutzername und Passwort durch das Feld Nachweis-ID ersetzt. Externe Anmeldeinformationsspeicher stehen nur zur Verfügung, wenn das Plugin „Externer Anmeldeinformationsspeicher“ aktiviert ist.
      Anmeldeinformationsspeicherung – Tresor Wählen Sie den Tresor des externen Anmeldeinformationsspeichers aus einer Liste verfügbarer Tresore aus. Das Menü besteht aus Datensätzen aus den Vault-Konfigurationen [Vault_Configuration.list]. Neue Datensätze können hinzugefügt werden und Namen verwenden, die anwenderdefinierten Anmeldeinformations-Resolver-JAR-Dateien zugeordnet sind. Siehe Verfahren JAR-Datei zum Auflösen der Anmeldeinformationen erstellen Und JAR-Datei zum Auflösen der Anmeldeinformationen importieren Informationen zum Erstellen eines anwenderdefinierten Tresors für einen Speicher mit externen Anmeldeinformationen.
      Betrifft Wählen Sie aus, ob diese Anmeldeinformationen für Alle MID-Server in Ihrem Netzwerk oder für einen oder mehrere Spezielle MID-Server angewendet werden sollen. Geben Sie im Feld MID-Server die MID-Server an, die diese Anmeldeinformationen verwenden sollen.
      MID-Server Wählen Sie einen oder mehrere MID Server aus der Liste der verfügbaren MID Server aus. Die in diesem Datensatz konfigurierten Anmeldeinformationen stehen den MID Servern in dieser Liste zur Verfügung. Dieses Feld ist nur verfügbar, wenn Sie Spezifische MID-Server im Feld Gilt für auswählen.
      Bestellung Geben Sie die Reihenfolge ein, in der die Plattform diese Anmeldeinformationen bei der Anmeldung bei Geräten testet. Je kleiner die Zahl, desto weiter oben werden diese Anmeldeinformationen in der Liste angezeigt. Richten Sie die Reihenfolge der Anmeldeinformationen ein, wenn Sie eine große Anzahl von Anmeldeinformationen verwenden oder wenn Benutzer nach drei fehlgeschlagenen Anmeldeversuchen von den Sicherheitsfunktionen gesperrt werden. Wenn alle Anmeldeinformationen dieselbe Nummer (oder keine) in der Reihenfolge haben, testet Discovery oder Orchestration die Anmeldeinformationen in zufälliger Reihenfolge.
    7. Klicken Sie auf Absenden.

    Nachweis-Bezeichner für AWS konfigurieren

    Konfigurieren Sie Ihre Instanz so, dass Anmeldeinformationen von einem Remote-Repository abgerufen werden.

    Vorbereitungen

    Erforderliche Rolle: cloud_admin

    Überprüfen Sie, ob diese Plugins aktiv sind und der MID-Server installiert wurde:
    • Discovery [com.snc.discovery]
    • Cloud Provisioning and Governance [Com.snc.Cloud.mgmt]
    • Externer Anmeldeinformationsspeicher [com.snc.Discovery.external_credentials]

    Warum und wann dieser Vorgang ausgeführt wird

    Bei diesen Verfahren wird davon ausgegangen, dass Sie bereits ein externes Repository mit den Anmeldeinformationen konfiguriert haben, die Sie schützen möchten. Der in der ServiceNow-Instanz konfigurierte Nachweis-Bezeichner muss über die JAR-Datei den tatsächlichen Anmeldeinformationen im Repository zugeordnet werden.

    Prozedur

    1. Navigieren zu Alle > Discovery > Anmeldeinformationenan.
    2. Wählen Sie eine Anmeldeinformation aus, die Ihr externer Anmeldeinformationsspeicher-Anbieter unterstützt.
    3. Füllen Sie das Formular mithilfe der Felder aus der Tabelle aus.
      Feld Beschreibung
      Name Ein eindeutiger und beschreibender Name für diese Anmeldeinformationen. Zum Beispiel „Amazon Web Services“.
      Aktiv Kontrollkästchen zum Aktivieren oder Deaktivieren der Anmeldeinformationen.
      Anmeldeinformations-ID Geben Sie den Namen ein, unter dem diese Anmeldeinformationen im externen Anmeldeinformationsspeicher-Anbieter gespeichert werden.
      MID-Server Wählen Sie einen oder mehrere MID-Server aus, die diese Anmeldeinformationen verwenden können.
      Externer Anmeldeinformationsspeicher Aktivieren Sie dieses Kontrollkästchen, um ein externes Speichersystem für Anmeldeinformationen zu verwenden. Wenn ein externer Speicher aktiviert ist, wird das Feld Nachweis-ID angezeigt. Wenn dieses Kontrollkästchen nicht sichtbar ist, klicken Sie auf das Menüsymbol in der Kopfzeile, und wählen Sie aus Ansicht > Externer Speicher Aus dem Kontextmenü.
      Anmeldeinformationsspeicherung – Tresor Wählen Sie Aus CyberArk .
    4. Klicken Sie auf Absenden.