Verwenden und Verwalten der Verbundauthentifizierung

Unter diesem Thema wird beschrieben, wie Sie die Verbundauthentifizierung verwalten und verwenden, nachdem sie konfiguriert wurde.

Unter diesem Thema:

Verwalten von Benutzern mit aktivierter Verbundauthentifizierung

Verwalten von Snowflake-Benutzerkennwörtern

Wenn die Verbundauthentifizierung für Ihr Konto aktiviert ist, kann Snowflake weiterhin die Benutzer-Anmeldeinformationen von Snowflake (Anmeldename und Kennwort) verwalten und verwenden. Mit anderen Worten:

  • Konto- und Sicherheitsadministratoren können weiterhin Benutzer mit Kennwörtern erstellen, die in Snowflake gepflegt werden.

  • Benutzer können sich weiterhin mit ihren Snowflake-Anmeldeinformationen bei Snowflake anmelden.

Wenn jedoch die Verbundauthentifizierung für Ihr Konto aktiviert ist, wird die Pflege von Benutzerkennwörtern in Snowflake nicht empfohlen. Stattdessen sollten Benutzerkennwörter ausschließlich von Ihrem IdP gewartet werden.

Wenn Sie einen Benutzer ohne Kennwort anlegen (oder einen bestehenden Benutzer ändern und sein Kennwort entfernen), wird die Snowflake-Authentifizierung für den Benutzer wirksam deaktiviert. Ohne ein Kennwort in Snowflake kann sich ein Benutzer nicht mit der Snowflake-Authentifizierung anmelden und muss stattdessen die Verbundauthentifizierung verwenden. Beachten Sie, dass Sie die Snowflake-Weboberfläche nicht verwenden können, um Benutzer ohne Kennwörter zu erstellen oder Kennwörter bestehender Benutzern zu entfernen. Sie müssen CREATE USER oder ALTER USER verwenden.

Insbesondere empfehlen wir Ihnen, die Snowflake-Authentifizierung für alle Benutzer zu deaktivieren, die keine Administratoren sind.

Wichtig

Die Benutzereigenschaft MUST_CHANGE_PASSWORD gilt nicht für die Verbundauthentifizierung und sollte nicht verwendet werden. Insbesondere wenn Sie sich dafür entscheiden, Kennwörter nicht in Snowflake für Benutzer zu pflegen, achten Sie darauf, dass diese Eigenschaft für diese Benutzer auf FALSE gesetzt ist.

Außerdem muss mindestens ein Snowflake-Kontoadministrator mit einem Snowflake-Kennwort vorhanden sein. Dadurch wird sichergestellt, dass ein Kontoadministrator jederzeit auf Snowflake zugreifen kann, um die Verbundauthentifizierung zu verwalten und auftretende Probleme zu beheben.

Benutzer deaktivieren und löschen

Als Konto- oder Sicherheitsadministrator in Snowflake halten Sie es ggf. für notwendig, einen Benutzer zu löschen oder, wahrscheinlicher, zu deaktivieren. Benutzer, die in Snowflake gelöscht oder deaktiviert wurden, können sich weiterhin in ihren Okta-Konten anmelden, erhalten aber eine Fehlermeldung, wenn sie versuchen, sich mit Snowflake zu verbinden. Sie müssen den Benutzer neu anlegen oder aktivieren, bevor er sich anmelden kann.

Sie können Benutzer entweder über die Snowflake-Weboberfläche oder die entsprechenden SQL-Befehle löschen/erstellen und deaktivieren/aktivieren.

Verwenden von SSO bei Clientanwendungen, die sich mit Snowflake verbinden

Mit einem für Ihr Konto konfigurierten IdP (Okta, ADFS oder andere unterstützte SAML 2.0-konforme Services/Anwendungen) ermöglicht Snowflake die Verwendung von SSO zur Verbindung und Authentifizierung bei den folgenden von Snowflake bereitgestellten Clients:

SnowSQL

v1.1.43 oder höher

Python-Konnektor

v1.4.8 oder höher

JDBC-Treiber

v3.2.7 oder höher

ODBC-Treiber

v2.13.11 oder höher

Snowflake unterstützt zwei Methoden der Authentifizierung:

  • Browser-basiertes SSO

  • Programmgesteuertes SSO (nur für Okta)

Wichtig

Bei der Verwendung von SSO für Clientanwendungen müssen Benutzer bei Aufforderung ihre Anmeldeinformationen eingeben. Aus Sicherheitsgründen werden diese jedoch niemals über den Client verarbeitet. Stattdessen werden die Anmeldeinformationen zur Authentifizierung an den IdP gesendet, und der IdP sendet eine gültige SAML-Antwort zurück, die es dem Client ermöglicht, eine Snowflake-Sitzung zu starten.

Browser-basiertes SSO

Wenn Benutzer die erforderliche Version (oder höher) der von Snowflake bereitgestellten Clients installiert haben, können sie sich mit browserbasiertem SSO bei Snowflake anmelden.

Funktionsweise von browserbasiertem SSO

Wenn eine Clientanwendung für die Verwendung von browserbasiertem SSO konfiguriert ist, erfolgt die Benutzerauthentifizierung der Anwendung in folgenden Schritten:

  1. Die Anwendung startet den Standard-Webbrowser im Betriebssystem des Benutzers oder öffnet eine neue Browser-Registerkarte bzw. ein neues Browser-Fenster, in dem die Authentifizierungsseite des IdP angezeigt wird.

  2. Der Benutzer gibt seine IdP-Anmeldeinformationen (Benutzername und Kennwort) ein.

  3. Wenn der Benutzer für die MFA (mehrstufige Authentifizierung) in Snowflake registriert ist, wird er aufgefordert, die MFA-Kennung einzugeben (von einem anderen Gerät gesendet) oder die Authentifizierung zu bestätigen (auf dem anderen Gerät).

  4. Wenn der IdP die Anmeldeinformationen des Benutzers authentifiziert hat, wird im Browser eine Erfolgsmeldung angezeigt. Der Benutzer kann dann die Browser-Registerkarte bzw. das Browser-Fenster schließen (muss nach der Authentifizierung nicht geöffnet werden) und zur Anwendung zurückkehren, um die initiierte Snowflake-Sitzung zu verwenden.

Voraussetzungen für die Verwendung von browserbasiertem SSO

Bei browserbasiertem SSO muss der von Snowflake bereitgestellte Client (z. B. der Snowflake-JDBC-Treiber) den Webbrowser des Benutzers öffnen können. Aus diesem Grund müssen der von Snowflake bereitgestellte Client und die Clientanwendung, die ihn verwendet, auf dem Computer des Benutzers installiert sein. Browserbasiertes SSO funktioniert nicht, wenn auf dem von Snowflake bereitgestellten Client Code angewendet werden soll, der auf einem Server ausgeführt wird.

Einrichten von browserbasiertem SSO

Um browserbasiertes SSO für die Authentifizierung einzurichten, setzen Sie den Anmeldeparameter/die Option authenticator für den Client auf externalbrowser.

Client

Anleitung

SnowSQL

Geben Sie beim Starten des Clients das Befehlszeilenflag --authenticator externalbrowser an.

Python

Übergeben Sie authenticator='externalbrowser' an die Funktion snowflake.connector.connect().

JDBC

Geben Sie in der Verbindungszeichenfolge für den Treiber authenticator=externalbrowser an.

ODBC (Linux/macOS)

Geben Sie authenticator=externalbrowser in der odbc.ini-Datei an.

ODBC (Windows)

Verwenden Sie regedit, um den Wert in der Windows-Registrierung festzulegen.

.NET

Geben Sie in der Verbindungszeichenfolge für den Treiber authenticator=externalbrowser an.

(Optional) Verwenden von Verbindungs-Caching zum Minimieren der Anzahl der Eingabeaufforderungen für die Authentifizierung

Immer, wenn eine Clientanwendung eine neue Verbindung zu Snowflake herstellt, wird der Benutzer zur Authentifizierung aufgefordert. Dies kann zu mehreren Eingabeaufforderungen für die Authentifizierung führen, wenn die Clientanwendung mehrmals eine Verbindung herstellt.

Um die Häufigkeit zu minimieren, mit der ein Benutzer zur Authentifizierung aufgefordert wird, kann der Kontoadministrator das Verbindungscaching aktivieren.

Wenn das Verbindungscaching aktiviert ist, speichert die Clientanwendung ein Verbindungstoken zur Verwendung bei nachfolgenden Verbindungen. Aus Sicherheitsgründen wird das Verbindungstoken im Keystore des Betriebssystems gespeichert. Bevor Sie das Verbindungscaching aktivieren, wenden Sie sich an Ihr Sicherheitsteam, um festzustellen, ob Verbindungscaching den Sicherheitsrichtlinien entspricht.

Bemerkung

Das Verbindungscaching ist optional und nicht erforderlich, um browserbasiertes SSO verwenden zu können.

Snowflake unterstützt das Verbindungcaching mit den folgenden Treibern und Konnektoren unter macOS und Windows (derzeit wird diese Funktion unter Linux nicht unterstützt):

  • ODBC-Treiber, Version 2.21.2 (oder höher)

  • JDBC-Treiber, Version 3.12.8 (oder höher)

  • Snowflake-Konnektor für Python 2.2.8 (oder höher)

So aktivieren Sie das Verbindungscaching:

  1. Setzen Sie den Parameter ALLOW_ID_TOKEN auf Kontoebene auf true:

    alter account set allow_id_token = true;
    

    Bemerkung

    Sie müssen ein Kontoadministrator sein (d. h. ein Benutzer mit der Rolle ACCOUNTADMIN), um das Verbindungscaching aktivieren zu können.

  2. Wenn Sie den Snowflake-Konnektor für Python verwenden, installieren Sie das optionale Schlüsselringpaket, indem Sie Folgendes ausführen:

    pip install "snowflake-connector-python[secure-local-storage]"
    

    Sie müssen die eckigen Klammern ([ und ]) wie im Befehl angegeben eingeben. Die eckigen Klammern geben den zusätzlichen Teil des Pakets an, der installiert werden soll.

    Schließen Sie den Namen des Pakets in Anführungszeichen ein (wie gezeigt), um zu verhindern, dass die eckigen Klammern als Platzhalter interpretiert werden.

    Wenn Sie andere Extras installieren müssen (z. B. pandas zur Verwendung der Python-Konnektor-APIs für Pandas), verwenden Sie ein Komma zwischen den Extras:

    pip install "snowflake-connector-python[secure-local-storage,pandas]"
    

Natives SSO – Nur Okta

Wenn Okta Ihr IdP ist, unterstützt Snowflake auch die native Authentifizierung über Okta. Diese Authentifizierungsmethode ist nützlich, wenn Sie SSO mit einem Client verwenden, der keinen Zugriff auf einen Webbrowser hat (z. B. programmgesteuerte Verbindung über den Python-Konnektor oder über den JDBC- bzw. ODBC-Treiber).

Um natives SSO durch Okta zu aktivieren, setzen Sie den Anmeldeparameter/die Option authenticator für den Client auf den Okta-URL-Endpunkt (von Okta bereitgestellt), normalerweise in der Form https://<Name_Ihres_Okta-Kontos>.okta.com.

Client

Anleitung

SnowSQL

Geben Sie beim Starten des Clients das Befehlszeilenflag --authenticator https://<Name_Ihres_Okta-Kontos>.okta.com an.

Python

Übergeben Sie authenticator='https://<Name_Ihres_Okta-Kontos>.okta.com' an die Funktion snowflake.connector.connect().

JDBC

Legen Sie in der Verbindungszeichenfolge für den Treiber authenticator=https://<Name_Ihres_Okta-Kontos>.okta.com fest.

ODBC (Linux/macOS)

Geben Sie authenticator=https://<Name_Ihres_Okta-Kontos>.okta.com in der odbc.ini-Datei an.

ODBC (Windows)

Verwenden Sie regedit, um den Wert in der Windows-Registrierung festzulegen.

.NET

Legen Sie in der Verbindungszeichenfolge für den Treiber authenticator=https://<Name_Ihres_Okta-Kontos>.okta.com fest.

Verwenden von SSO mit MFA

Snowflake unterstützt die Verwendung von MFA in Verbindung mit SSO, um zusätzliche Sicherheitsstufen zu bieten:

  • Einzelne Benutzer in Snowflake können sich bei MFA anmelden. Wenn ein Snowflake-Benutzer bei MFA angemeldet ist und SSO zur Verbindung verwendet, wird der MFA-Anmelde-Workflow innerhalb des SSO-Workflows eingeleitet und für den erfolgreichen Abschluss der Authentifizierung benötigt. Weitere Informationen über MFA in Snowflake finden Sie unter Mehrstufige Authentifizierung (MFA).

    Bemerkung

    Um sich über Okta-SSO mit MFA zu verbinden, benötigt Snowflake die Verwendung von browserbasiertem SSO. Wenn Sie natives SSO für Okta verwenden, wird MFA nicht unterstützt.

  • Möglicherweise unterstützt Ihr IdP ebenfalls MFA, aber dies ist getrennt von MFA in Snowflake und muss separat über Ihren IdP konfiguriert werden. Wenn MFA für Ihren IdP aktiviert ist, bestimmt der IdP den Workflow. Um festzustellen, ob Ihr IdP MFA unterstützt und wie es implementiert wird, lesen Sie die Dokumentation zu Ihrem IdP.

Verwenden von SSO mit mehreren Zielgruppenwerten

Snowflake unterstützt mehrere Zielgruppenwerte (z. B. Zielgruppe oder Zielgruppeneinschränkungsfelder) in der SAML 2.0 -Assertion des Identitätsanbieters für Snowflake.

Mit dieser Funktion können Kunden URLs für mehr als ein Konto angeben, z. B. eine AWS PrivateLink-URL und eine Nicht-AWS PrivateLink-URL. Snowflake akzeptiert die Kontodomänennamen für die Zielgruppenwerte.

Derzeit unterstützt und akzeptiert Snowflake bis zu vier unterschiedliche Zielgruppenwerte. In Snowflake ist keine Konfiguration erforderlich. Wenn Sie mehr als vier Zielgruppenwerte angeben müssen, wenden Sie sich an den Snowflake-Support.

Wenn Sie Hilfe beim Konfigurieren von SAML 2.0-Zielgruppenwerten benötigen, wenden Sie sich an den Administrator des Identitätsanbieters Ihrer Organisation.