Snowflake Open Catalog für die Verwendung von SSO konfigurieren¶
Unter diesem Thema erfahren Sie, wie Sie Snowflake Open Catalog für die Verwendung von SAML-basiertem SSO konfigurieren.
Bevor Sie Snowflake Open Catalog für die Verwendung von SSO konfigurieren, müssen Sie Ihren IdP für Open Catalog einrichten. Anleitungen finden Sie unter den folgenden Themen:
Bevor Sie beginnen¶
Um Snowflake Open Catalog für SSO einzurichten, benötigen Sie Ihren vollständigen Open Catalog-Kontobezeichner, der den Namen Ihrer Snowflake-Organisation und den Namen Ihres Open Catalog-Kontos enthält, z. B. <orgname>.<my-snowflake-open-catalog-account-name>
.
Informationen dazu, wie Sie den Namen Ihrer Snowflake-Organisation (
<orgname>
) finden, erhalten Sie unterSuchen von Organisations- und Kontonamen eines Kontos <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Informationen dazu, wie Sie den Namen Ihres Snowflake Open Catalog-Kontos (
<my-snowflake-open-catalog-account-name>
) finden, erhalten Sie unter :doc:/user-guide/opencatalog/find-account-name
.
Eine Snowflake-CLI-Verbindung für Open Catalog erstellen¶
Um Snowflake Open Catalog für die Verwendung von SSO zu konfigurieren, benötigen Sie eine Snowflake-CLI-Verbindung für Open Catalog. Führen Sie die folgenden Schritte aus, um diese Verbindung zu erstellen. Wenn die Snowflake-CLI noch nicht installiert ist, lesen Sie Installieren der Snowflake-CLI.
Wichtig
Um diese Verbindung zu erstellen, müssen Sie Open Catalog-Benutzer mit Service-Administrator-Berechtigungen sein. Informationen zu Service-Admin-Berechtigungen finden Sie unter Rolle des Service-Administrators.
Eine Snowflake-CLI-Verbindung für Snowflake Open Catalog hinzufügen¶
Fügen Sie eine Verbindung für das Snowflake Open Catalog-Konto hinzu, für das Sie SSO aktivieren möchten.
Fügen Sie eine Verbindung hinzu <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_, indem Sie die folgenden Werte verwenden. Drücken Sie bei allen anderen Parametern die Eingabetaste, um die Angabe eines Werts für den Parameter zu überspringen.Konfigurationsparameter für die Verbindung
Wert
Name for this connection
Geben Sie einen Namen für die Verbindung an, z. B.
myopencatalogconnection
.Account name
Geben Sie den Namen Ihrer Snowflake-Organisation, gefolgt vom Namen Ihres Open Catalog-Kontos, in folgendem Format an:
<orgname>-<my-snowflake-open-catalog-account-name>
.Beispiel:
ABCDEFG-MYACCOUNT1
.Informationen dazu, wie Sie diese Namen finden, erhalten Sie unter
Bevor Sie beginnen
_.Username
Geben Sie Ihren Benutzernamen für Open Catalog an, z. B.
jsmith
.Password [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Geben Sie Ihr Kennwort für Open Catalog ein, z. B.
MyPassword123456789
.Role for the connection [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Sie müssen
POLARIS_ACCOUNT_ADMIN
eingeben.
Snowflake-CLI-Verbindung testen¶
Um Ihre CLI-Verbindung zu testen, folgen Sie diesem Beispiel, bei dem die Verbindung für
myopencatalogconnection
getestet wird:snow connection test -c myopencatalogconnection
Die Antwort sollte wie folgt aussehen:
+------------------------------------------------------------------------------+ | key | value | |----------------------------+-------------------------------------------------| | Connection name | myopencatalogconnection | | Status | OK | | Host | ABCDEFG-MYACCOUNT1.snowflakecomputing.com | | Account | ABCDEFG-MYACCOUNT1 | | User | jsmith | | Role | POLARIS_ACCOUNT_ADMIN | | Database | not set | | Warehouse | not set | +------------------------------------------------------------------------------+
Ihre Snowflake-CLI-Verbindung für Snowflake Open Catalog als Standard festlegen¶
Um sicherzustellen, dass die von Ihnen verwendete Verbindung immer über die erforderliche POLARIS_ACCOUNT_ADMIN-Rolle verfügt, können Sie die Snowflake-CLI-Verbindung, die Sie für Open Catalog erstellt haben, als Standardverbindung festlegen. Weitere Informationen zur Standardverbindung finden Sie unter Standardverbindung festlegen <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Folgen Sie diesem Beispiel, bei dem die
myopencatalogconnection
-Verbindung als Standard festgelegt ist:snow connection set-default myopencatalogconnection
Um zu überprüfen, ob Sie den richtigen Benutzer und die richtige Rolle verwenden, führen Sie Folgendes aus:
snow sql -q "Select current_user(); select current_role();"
Die Antwort sollte Ihren Open Catalog-Benutzernamen zurückgeben und CURRENT ROLE sollte POLARIS_ACCOUNT_ADMIN sein.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Sicherheitsintegration erstellen¶
Um eine Sicherheitsintegration zu erstellen, führen Sie den Befehl CREATE SECURITY INTEGRATION unter Verwendung einer Snowflake-CLI-Verbindung aus. Sie können eine Auth0-Sicherheitsintegration oder eine Okta-Sicherheitsintegration erstellen.
Bemerkung
Wenn der standardmäßigen Snowflake-CLI-Verbindung, die Sie eingerichtet haben, nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen ist, müssen Sie in Ihren Befehl die folgende Anweisung aufnehmen: USE ROLE POLARIS_ACCOUNT_ADMIN
.
Auth0-Sicherheitsintegration¶
Um eine SAML-Sicherheitsintegration für Auth0 zu erstellen, führen Sie den folgenden Befehl in der Snowflake-CLI aus:
snow sql -q “create security integration <Name> type = saml2 enabled = true saml2_issuer = 'urn:<Auth0 Domain>' saml2_sso_url = '<SAML Protocol URL>' saml2_provider = 'Custom' saml2_x509_cert='<Certificate from Auth0>' saml2_sp_initiated_login_page_label = 'Auth0' saml2_enable_sp_initiated = true saml2_snowflake_acs_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login' saml2_snowflake_issuer_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com' saml2_requested_nameid_format = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';”
Wobei:
<Name>
gibt den Bezeichner der Sicherheitsintegration an. Der Bezeichner muss für Ihr Konto eindeutig sein.<Auth0 Domain>
wird in die Auth0-Konsole kopiert. Um diesen Wert zu finden, navigieren Sie in Auth0 zu Applications > Applications > Snowflake Open Catalog application > Settings > Basic Information: Domain (Feld).<SAML Protocol URL>
wird in die Auth0-Konsole kopiert. Um diesen Wert zu finden, navigieren Sie in Auth0 zu Applications > Applications > Snowflake Open Catalog application > Settings > Advanced settings > Endpoints (Registerkarte): SAML Protocol URL (Feld).<Certificate from Auth0>
wird in die Auth0-Konsole kopiert. Um diesen Wert zu finden, navigieren Sie in Auth0 zu: Applications > Applications > Snowflake Open Catalog application > Settings > Advanced Settings > Certificate (Registerkarte): Signing Certificates (Feld). Kopieren Sie den Wert zwischen <BEGIN CERTIFICATE> und <END CERTIFICATE>.<orgname>
ist der Name Ihrer Snowflake-Organisation. Informationen dazu, wie Sie diesen Namen finden, erhalten Sie unter Bevor Sie beginnen.<my-snowflake-open-catalog-account-name>
ist der Name Ihres Snowflake Open Catalog-Kontos. Informationen dazu, wie Sie diesen Namen finden, erhalten Sie unter Bevor Sie beginnen.
Okta-Sicherheitsintegration¶
Um eine SAML-Sicherheitsintegration für Okta zu erstellen, führen Sie den folgenden Befehl in der Snowflake-CLI aus:
snow sql -q “CREATE SECURITY INTEGRATION <Name> TYPE = SAML2 ENABLED = TRUE SAML2_ISSUER = '<ENTITY ID>' SAML2_SSO_URL = '<IDP SSO URL>' SAML2_PROVIDER = 'OKTA' SAML2_X509_CERT='<Authentication Certificate>' SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'OKTA SSO' SAML2_ENABLE_SP_INITIATED = TRUE SAML2_SNOWFLAKE_ACS_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login' SAML2_SNOWFLAKE_ISSUER_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com';”
Wobei:
<Name>
gibt den Bezeichner der Sicherheitsintegration an. Der Bezeichner muss für Ihr Konto eindeutig sein.<ENTITY ID>
ist der Wert der Entitäts-ID, den Sie beim Erstellen einer Anwendung in Okta kopiert haben.<IDP SSO URL>
ist der Wert der IDP-SSO-URL, den Sie beim Erstellen einer Anwendung in Okta kopiert haben.<Authentication Certificate>
ist der Wert des IDP-Authentifizierungszertifikats, den Sie beim Erstellen einer Anwendung in Okta kopiert haben.<orgname>
ist der Name Ihrer Snowflake-Organisation. Informationen dazu, wie Sie diesen Namen finden, erhalten Sie unter Bevor Sie beginnen.<my-snowflake-open-catalog-account-name>
ist der Name Ihres Snowflake Open Catalog-Kontos. Informationen dazu, wie Sie diesen Namen finden, erhalten Sie unter Bevor Sie beginnen.
Sicherheitsintegration überprüfen¶
Sie können jeweils nur eine Sicherheitsintegration verwenden. Außerdem muss die Integration, die Sie verwenden möchten, aktiviert sein.
Bemerkung
Wenn der standardmäßigen Snowflake-CLI-Verbindung, die Sie eingerichtet haben, nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen ist, müssen Sie in Ihren Befehl die folgende Anweisung aufnehmen: USE ROLE POLARIS_ACCOUNT_ADMIN
.
Um zu überprüfen, ob die von Ihnen verwendete Sicherheitsintegration aktiviert ist, führen Sie den folgenden Befehl aus:
snow sql -q "desc security integration <saml2-security-integration-name>;"
Wenn die Antwort SAML2_ENABLE_SP_INITIATED= true enthält, ist die SAML2-Sicherheitsintegration aktiviert.
Optional: Wenn die Antwort SAML2_ENABLE_SP_INITIATED=false enthält, führen Sie zur Aktivierung den folgenden Befehl aus:
snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;”
Einen Benutzer im Open Catalog-Konto erstellen¶
Damit SSO für einen Benutzer funktioniert, müssen Sie einen Open Catalog-Benutzer erstellen, der dem Benutzer entspricht, den Sie in Ihrem IdP erstellt haben.
Wichtig
Für die Erstellung eines Benutzers müssen Sie die Snowflake-CLI verwenden.
Wenn Sie einen Benutzer über die Open Catalog-UI erstellen, müssen Sie ein Kennwort angeben, das es dem Benutzer ermöglichen würde, sich über SSO oder durch Verwendung von Open Catalog-Anmeldeinformationen anzumelden.
Um einen Benutzer zu erstellen, führen Sie den folgenden Befehl aus:
snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
Wobei:
<login-name>
muss mit einem der folgenden Werte übereinstimmen:Die E-Mail, die Sie für den Benutzer in Auth0 angegeben haben.
Der Benutzername, den Sie für den Benutzer in Okta angegeben haben.
<email>
is the user’s email address. If you’re using Auth0, this value will match <login-name>.
Beispiel:
snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
Um zu überprüfen, ob Sie die Benutzer korrekt eingerichtet haben, führen Sie den folgenden Befehl aus:
snow sql -q "show users;"
In der Antwort muss der Wert in der Spalte LOGIN_NAME mit Email in Auth0 oder Username in Okta übereinstimmen.