アプリ仕様を使用したセキュリティ統合のリクエスト

このトピックでは、Snowflake Native App を構成し、コンシューマーアカウントでアプリ仕様を使用してセキュリティ統合へのアクセスをリクエストする方法を説明します。セキュリティ統合により、アプリは OAuth などのサードパーティの認証プロバイダーに接続できます。

アプリからのサードパーティ認証プロバイダーへのアクセス

サードパーティの認証サービスを実装するために、Snowflakeは セキュリティ統合を提供します。セキュリティ統合により、アプリは のようなサードパーティの認証サービスに接続できます。 OAuth.

注釈

Snowflake Native Apps タイプ API_AUTHENTICATION のセキュリティ統合のみをサポートします。詳細については、 CREATE SECURITY INTEGRATION (外部 API 認証) をご参照ください。

セキュリティ統合のアプリ仕様ワークフロー

セキュリティ統合を使用するようにアプリを構成するための一般的なワークフローは次のとおりです。

  1. プロバイダーは、アプリの :doc:` 権限の自動付与 <requesting-auto-privs>` 構成します。これにより、アプリにセキュリティ統合を作成する権限が付与されます。

    注釈

    アプリの仕様ではマニフェストファイルで manifest_version = 2 に設定します。

  2. プロバイダーは、マニュフェストファイルに :ref:`CREATE INTEGRATION 権限 <label-native_apps_app_spec_add_eai_priv> ` を追加します。

  3. プロバイダーが追加 必要に応じて、次のオブジェクトを作成するためにセットアップスクリプトに SQL のステートメントを実行します。

    • :doc:` セキュリティ統合 </sql-reference/sql/create-security-integration>`

    • ジョブ仕様

    プロバイダーはこれらのコマンドをセットアップスクリプトに直接追加できます。これにより、アプリのインストール時にこれらのオブジェクトが作成されます。または、これらのコマンドを実行時に呼び出されるストアドプロシージャに追加して、これらのオブジェクトを作成することもできます。

  4. コンシューマーは、アプリの構成時に OAuth 統合に関連する情報を承認します。コンシューマーがアプリ仕様を表示し、承認する方法については、アプリの仕様を使用した外部リソースへの接続の承認 をご参照ください。

セキュリティ統合のアプリ仕様定義

セキュリティ統合の場合は、アプリ仕様定義 には、サードパーティプロバイダーへの接続に必要なプロパティが含まれています。OAuth の場合、アプリ仕様定義は OAuth 型に依存します。以下のテーブルは、各タイプのアプリ仕様定義の一覧です。

セキュリティ統合タイプ

アプリ仕様で定義された値

CLIENT_CREDENTIALS

  • OAUTH_TOKEN_ENDPOINT (必須)

  • OAUTH_ALLOWED_SCOPES (必須)

AUTHORIZATION_CODE_GRANT

  • OAUTH_TOKEN_ENDPOINT (必須)

  • OAUTH_AUTHORIZATION_ENDPOINT (オプション)

JWT

  • OAUTH_TOKEN_ENDPOINT (必須)

  • OAUTH_AUTHORIZATION_ENDPOINT (オプション)

マニフェストファイルのバージョンを指定します。

アプリに対する権限の自動付与を有効にするには、次の例に示すように、マニフェストファイルの先頭でバージョンを設定します。

manifest_version: 2
Copy

マニフェストファイルに CREATEINTEGRATION 権限を追加する

アプリがセキュリティ統合を作成できるようにするには、次の例のように CREATE INTEGRATION 権限をマニフェストファイルに追加します。

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

マニフェストファイルの privileges セクションにあるこのエントリは、アプリがセキュリティ統合を使用することを指定します。アプリが権限の自動付与を使用するには、マニフェストファイルに manifest_version: 2 も必要です。

セットアップスクリプトにセキュリティ統合を追加する

セキュリティ統合により、アプリは OAuth のようなサードパーティの認証サービスに接続できます。 アプリのセキュリティ統合を作成するには、次の例に示すように、セットアップスクリプトに CREATE SECURITY INTEGRATION (外部 API 認証) コマンドを追加します。

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

この例は、クライアント認証情報を使用して、OAuth を使用してMicrosoft SharePoint に接続するセキュリティ統合を作成する方法を示しています。他の OAuth プロバイダーへサポートされている接続方法については CREATE SECURITY INTEGRATION (外部 API 認証) を参照してください。

セキュリティ統合のアプリ仕様を作成する

次の例は、CLIENT_CREDENTIALSOAuth タイプを使用して、セキュリティ統合のアプリ仕様を作成する方法を示しています:

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

注釈

アプリ仕様を作成するときに提供する値は、セキュリティ統合の作成 セットアップスクリプトの場合に使用する値と同じである必要があります。

他の OAuth タイプの使用については、ALTER APPLICATION SET SPECIFICATIONS をご参照ください。

コンシューマーアカウントでアプリ仕様を承認する

プロバイダーがアプリを構成して、セキュリティ統合とアプリ仕様を作成すると、コンシューマーはアプリ仕様を表示し、アプリの構成時に必要に応じて承認または拒否することができます。詳細については、 アプリの仕様を使用した外部リソースへの接続の承認 をご参照ください。