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

.NET-Treiber

v1.0.13 oder höher

Node.js-Treiber

v1.6.0 oder höher (für browserbasiertes SSO); v1.6.1 oder höher (für native SSO-Authentifizierung durch Okta)

Go-Treiber

v1.1.5 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)

Bearbeiten Sie im ODBC Data Source Administrator-Tool den DSN für Snowflake, und legen Sie für Authenticator den Wert externalbrowser fest.

.NET

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

Node.js

Setzen Sie die Option auf authenticator=EXTERNALBROWSER, wenn Sie die Funktion snowflake.createConnection aufrufen.

Go

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

Verwenden von Verbindungscaching zum Minimieren der Anzahl der Eingabeaufforderungen für die Authentifizierung – Optional

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.

Tipp

Das Verbindungscaching kann mit dem MFA-Token-Caching kombiniert werden.

Weitere Informationen zur Kombination dieser beiden Features finden Sie unter Verwenden von MFA-Tokencaching zur Minimierung der Anzahl von Eingabeaufforderungen bei der Authentifizierung – Optional.

Snowflake unterstützt das Verbindungscaching mit den folgenden Treibern und Konnektoren unter macOS und Windows (derzeit wird dieses Feature unter Linux nicht unterstützt):

  • Go-Treiber, Version 1.6.15 (oder höher)

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

  • ODBC-Treiber, Version 2.21.2 (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;
    
    Copy

    Bemerkung

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

  2. Fügen Sie das Paket oder die Bibliotheken hinzu, die der Treiber oder Konnektor benötigt:

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

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

      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 wie gezeigt in Anführungszeichen ein, um zu verhindern, dass die eckigen Klammern als Platzhalter interpretiert werden.

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

      pip install "snowflake-connector-python[secure-local-storage,pandas]"
      
      Copy
    • Weitere Informationen zum Snowflake-JDBC-Treiber finden Sie unter Hinzufügen der JNA-Klassen zu Ihrem Klassenpfad.

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

Bemerkung

Deaktivieren Sie Okta-MFA für den Benutzer, der die native SSO-Authentifizierung mit Clienttreibern verwendet. Wenden Sie sich für weitere Informationen an Ihren Okta-Administrator.

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_des_Okta-Kontos>.okta.com.

Client

Anleitung

SnowSQL

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

Python

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

JDBC

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

ODBC (Linux/macOS)

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

ODBC (Windows)

Bearbeiten Sie im ODBC Data Source Administrator-Tool den DSN für Snowflake, und legen Sie für Authenticator den Wert https://<Name_des_Okta-Kontos>.okta.com fest.

.NET

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

Node.js

Setzen Sie die Option authenticator beim Aufruf von snowflake.createConnection auf https://<Name_des_Okta-Kontos>.okta.com.

Upgrade auf Okta Identity Engine

Wenn Sie ein Upgrade von Okta Classic auf Okta Identity Engine für natives SSO vornehmen, müssen Sie Ihre Snowflake-Clienttreiber vor dem Upgrade aktualisieren.

Wenn nach dem Upgrade HTTP-429-Fehler auftreten, haben Sie höchstwahrscheinlich die Begrenzung für die Anforderungsrate erreicht, die der von den neuesten Clienttreibern verwendete Authentifizierungsendpunkt erzwingt. Weitere Informationen dazu finden Sie unter HTTP-Fehler 429 (unter diesem Thema).

HTTP-Fehler 429

Die Okta Identity Engine erfordert die Kommunikation über ihren Authentifizierungsendpunkt (/api/v1/authn), der derzeit eine Ratenbegrenzung von 20 Anforderungen pro Benutzer pro 5 Sekunden hat. Um die Okta Identity Engine zu unterstützen, verwenden die neuesten Snowflake-Clienttreiber diesen Authentifizierungsendpunkt und unterliegen daher der Ratenbegrenzung. Wenn die Begrenzung zu hoch ist, wenden Sie sich an den Okta-Support, um die Ratenbegrenzung des Authentifizierungsendpunkts zu erhöhen.

Snowflake-Clienttreiber wechselten in den folgenden Versionen zum Authentifizierungsendpunkt:

  • Go: 1.6.20

  • JDBC: 3.13.22

  • .NET: 2.0.20

  • Node.js: 1.6.21

  • ODBC: 2.25.5

  • Python: 2.7.12

  • SnowSQL: 1.2.24

  • SQLAlchemy: 1.4.6

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.

  • Mit bestimmten von Snowflake bereitgestellten Clients können Sie MFA-Token bis zu vier Stunden lang im Cache speichern. Weitere Informationen dazu finden Sie unter Verwenden von MFA-Tokencaching zur Minimierung der Anzahl von Eingabeaufforderungen bei der Authentifizierung – Optional.

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.

Diese Funktionalität unterstützt die URLs, um auf Snowflake als Zielgruppenwerte zuzugreifen. Die URLs für mehrere Snowflake-Konten werden unterstützt, da jedes Konto eine URL mit einem eindeutigen Kontobezeichner für den Zugriff auf Snowflake hat. Zusätzlich akzeptiert Snowflake als Zielgruppenwerte die Kontodomänennamen und die URLs für den Zugriff auf Snowflake mittels privater Konnektivität zum Snowflake-Dienst.

Weitere Informationen zu SSO und zur Umgehung des öffentlichen Internets finden Sie unter SSO mit privater Konnektivität (unter diesem Thema).

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.

Verwenden von SSO mit privater Konnektivität

Snowflake unterstützt SSO mit privater Konnektivität zum Snowflake-Dienst für Snowflake-Konten auf Amazon Web Services (AWS), Microsoft Azure und Google Cloud Platform (GCP).

Weitere Details dazu finden Sie unter SSO mit privater Konnektivität.