CREATE SECURITY INTEGRATION (Externe API-Authentifizierung)

Erstellt eine neue Sicherheitsintegration zur externen API-Authentifizierung im Konto oder ersetzt eine vorhandene Integration.

Weitere Informationen zum Erstellen anderer Typen von Sicherheitsintegrationen (z. B. External OAuth) finden Sie unter CREATE SECURITY INTEGRATION.

Siehe auch:

ALTER SECURITY INTEGRATION (Externe API-Authentifizierung), DESCRIBE INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS

Syntax

OAuth: Anmeldeinformationen des Clients

CREATE SECURITY INTEGRATION <name>
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  ENABLED = { TRUE | FALSE }
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'CLIENT_CREDENTIALS']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
  [ COMMENT = '<string_literal>' ]
Copy

OAuth: Autorisierungscode-Gewährungsablauf

CREATE SECURITY INTEGRATION <name>
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  ENABLED = { TRUE | FALSE }
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'AUTHORIZATION_CODE']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]
Copy

OAuth: JWT-Bearer-Ablauf

CREATE SECURITY INTEGRATION <name>
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  ENABLED = { TRUE | FALSE }
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'JWT_BEARER']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Gibt den Bezeichner (d. h. den Namen) der Integration an. Dieser Wert muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. „Mein Objekt“). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

TYPE = API_AUTHENTICATION

Gibt an, dass Sie eine Sicherheitsschnittstelle zwischen Snowflake und einem externen Dienst erstellen, der OAuth 2.0 mit externer API-Authentifizierung verwendet.

AUTH_TYPE = OAUTH2

Gibt an, dass die Integration OAuth 2.0 verwendet, um sich beim externen Dienst zu authentifizieren.

ENABLED = { TRUE | FALSE }

Gibt an, ob diese Sicherheitsintegration aktiviert oder deaktiviert ist.

TRUE

Ermöglicht die Ausführung der Integration basierend auf den in der Integrationsdefinition angegebenen Parametern.

FALSE

Hält die Integration für Wartungszwecke an. Eine Integration zwischen Snowflake und einem Drittanbieterdienst funktioniert nicht.

Optionale Parameter

Beachten Sie, dass dies eine vollständige Liste von Parametern ist, die Sie konfigurieren können. Konfigurieren Sie die Parameter in der Integration, sodass diese mit den Parametern übereinstimmen, die Sie beim Erstellen eines Geheimnisses basierend auf dem von Ihnen ausgewählten OAuth-Ablauf konfigurieren.

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

Gibt die URL für die Authentifizierung beim externen Dienst an. Um beispielsweise eine Verbindung zur ServiceNow-Instanz herzustellen, muss die URL das folgende Format haben:

https://<instance_name>.service-now.com/oauth_token
Copy

Dabei ist instance_name der Name Ihrer ServiceNow-Instanz.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

Gibt den Token-Endpunkt an, den der Client verwendet, um ein Zugriffstoken zu erhalten, indem seine Autorisierungsgewährung oder das Aktualisierungstoken vorlegt wird. Der Token-Endpunkt wird bei jeder Autorisierungsgewährung verwendet, außer beim impliziten Gewährungstyp (da ein Zugriffstoken direkt ausgestellt wird).

OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST

Gibt an, dass POST als Authentifizierungsmethode für den externen Dienst verwendet wird.

OAUTH_CLIENT_ID = 'string_literal'

Gibt die Client-ID für die OAuth-Anwendung im externen Dienst an.

OAUTH_CLIENT_SECRET = 'string_literal'

Gibt das Clientgeheimnis für die OAuth-Anwendung in der ServiceNow-Instanz aus dem vorherigen Schritt an. Der Konnektor verwendet dies, um ein Zugriffstoken von der ServiceNow-Instanz anzufordern.

OAUTH_GRANT = 'string_literal'

Gibt den Typ des OAuth-Ablaufs an. Eine der folgenden Optionen:

  • 'CLIENT_CREDENTIALS', wenn die Integration Client-Anmeldeinformationen verwenden soll.

  • 'AUTHORIZATION_CODE', wenn die Integration einen Autorisierungscode verwenden soll.

  • 'JWT_BEARER', wenn die Integration einen Bearer-Token vom Typ „JWT“ (JSON Web Token) verwenden soll.

OAUTH_ACCESS_TOKEN_VALIDITY = integer

Gibt die Standard-Gültigkeitsdauer des OAuth-Zugriffstokens (in Sekunden) an, das von einem OAuth-Server ausgestellt wird.

Der in dieser Eigenschaft festgelegte Wert wird verwendet, wenn die Gültigkeitsdauer des Zugriffstokens nicht als Teil der OAuth-Tokenantwort zurückgegeben wird. Wenn beide Werte verfügbar sind, wird der kleinere der beiden Werte verwendet, um das Zugriffstoken zu aktualisieren.

OAUTH_REFRESH_TOKEN_VALIDITY = integer

Gibt den Wert an, mit dem die Gültigkeit des vom OAuth-Server erhaltenen Aktualisierungstokens festgestellt wird.

OAUTH_ALLOWED_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )

Gibt eine durch Kommas getrennte Liste von in einfache Anführungszeichen gesetzten Geltungsbereichen an, die verwendet werden sollen, wenn während des OAuth-Client-Anmeldeinformationsablaufs vom OAuth-Server aus eine Anforderung durch eine Rolle mit USAGE-Berechtigung für die Integration gestellt wird.

Diese Liste muss eine Teilmenge der Geltungsbereiche sein, die in der OAUTH_ALLOWED_SCOPES-Eigenschaft der Sicherheitsintegration definiert sind. Wenn die OAUTH_SCOPES-Eigenschaftswerte nicht angegeben sind, erbt das Geheimnis alle Geltungsbereiche, die in der Sicherheitsintegration angegeben sind.

Für den ServiceNow-Konnektor ist 'useraccount' der einzig mögliche Geltungsbereichswert.

Standard: Leere Liste (d. h. []).

COMMENT = 'string_literal'

Gibt einen Kommentar für die Integration an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE INTEGRATION

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einem bestimmten Satz von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

Erstellen Sie eine Sicherheitsintegration namens servicenow_oauth, um Snowflake mit der ServiceNow-Instanz namens myinstance mithilfe von OAuth mit dem Autorisierungscode-Gewährungsablauf zu verbinden:

CREATE SECURITY INTEGRATION servicenow_oauth
  TYPE = api_authentication
  AUTH_TYPE = oauth2
  OAUTH_CLIENT_AUTH_METHOD = client_secret_post
  OAUTH_CLIENT_ID = 'sn-oauth-134o9erqfedlc'
  OAUTH_CLIENT_SECRET = 'eb9vaXsrcEvrFdfcvCaoijhilj4fc'
  OAUTH_TOKEN_ENDPOINT = 'https://myinstance.service-now.com/oauth_token.do'
  ENABLED = true;
Copy