Sicherheitsintegrationen mit App-Spezifikationen anfordern

In diesem Thema wird beschrieben, wie Sie eine Snowflake Native App konfigurieren, um App-Spezifikationen zu verwenden, damit der Zugriff auf Sicherheitsintegrationen im Konto des Verbrauchenden angefordert wird. Durch Sicherheitsintegrationen kann sich eine App mit Authentifizierungsanbietenden von Drittanbietern wie OAuth verbinden.

Zugriff auf Authentifizierungsanbietende von Drittanbietern über eine App

Snowflake bietet Sicherheitsintegrationen für die Implementierung eines Authentifizierungsservice von Drittanbietern. Durch eine Sicherheitsintegration kann sich eine App mit einem Authentifizierungsservice eines Drittanbieters wie OAuth verbinden.

Bemerkung

Snowflake Native Apps unterstützen nur Sicherheitsintegrationen des Typs API_AUTHENTICATION. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).

Workflow zur App-Spezifikation bei Sicherheitsintegrationen

Der allgemeine Workflow für das Konfigurieren einer App zur Verwendung einer Sicherheitsintegration lautet wie folgt:

  1. Anbieter konfigurieren Automatisiertes Gewähren von Berechtigungen für die App. Auf diese Weise erhält die App Berechtigungen, um eine Sicherheitsintegration zu erstellen.

    Bemerkung

    App-Spezifikationen erfordern, dass manifest_version = 2 in der Manifest-Datei festgelegt wird.

  2. Anbietende fügen die Berechtigung CREATE INTEGRATION zur Manifest-Datei hinzu.

  3. Anbieter fügen dem Setup-Skript SQL-Anweisungen hinzu, um die folgenden Objekte nach Bedarf zu erstellen:

    Anbietende können diese -Befehle direkt in das Setup-Skript einfügen, sodass diese Objekte bei der Installation der App erstellt werden. Alternativ können diese Befehle zu einer gespeicherten Prozedur hinzugefügt werden, die zur Laufzeit aufgerufen wird, um diese Objekte zu erstellen.

  4. Die Verbrauchenden genehmigen Informationen in Bezug auf die OAuth-Integration bei der Konfiguration der App. Weitere Informationen darüber, wie Verbrauchende App-Spezifikationen anzeigen und genehmigen, finden Sie unter Verbindungen zu externen Ressourcen mit App-Spezifikationen genehmigen.

Definition von App-Spezifikationen für Sicherheitsintegrationen

Bei einer Sicherheitsintegration enthält die Definition der App-Spezifikationen die Eigenschaften, die für die Verbindung mit einem Drittanbieter erforderlich sind. Bei OAuth hängt die Definition der App-Spezifikation vom OAuth-Typ ab. Die folgende Tabelle listet die Definition der App-Spezifikation für jeden Typ auf:

Art der Sicherheitsintegration

Werte, die in der App-Spezifikation definiert sind

CLIENT_CREDENTIALS

  • OAUTH_TOKEN_ENDPOINT (erforderlich)

  • OAUTH_ALLOWED_SCOPES (erforderlich)

AUTHORIZATION_CODE_GRANT

  • OAUTH_TOKEN_ENDPOINT (erforderlich)

  • OAUTH_AUTHORIZATION_ENDPOINT (optional)

JWT

  • OAUTH_TOKEN_ENDPOINT (erforderlich)

  • OAUTH_AUTHORIZATION_ENDPOINT (optional)

Die Version der Manifest-Datei festlegen

Um das automatisierte Gewähren von Berechtigungen für eine App zu aktivieren, legen Sie die Version am Anfang der Manifest-Datei fest, wie im folgenden Beispiel gezeigt:

manifest_version: 2
Copy

Die Berechtigung CREATE INTEGRATION zur Manifest-Datei hinzufügen

Um einer App die Erstellung einer Sicherheitsintegration zu ermöglichen, fügen Sie die Berechtigung CREATE INTEGRATION zur Manifest-Datei hinzu, wie im folgenden Beispiel gezeigt:

manifest_version: 2
...
privileges:
  - CREATE INTEGRATION
      description: "Allows the app to create security integrations to access external auth providers"
...
Copy

Dieser Eintrag im Abschnitt privileges der Manifest-Datei gibt an, dass die App eine Sicherheitsintegration verwendet. Damit die App das automatisierte Gewähren von Berechtigungen nutzen kann, benötigt die Manifest-Datei auch manifest_version: 2.

Dem Setup-Skript eine Sicherheitsintegration hinzufügen

Durch Sicherheitsintegrationen kann sich eine App mit einem Authentifizierungsservice eines Drittanbieters wie OAuth verbinden. Um eine Sicherheitsintegration für eine App zu erstellen, fügen Sie dem Setup-Skript den Befehl CREATE SECURITY INTEGRATION (Externe API-Authentifizierung) hinzu, wie im folgenden Beispiel gezeigt:

CREATE SECURITY INTEGRATION external_oauth_provider
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
  OAUTH_CLIENT_ID = 'YOUR_CLIENT_ID'
  OAUTH_CLIENT_SECRET = 'YOUR_CLIENT_SECRET'
  OAUTH_GRANT = 'CLIENT_CREDENTIALS'
  OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
  OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default')
  ENABLED = TRUE;
Copy

Dieses Beispiel zeigt, wie Sie eine Sicherheitsintegration erstellen, um sich über OAuth mit Client-Anmeldeinformationen mit Microsoft SharePoint zu verbinden. Weitere unterstützte Methoden zum Verbinden mit einem OAuth-Anbieter finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).

Eine App-Spezifikation für eine Sicherheitsintegration erstellen

Das folgende Beispiel zeigt, wie Sie eine App-Spezifikation für eine Sicherheitsintegration mit dem CLIENT_CREDENTIALS OAuth-Typ erstellen:

ALTER APPLICATION SET SPECIFICATION oauth_app_spec
  TYPE = SECURITY_INTEGRATION
  LABEL = 'Connection to an external OAuth provider'
  DESCRIPTION = 'Integrates an external identity provider in the app'
  OAUTH_TYPE = 'CLIENT_CREDENTIALS'
  OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
  OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default');
Copy

Bemerkung

Die Werte, die Sie bei der Erstellung der App-Spezifikation angeben, müssen mit denen übereinstimmen, die Sie beim Erstellen der Sicherheitsintegration im Setup-Skript verwenden.

Weitere Informationen zur Verwendung anderer OAuth-Typen finden Sie unter ALTER APPLICATION SET SPECIFICATIONS.

App-Spezifikation im Konto des Verbrauchenden genehmigen

Nachdem der Anbietende die App konfiguriert hat, um die Sicherheitsintegration und die App-Spezifikation zu erstellen, können die Verbrauchenden die App-Spezifikation anzeigen und sie bei Bedarf während der Konfiguration der App genehmigen oder ablehnen. Weitere Informationen dazu finden Sie unter Verbindungen zu externen Ressourcen mit App-Spezifikationen genehmigen.