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 unter Suchen 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
    
    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

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

  1. Folgen Sie diesem Beispiel, bei dem die myopencatalogconnection-Verbindung als Standard festgelegt ist:

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

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

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

    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.

  1. 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>;"
    
    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 zur Aktivierung den folgenden Befehl aus:

    snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;
    Copy

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

    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';"
    
    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 Email in Auth0 oder Username in Okta übereinstimmen.