Konfiguration des externen Anmeldeinformationsspeichers

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 9 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-Anmeldeinformationslöser und einen anwenderdefinierten externen Anmeldeinformationslöser. Beim Erstellen eines anwenderdefinierten Resolvers für CyberArk-Anmeldeinformationen wird weiterhin der zweite, benutzerdefinierte externe Tresor verwendet, und es können keine zusätzlichen benutzerdefinierten 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 in GitHub ServiceNow bereitgestellten Vorlagen oder die Java-Beispieldatei.
    Vorsicht:
    Diese Beispiele dienen nur als Vorlage. Verwenden Sie diesen Code NICHT in der Produktion, ohne ihn für Ihre Umgebung zu ändern.
    1. Laden Sie die Open-Source-JAR-Dateien mit Anweisungen von GitHub ServiceNow herunter:
    2. Verwenden Sie die folgende Java-Beispieldatei als Vorlage, und passen Sie sie an Ihre Umgebung an:
      
      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: admin
    Ü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 Felder Anwendername und Passwort werden ausgeblendet, das Feld Anmeldeinformations-ID und das Menü „ Anmeldeinformationsspeicherung – Tresor “ werden angezeigt.
    5. Wählen Sie im Menü Tresor für den Anmeldeinformationsspeicher entweder Keine, den CyberArk-Tresor oder einen anwenderdefinierten externen Anmeldeinformationsspeicher aus.
      Hinweis:

      Wenn CyberArk Vault ausgewählt ist, wird das Menü „ Suchschlüssel “ mit vier Suchschlüsseloptionen angezeigt: Anmeldeinformations-ID, IP-Adresse, FQDN usw. Wenn Sie Alle Optionen auswählen, kann dies die Leistung beeinträchtigen, da mehrmals auf den Tresor zugegriffen werden muss.

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

        Informationen zum Erstellen eines anwenderdefinierten externen Anmeldeinformationsspeicher-Tresors finden Sie in den Verfahren JAR-Datei zum Auflösen der Anmeldeinformationen erstellen und JAR-Datei zum Auflösen der Anmeldeinformationen importieren.

    6. Füllen Sie das Anmeldeinformationsformular mit den Feldern 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.
      Anmeldeinformationsspeicher – Tresor Wählen Sie den Tresor mit externen Anmeldeinformationen aus einer Liste verfügbarer Tresore aus. Das Menü besteht aus Datensätzen aus den Tresorkonfigurationen [vault_configuration.list]. Neue Datensätze können hinzugefügt werden und Namen verwenden, die anwenderdefinierten JAR-Dateien des Anmeldeinformations-Resolvers zugeordnet sind. Informationen zum Erstellen eines anwenderdefinierten externen Anmeldeinformationsspeicher-Tresors finden Sie in den Verfahren JAR-Datei zum Auflösen der Anmeldeinformationen erstellen und JAR-Datei zum Auflösen der Anmeldeinformationen importieren.
      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

    Stellen Sie sicher, dass 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 Anmeldeinformationen aus, die von Ihrem externen Anmeldeinformationsspeicher-Anbieter unterstützt werden.
    3. Füllen Sie das Formular mit den Feldern aus der Tabelle aus.
      Feld Beschreibung
      Name Ein eindeutiger und beschreibender Name für diese Anmeldeinformationen. Zum Beispiel „Amazon Web Services“.
      Betrifft Wählen Sie die MID-Server aus, die diese Anmeldeinformationen verwenden können. Die Auswahlmöglichkeiten sind Alle MID-Server und Bestimmte MID-Server. Wenn Sie Letzteres auswählen, wird das Feld MID-Server angezeigt.
      Aktiv Kontrollkästchen zum Aktivieren oder Deaktivieren der Anmeldeinformationen.
      AWS-Konto Geben Sie Ihre AWS-Account-ID ein, wenn sich Ihre AWS-Anmeldeinformationen bei einem externen Speicheranbieter befinden.
      MID-Server Wählen Sie einen oder mehrere MID-Server aus, die diese Anmeldeinformationen verwenden können.
      Anmeldeinformations-ID Geben Sie den Namen ein, unter dem diese Anmeldeinformationen im externen Anmeldeinformationsspeicheranbieter gespeichert sind.
      Datenschutz-Anmeldeinformations-ID Geben Sie den Namen eines SNMPv3-Datenschutzschlüssels aus CyberArk ein. Dieses Feld ist für SNMPv3 nur sichtbar, wenn Sie im Feld Anmeldeinformationsspeicher-Typ die Option CyberArk auswählen. Wenn Sie keinen Datenschutzschlüssel für CyberArk verwenden, lassen Sie dieses Feld leer.
      Anmeldeinformationsalias Wählen Sie einen Alias für diese Anmeldeinformationen aus, der bestimmte Verhaltensweisen enthält. Weitere Informationen finden Sie unter Anmeldeinformationsaliasse für Discovery.
      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 Ansicht > Externer Speicher aus dem Kontextmenü.
      Anmeldeinformationsspeicher-Typ Wählen Sie CyberArk nur aus, wenn Sie einen SNMPv3-Datenschutzschlüssel für CyberArk verwenden. Das Feld Datenschutz-Anmeldeinformations-ID wird zur Eingabe des Schlüssels angezeigt.
    4. Klicken Sie auf Absenden.