アプリ仕様を使用したセキュリティ統合のリクエスト¶
このトピックでは、Snowflake Native App を構成し、コンシューマーアカウントでアプリ仕様を使用してセキュリティ統合へのアクセスをリクエストする方法を説明します。セキュリティ統合により、アプリは OAuth などのサードパーティの認証プロバイダーに接続できます。
アプリからのサードパーティ認証プロバイダーへのアクセス¶
サードパーティの認証サービスを実装するために、Snowflakeは セキュリティ統合を提供します。セキュリティ統合により、アプリは のようなサードパーティの認証サービスに接続できます。OAuth.
注釈
Snowflake Native Apps タイプ
API_AUTHENTICATIONのセキュリティ統合のみをサポートします。詳細については、 CREATE SECURITY INTEGRATION (外部 API 認証) をご参照ください。
セキュリティ統合のアプリ仕様ワークフロー¶
セキュリティ統合を使用するようにアプリを構成するための一般的なワークフローは次のとおりです。
プロバイダーは、アプリの :doc:` 権限の自動付与 <requesting-auto-privs>` 構成します。これにより、アプリにセキュリティ統合を作成する権限が付与されます。
注釈
App specifications require that
manifest_version: 2be set in the manifest file.プロバイダーは、マニフェストファイルに CREATE SECURITY 権限 INTEGRATION を追加します。
プロバイダーが追加 必要に応じて、次のオブジェクトを作成するためにセットアップスクリプトに SQL のステートメントを実行します。
:doc:` セキュリティ統合 </sql-reference/sql/create-security-integration>`
プロバイダーはこれらのコマンドをセットアップスクリプトに直接追加できます。これにより、アプリのインストール時にこれらのオブジェクトが作成されます。または、これらのコマンドを実行時に呼び出されるストアドプロシージャに追加して、これらのオブジェクトを作成することもできます。
コンシューマーは、アプリの構成時に OAuth 統合に関連する情報を承認します。コンシューマーがアプリ仕様を表示し、承認する方法については、 Approve app specifications をご参照ください。
セキュリティ統合のアプリ仕様定義¶
セキュリティ統合の場合は、アプリ仕様定義 には、サードパーティプロバイダーへの接続に必要なプロパティが含まれています。OAuth の場合、アプリ仕様定義は OAuth 型に依存します。以下のテーブルは、各タイプのアプリ仕様定義の一覧です。
セキュリティ統合タイプ |
アプリ仕様で定義された値 |
|---|---|
|
|
|
|
|
|
マニフェストファイルのバージョンを指定します。¶
アプリに対する権限の自動付与を有効にするには、次の例に示すように、マニフェストファイルの先頭でバージョンを設定します。
manifest_version: 2
マニフェストファイルに CREATESECURITYINTEGRATION 権限を追加する¶
アプリがセキュリティ統合を作成できるようにするには、次の例のように
CREATE SECURITY INTEGRATION権限をマニフェストファイルに追加します。manifest_version: 2 ... privileges: - CREATE SECURITY INTEGRATION: description: "Allows the app to create security integrations to access external auth providers" ...
マニフェストファイルで manifest_version を2に設定した場合、Snowflakeは、インストールまたはアップグレード中にアプリに CREATE SECURITY INTEGRATION 権限を自動的に付与します。
セットアップスクリプトにセキュリティ統合を追加する¶
セキュリティ統合により、アプリは 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;
この例は、クライアント認証情報を使用して、OAuth を使用してMicrosoft Graph に接続するセキュリティ統合を作成する方法を示しています。他の 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');
注釈
アプリ仕様を作成するときに提供する値は、セキュリティ統合の作成 セットアップスクリプトの場合に使用する値と同じである必要があります。
他の OAuth タイプの使用については、ALTER APPLICATION SET SPECIFICATIONS をご参照ください。
コンシューマーアカウントでアプリ仕様を承認する¶
プロバイダーがアプリを構成して、セキュリティ統合とアプリ仕様を作成すると、コンシューマーはアプリ仕様を表示し、アプリの構成時に必要に応じて承認または拒否することができます。詳細については、 Approve app specifications をご参照ください。