Konfigurieren Sie Snowflake Open Catalog für die Verwendung von SSO¶
In diesem Thema erfahren Sie, wie Sie Snowflake Open Catalog so konfigurieren, dass er SAML-basierten SSO verwendet.
Bevor Sie Snowflake Open Catalog für die Verwendung von SSO konfigurieren, müssen Sie Ihren IdP für Open Catalog konfigurieren. Anleitungen finden Sie unter den folgenden Themen:
Bevor Sie beginnen¶
Um Snowflake Open Catalog für SSO einzurichten, benötigen Sie den vollständigen Bezeichner Ihres Open Catalog-Kontos, der den Namen Ihrer Snowflake-Organisation und den Namen Ihres Open Catalog-Kontos enthält; zum Beispiel: <orgname>.<my-snowflake-open-catalog-account-name>
.
Um Ihren Snowflake-Organisationsnamen (
<orgname>
) zu finden, sieheSuchen von Organisations- und Kontonamen eines Kontos <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Ihren Snowflake Open Catalog-Kontonamen (
<my-snowflake-open-catalog-account-name>
) finden Sie unter :doc:/opencatalog/find-account-name
.
Erstellen Sie eine Snowflake CLI-Verbindung für Open Catalog¶
Um Snowflake Open Catalog für die Verwendung von SSO zu konfigurieren, benötigen Sie eine Snowflake CLI-Verbindung für Open Catalog. Folgen Sie diesen Schritten, um diese Verbindung herzustellen. Wenn Sie Snowflake CLI noch nicht installiert haben, lesen Sie bitte den Abschnitt Installation von Snowflake CLI.
Wichtig
Um diese Verbindung herzustellen, müssen Sie ein Benutzer von Open Catalog sein, der über die Berechtigungen eines Service-Administrators verfügt. Informationen zu den Service-Administratorrechten finden Sie unter Service-Admin-Rolle.
Hinzufügen einer Snowflake CLI-Verbindung für Snowflake Open Catalog¶
Fügen Sie eine Konnektivität für das Snowflake Open Catalog-Konto hinzu, für das Sie SSO aktivieren möchten.
Fügen Sie eine Verbindung <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_ mit den folgenden Werten hinzu. Für alle anderen Parameter drücken Sie die Eingabetaste, um die Angabe eines Wertes für den Parameter zu überspringen.Parameter für die Konfiguration der Verbindung
Wert
Name für diese Verbindung
Geben Sie einen Namen für die Verbindung an, zum Beispiel
myopencatalogconnection
.Kontoname
Geben Sie den Namen Ihrer Snowflake-Organisation, gefolgt vom Namen Ihres Open Catalog-Kontos, in diesem Format an:
``
-<. Zum Beispiel
ABCDEFG-MYACCOUNT1
.Um diese Namen zu finden, siehe
Bevor Sie beginnen
_.Benutzername
Geben Sie Ihren Benutzernamen für Open Catalog an, zum Beispiel
jsmith
.Kennwort [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
.Rolle für die Verbindung [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Sie müssen
POLARIS_ACCOUNT_ADMIN
eingeben
Testen Sie die Snowflake CLI-Verbindung¶
Um Ihre CLI-Verbindung zu testen, folgen Sie diesem Beispiel, das die Verbindung für
myopencatalogconnection
testet: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 | +------------------------------------------------------------------------------+
Legen Sie Ihre Snowflake CLI-Verbindung für Snowflake Open Catalog als Standard fest¶
Um sicherzustellen, dass der von Ihnen verwendeten Verbindung immer die erforderliche Rolle POLARIS_ACCOUNT_ADMIN zugewiesen wird, können Sie die Snowflake CLI-Verbindung, die Sie für Open Catalog erstellt haben, als Standardverbindung festlegen. Weitere Informationen über die Standardverbindung finden Sie unter Legen Sie die Standardverbindung fest <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Folgen Sie diesem Beispiel, in dem die Verbindung
myopencatalogconnection
als Standard eingestellt ist:snow connection set-default myopencatalogconnection
Um sicherzustellen, dass 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 die CURRENT ROLE sollte POLARIS_ACCOUNT_ADMIN lauten.
+----------------+ | 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 die von Ihnen festgelegte standardmäßige Snowflake CLI-Verbindung nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen bekommen hat, müssen Sie die folgende Anweisung in Ihren Befehl 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 für die Sicherheitsintegration an; er 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: Feld Domain.<Die SAML-Protokoll-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 > Registerkarte Endpoints: Feld SAML-Protokoll URL.<Das Zertifikat von 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 > Registerkarte Certificate: Feöd Signing Certificates. Kopieren Sie den Wert zwischen <BEGIN CERTIFICATE> und <END CERTIFICATE\>.<orgname>
ist der Name Ihrer Snowflake-Organisation. Diesen Namen finden Sie unter Bevor Sie beginnen.<my-snowflake-open-catalog-account-name>
ist der Name Ihres Snowflake Open Catalog-Kontos. Diesen Namen finden 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 für die Sicherheitsintegration an; er muss für Ihr Konto eindeutig sein.<ENTITY ID>
ist der Entity ID-Wert, den Sie kopiert haben, als Sie eine Anwendung in Okta erstellt haben.<IDP SSO URL>
ist der Wert IDP SSO URL, den Sie kopiert haben, als Sie eine Anwendung in Okta erstellt haben.<Authentication Certificate>
ist der Wert des IDP-Authentifikator-Zertifikats, den Sie kopiert haben, als Sie eine Anwendung in Okta erstellt haben.<orgname>
ist der Name Ihrer Snowflake-Organisation. Diesen Namen finden Sie unter Bevor Sie beginnen.<my-snowflake-open-catalog-account-name>
ist der Name Ihres Snowflake Open Catalog-Kontos. Diesen Namen finden Sie unter Bevor Sie beginnen.
Überprüfen der Sicherheitsintegration¶
Sie können jeweils nur eine Sicherheitsintegration verwenden, und die gewünschte Integration muss aktiviert sein.
Bemerkung
Wenn die von Ihnen festgelegte standardmäßige Snowflake CLI-Verbindung nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen bekommen hat, müssen Sie die folgende Anweisung in Ihren Befehl aufnehmen: USE ROLE POLARIS_ACCOUNT_ADMIN
.
Um zu überprüfen, ob die Sicherheitsintegration, die Sie verwenden möchten, 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 den folgenden Befehl aus, um sie zu aktivieren:
snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;”
Erstellen eines Benutzers im Open Catalog-Konto¶
Damit SSO für einen Benutzer funktioniert, müssen Sie einen Open Catalog-Benutzer anlegen, der dem Benutzer entspricht, den Sie in Ihrem IdP angelegt haben.
Wichtig
Um einen Benutzer zu erstellen, müssen Sie die Snowflake CLI verwenden.
Wenn Sie einen Benutzer über die Open Catalog-UI anlegen, müssen Sie ein Kennwort angeben, mit dem sich der Benutzer über SSO oder mit den Open Catalog-Anmeldedaten anmelden kann.
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 einer der folgenden Angaben übereinstimmen:Der E-Mail, die Sie für den Benutzer in Auth0 angegeben haben.
Dem Benutzernamen, den Sie für den Benutzer in Okta angegeben haben.
<email>
ist die Email-Adresse des Benutzers. Wenn Sie Auth0 verwenden, passt dieser Wert zu <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 der E-Mail in Auth0 oder dem Benutzernamen in Okta übereinstimmen.