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, siehe Suchen 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
    
    Copy

    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                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

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>_.

  1. Folgen Sie diesem Beispiel, in dem die Verbindung myopencatalogconnection als Standard eingestellt ist:

    snow connection set-default myopencatalogconnection
    
    Copy
  2. 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();"
    
    Copy

    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 |
    +-----------------------+
    
    Copy

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';
    Copy

    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';
    Copy

    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.

  1. 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>;"
    
    Copy

    Wenn die Antwort SAML2_ENABLE_SP_INITIATED=true enthält, ist die SAML2-Sicherheitsintegration aktiviert.

  2. 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;
    Copy

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>';"
    
    Copy

    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';"
    
    Copy
  • Um zu überprüfen, ob Sie die Benutzer korrekt eingerichtet haben, führen Sie den folgenden Befehl aus:

    snow sql -q "show users;"
    
    Copy

    In der Antwort muss der Wert in der Spalte LOGIN_NAME mit der E-Mail in Auth0 oder dem Benutzernamen in Okta übereinstimmen.