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>' ]
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>' ]
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
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 dieOAUTH_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;