パートナーアプリケーション用Snowflake OAuth の構成

このトピックでは、サポートされるSnowflakeパートナーアプリケーション用にSnowflakeへのSnowflake OAuth アクセスを構成する方法について説明します。このプロセスでは、統合を作成する必要があります。これは、Snowflakeとサードパーティのアプリケーションまたはサービスの間のインターフェイスを定義するファーストクラスのSnowflakeオブジェクトです。

重要

サードパーティアプリケーションを使用してSnowflakeに接続する場合、アプリケーションで使用される統合フローが内部セキュリティ要件を満たしていることを確認するようにお勧めします。この機能で使用するエンドツーエンドフローの詳細については、パートナーに直接お問い合わせください。

注釈

セカンダリロールへのセッション中のロール切り替えは、Snowflake OAuth ではサポートされていません。

OAuth ワークフローでこの動作が必要な場合は、代わりに外部 OAuth を使用してください。

詳細については、 外部 OAuth でのセカンダリロールの使用 をご参照ください。

現在、Snowflake OAuth は次のアプリケーションをサポートしています。

クライアント

必要なクライアントバージョン

クライアントタイプ

Tableau Desktop / Server / Online 1

2019.1またはそれ以上

パブリック

Looker 2

6.20またはそれ以上

Alation

Alationのドキュメント を参照

ThoughtSpot

ThoughtSpot ドキュメント を参照

Collibra

Collibraのドキュメント を参照

1

Tableau ServerがSnowflakeサービスへのプライベート接続を使用してSnowflakeに接続している場合は、パートナーアプリケーション用に設計された統合ではなく、カスタムセキュリティ統合を使用する必要があります。手順については、 カスタムクライアント用のSnowflake OAuth の構成 をご参照ください。プライベート URL を使用するかどうかに関係なく、Tableau Desktopは引き続きパートナーアプリケーション統合を使用します。

2

同様に、Lookerは、Lookerがホストするインスタンスがパブリックインターネットにアクセスできる場合にのみ OAuth をサポートします。この制限は、お客様がホストするLookerの実装(つまり、オンプレミス実装)には影響しません。したがって、Snowflakeサービスへのプライベート接続を使用しているお客様の場合は、Snowflakeで OAuth とLookerを使用しようとすると問題が発生する可能性があります。質問や詳細については、Lookerにお問い合わせください。

このトピックの内容:

Snowflake OAuth 統合を構成する

CREATE SECURITY INTEGRATION コマンドを使用して統合を作成します。統合は、SnowflakeとSnowflake OAuth をサポートするクライアントなどのサードパーティサービス間のインターフェイスを提供する、Snowflakeオブジェクトです。

注釈

この SQL コマンドを実行できるのは、アカウント管理者(つまり、 ACCOUNTADMIN システムロールを持つユーザー)またはグローバル CREATE INTEGRATION 権限を持つロールのみです。

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
  <name>
  TYPE = OAUTH
  ENABLED = { TRUE | FALSE }
  OAUTH_CLIENT = <partner_application>
  oauthClientParams
  [ COMMENT = '<string_literal>' ]
Copy

条件:

oauthClientParams

oauthClientParams ::=
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Copy

統合の使用から特定のロールをブロックする

オプションの BLOCKED_ROLES_LIST パラメーターを使用すると、統合での使用をユーザーが明示的に同意 できない Snowflakeロールをリストできます。

デフォルトでは、 ACCOUNTADMIN、 SECURITYADMIN、 ORGADMIN のロールはこのリストに含まれており、削除できません。ユーザーがこれらのロールでSnowflake OAuth を使用できるようにするビジネス上のニーズがあり、セキュリティチームがそれを許可している場合は、 Snowflakeサポート に連絡し、アカウントに対してこれらのロールを許可するようにリクエストしてください。

ログイン頻度の制御

ユーザーが正常に認証されると、パートナーアプリケーションはパブリッシュされた更新トークンを使用して、有効期限が短いアクセストークンをリクエストし、更新トークンの有効期限が切れるまで、ログインプロセスを繰り返すように求めることはありません。オプションの OAUTH_REFRESH_TOKEN_VALIDITY パラメーターは、更新トークンが有効な時間の長さ(秒単位)を指定します。この設定を使用すると、更新トークンを定期的に期限切れにして、ユーザーにログインプロセスの繰り返しを強制できます。

OAUTH_REFRESH_TOKEN_VALIDITY パラメーターでサポートされる最小値、最大値、およびデフォルト値は次のとおりです。

アプリケーション

最小

最大

デフォルト

Tableau Desktop

60 (1分)

36000 (10時間)

36000 (10時間)

Tableau ServerまたはTableau Online

60 (1分)

7776000 (90日)

7776000 (90日)

ビジネスで最小値を下げるか、最大値を上げる必要がある場合は、 Snowflakeサポート に連絡して、アカウントの変更をリクエストしてください。

パートナーアプリケーション用Snowflake OAuth でのクライアントリダイレクトの使用

Snowflakeは、サポートされているSnowflakeクライアントでのクライアントリダイレクトおよび Snowflake OAuth の使用を含め、パートナーアプリケーション向けSnowflake OAuth でのクライアントリダイレクトの使用をサポートしています。

詳細については、 クライアント接続のリダイレクト をご参照ください。

ネットワークポリシーの管理

Snowflakeは、Snowflake OAuth のネットワークポリシーをサポートしています。詳細については、 ネットワークポリシー をご参照ください。

Tableau Desktop

次の例では、デフォルト設定でSnowflake OAuth 統合を作成します。

CREATE SECURITY INTEGRATION td_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

DESCRIBE INTEGRATION を使用して統合設定を表示します。

DESC SECURITY INTEGRATION td_oauth_int1;
Copy

次の例では、10時間(36000秒)後に期限切れになる更新トークンを使用してSnowflake OAuth 統合を作成します。統合により、ユーザーは SYSADMIN をアクティブロールとしてセッションを開始できなくなります。

CREATE SECURITY INTEGRATION td_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 36000
  BLOCKED_ROLES_LIST = ('SYSADMIN')
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

Tableau ServerまたはTableau Online

次の例では、デフォルト設定でSnowflake OAuth 統合を作成します。

CREATE SECURITY INTEGRATION ts_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER;
Copy

DESCRIBE INTEGRATION を使用して統合設定を表示します。

DESC SECURITY INTEGRATION ts_oauth_int1;
Copy

次の例では、1日(86400秒)後に期限切れになる更新トークンを使用してSnowflake OAuth 統合を作成します。統合により、ユーザーは SYSADMIN をアクティブロールとしてセッションを開始できなくなります。

CREATE SECURITY INTEGRATION ts_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  BLOCKED_ROLES_LIST = ('SYSADMIN');
Copy

パートナーアプリケーションからのSnowflakeへのログイン

Tableau

Tableauが提供する 手順 に従い、OAuth を使用してSnowflakeに接続します。

重要

現在、Tableauアプリケーションはユーザーの既定のロールのみを認証できます。または、デフォルトロールが設定されていない場合、PUBLIC ロールがセッションのアクティブなロールとして使用されます。

Looker

Lookerが提供する 手順 に従って、Snoflake OAuth を使用してSnowflakeに接続します。

Alation

Alation Community にアクセスし、Alationが提供する手順に従って、Snowflake OAuth を使用してSnowflakeに接続します。

ThoughtSpot

ThoughtSpot ドキュメント にアクセスし、手順に従ってSnowflakeへの接続を作成します。これには、 Snowflake OAuth を構成するためのステップが含まれています。

Collibra

Collibraドキュメント にアクセスし、Collibraの手順に従って、Snowflake OAuth を使用してSnowflakeに接続します。

エラーコード

OAuth に関連付けられたエラーコードのリスト、および認証フロー、トークンのリクエストまたは交換中、または OAuth フロー完了後のSnowflakeセッション作成時に JSON BLOBで返されるエラーについては、 エラーコード をご参照ください。