Voraussetzungen für 3-beinige OAuth 2.0 (3LO) für den Snowflake-Connector im Integration Studio
Einführung
Dies sind die Voraussetzungen für die Verwendung von 3-beinigem OAuth 2.0 (3LO) mit dem Snowflake-Connector. Zuerst erstellen und konfigurieren Sie eine Snowflake OAuth-Sicherheitsintegration und dann konfigurieren Sie eine App-Registrierung in der Management-Konsole mit der Sicherheitsintegration.
Hinweis
Die Agent-Version 10.83 / 11.21 oder höher ist erforderlich, um 3-beinige OAuth 2.0-Authentifizierung zu verwenden.
Erstellen und Konfigurieren einer Snowflake OAuth-Sicherheitsintegration
Befolgen Sie diese Schritte, um eine Snowflake OAuth-Sicherheitsintegration zu erstellen und zu konfigurieren:
-
Navigieren Sie in der Snowflake-Oberfläche zur Snowflake CLI.
-
Um die Sicherheitsintegration zu erstellen, führen Sie den folgenden Befehl aus, wobei die Parameter
OAUTH_REDIRECT_URI
undOAUTH_CLIENT_RSA_PUBLIC_KEY
basierend auf Ihrer Implementierung angepasst werden:CREATE SECURITY INTEGRATION jitterbit_app TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = CUSTOM OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' OAUTH_REDIRECT_URI = 'https://apps.<region>.jitterbit.com/design-studio/api/v1/oauth/authcode' OAUTH_ISSUE_REFRESH_TOKENS = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 86400 BLOCKED_ROLES_LIST = ('SYSADMIN') OAUTH_CLIENT_RSA_PUBLIC_KEY ='ABCjkl123...';
-
Setzen Sie
OAUTH_REDIRECT_URI
auf eine der folgenden URLs (abhängig von der Region Ihrer Organisation):Region URL APAC https://apps.apac-southeast.jitterbit.com/design-studio/api/v1/oauth/authcode
EMEA https://apps.emea-west.jitterbit.com/design-studio/api/v1/oauth/authcode
NA https://apps.na-east.jitterbit.com/design-studio/api/v1/oauth/authcode
-
Für Informationen zu RSA-Schlüsselpaaren und zum Erhalten eines öffentlichen Schlüssels verweisen Sie auf die Snowflake-Dokumentation zu Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.
-
Für weitere Informationen zum Befehl CREATE SECURITY INTEGRATION
siehe die Snowflake CREATE SECURITY INTEGRATION (Snowflake OAuth) Dokumentation.
-
Um die Snowflake-Rollen hinzuzufügen, die mit dieser Integration interagieren sollen, führen Sie den folgenden Befehl aus. Dieses Beispiel verwendet
USERADMIN
, um eine App-Registrierung in der Management Console zu konfigurieren:Important
Rollen, die in der
PRE_AUTHORIZED_ROLES_LIST
festgelegt sind, dürfen nicht in derBLOCKED_ROLES_LIST
enthalten sein, die für die Sicherheitsintegration definiert ist. Rollen, die in derPRE_AUTHORIZED_ROLES_LIST
festgelegt sind, müssen außerdem über ausreichende Berechtigungen verfügen, um mit den erforderlichen Datenbanken und Schemata zu interagieren, damit die Aktivitäten wie erwartet funktionieren.alter security integration jitterbit_app set PRE_AUTHORIZED_ROLES_LIST = ('USERADMIN')
Für weitere Informationen zu Snowflake-Rollen und Zugriffskontrolle siehe die Snowflake Übersicht über die Zugriffskontrolle.
-
Um die Client-ID und das Client-Geheimnis zu erhalten, die für eine gültige App-Registrierung erforderlich sind, führen Sie den folgenden Befehl aus:
select system$show_oauth_client_secrets('jitterbit_app');
-
Um die Autorisierungs- und Tokenanforderungs-URLs zu erhalten, die für eine gültige App-Registrierung erforderlich sind, führen Sie den folgenden Befehl aus:
DESCRIBE SECURITY INTEGRATION jitterbit_app;
Die Werte
OAUTH_AUTHORIZATION_ENDPOINT
undOAUTH_TOKEN_ENDPOINT
sind die Autorisierungs- und Tokenanforderungs-URLs. Diese Werte benötigen Sie, um eine App-Registrierung in der Management Console zu konfigurieren.
Konfigurieren Sie eine App-Registrierung in der Management Console
Befolgen Sie diese Schritte, um die erforderlichen Werte für eine private Anwendung in der Management Console App-Registrierung zu konfigurieren:
-
Sammeln Sie die erforderlichen Informationen aus der Snowflake OAuth-Sicherheitsintegration, die oben konfiguriert wurde:
- Autorisierte Rollen, die in Schritt 3 verwendet werden. Zum Beispiel
USERADMIN
. - Client-ID und Client-Geheimnis, die in Schritt 4 erhalten wurden.
- Autorisierungs-URL, die in Schritt 5 erhalten wurde (
OAUTH_AUTHORIZATION_ENDPOINT
). - Access-Token-URL und Refresh-Token-URL, die in Schritt 5 erhalten wurden (
OAUTH_TOKEN_ENDPOINT
).
- Autorisierte Rollen, die in Schritt 3 verwendet werden. Zum Beispiel
-
Geben Sie in der Konfiguration der App-Registrierung jede Rolle als Scope im Codeformat ein, zum Beispiel
session:role:USERADMIN
. -
Setzen Sie die Authentifizierungs-URL der App auf
<snowflake_account_url>/oauth/authorize
. Dieser Wert muss mit dem Wert vonOAUTH_AUTHORIZATION_ENDPOINT
übereinstimmen. -
Setzen Sie die Access-Token-URL und die Refresh-Token-URL der App auf
<snowflake_account_url>/oauth/token-request
. Diese Werte müssen mit dem Wert vonOAUTH_TOKEN_ENDPOINT
übereinstimmen.Hinweis
<snowflake_account_url>
muss eine gültige Snowflake-Konto-URL sein, die mit Ihrem Konto verknüpft ist. Zum Beispielhttps://example-account123.snowflakecomputing.com
. -
Gehen Sie zu Erweiterte Optionen.
Geben Sie im Tab für Authentifizierungsanfragen unter Parameter
response_type
als Schlüssel undcode
als Wert ein. Wählen Sie dann Request URL aus dem Menü Send in aus.
Sobald die private Anwendung auf der Seite App-Registrierungen registriert ist, steht sie im Menü OAuth-Anwendung in der Snowflake-Verbindung zur Auswahl.