Snowflake ドライバー:OAuth 認証の設定と使用方法



この記事では、CData Snowflake ドライバーで Snowflake に接続する際に OAuth 認証を使用する方法を紹介します。

Snowflake は、2025年11月までにパスワードによる単一要素認証でのサインインをブロックすることを発表しています。2024年10月以降に作成された新規 Snowflake アカウントでは、パスワードでサインインする際に多要素認証(MFA)が必須となります。さらに、2025年11月からはすべてのユーザーに対してパスワード認証がブロックされます。

パスワード認証がブロックされると、CData Snowflake ドライバーで認証方法としてパスワード認証を指定した接続(「Auth Scheme」プロパティを「Password」に設定)は使用できなくなります。そのため、現在パスワード認証を使用しているユーザーは、この記事で紹介する OAuth 認証方式(またはキーペア認証、詳細はこちら)に切り替える必要があります。

CData Snowflake ドライバーは、Snowflake へのさまざまな認証方式に対応しています。OAuth 認証は、資格情報やキーペアを渡す代わりに、ユーザーがサービスに直接認証を行う方式です。ドライバーからキーペア認証を使用して接続するには、キーペアの秘密鍵を用意し、公開鍵をログインユーザーに割り当てる必要があります。この記事では、Snowflake で OAuth を設定し、CData Snowflake ドライバーから OAuth を使用する方法を説明します。

Snowflake での OAuth 設定

Snowflake で OAuth を設定するには、「セキュリティ統合」オブジェクトを作成します。これは Snowflake と CData 製品の統合を容易にするもので、OAuth クライアント ID とクライアントシークレットを取得します。

セキュリティ統合の作成

ACCOUNTADMIN ロール(またはグローバルな CREATE INTEGRATION 権限)を持つユーザーとして、Snowflake で CREATE SECURITY INTEGRATION コマンドを実行します。

CREATE SECURITY INTEGRATION TEST_OAUTH
    TYPE = OAUTH
    ENABLED = TRUE
    OAUTH_CLIENT = CUSTOM
    OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
    OAUTH_REDIRECT_URI = 'https://localhost.com'
    OAUTH_ISSUE_REFRESH_TOKENS = TRUE;

上の例では、セキュリティ統合の名前を「TEST_OAUTH」とし、トークンの更新を許可し、リダイレクト URI を localhost に設定しています。これは、統合するツールがユーザーのマシン上(オンプレミスまたはプライベートクラウド)で直接実行されることを想定しています。

セキュリティ統合が完了すると、Snowflake はクエリ結果に成功メッセージを返します。

クライアント ID とクライアントシークレットの取得

SELECT クエリを使用して、セキュリティ統合の資格情報を取得します。ACCOUNTADMIN ロール(またはそれ以上の権限)を持つユーザーとしてクエリを実行してください。

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('TEST_OAUTH');

このクエリは、CData 製品で OAuth 認証を設定するために必要なクライアント ID とクライアントシークレットを返します。

(オプション)その他のセキュリティ統合操作

すべての統合を一覧表示

show integrations;

統合の削除

drop integration if exists <integration_name>

クライアント ID、クライアントシークレット、リダイレクト URI、およびその他の Snowflake インスタンスプロパティがあれば、CData 製品で OAuth 認証を設定する準備が整います。

CData Snowflake ドライバーで OAuth 認証を使用して接続する方法

ドライバーで OAuth 認証を使用するには、「AuthScheme」プロパティを「OAUTH」に設定し、必要な認証情報を設定します。OAuth 認証に必要なプロパティは以下のとおりです:

接続プロパティ詳細または推奨値
URLSnowflake アカウントの URL
Warehouse対象のウェアハウス
User認証ユーザーのユーザー名
AuthSchemeOAuth
InitiateOAuthGETANDREFRESH*
CallbackUrlセキュリティ統合作成時に設定したリダイレクト URL
OAuthClientIdセキュリティ統合から取得した OAuth クライアント ID
OAuthClientSecretセキュリティ統合から取得した OAuth クライアントシークレット

* - InitiateOAuth プロパティにはさまざまなオプションがあります。「GETANDREFRESH」を使用すると、CData 製品が初回認証を自動的に処理し、有効期限が切れた認証を自動的に更新するように設定されます。詳細については、ヘルプドキュメントを参照してください。


CData Snowflake 製品での接続例

上記の接続手順を参考に、お使いの CData 製品で適切に接続を設定してください。

CData JDBC Driver for Snowflake

JDBC ドライバーでは、JDBC URL に接続プロパティを指定するだけで接続できます。

jdbc:snowflake:AuthScheme=OAuth; InitiateOAuth=GETANDREFRESH; Url=https://xxxxx.us-east-1.snowflakecomputing.com; Warehouse=TEST_WAREHOUSE; CallbackUrl=https://localhost:33333; OAuthClientId="<my_client_id>"; OAuthClientSecret="<my_client_secret>";

CData ODBC Driver for Snowflake

ODBC ドライバーでは、DSN 設定ウィザードで接続プロパティを設定します。

CallbackUrlInitiateOAuth プロパティは「詳細設定」タブにあります。

どの CData 製品を使用していても、OAuth フローにより Snowflake に直接サインインして認証を行うことができます。資格情報を入力すると、ドライバーまたはコネクタがプロセスを完了します(継続的な統合に使用するトークンを取得します)。

これで、CData Snowflake ドライバーで OAuth 認証を行う準備が整いました。CData Snowflake ドライバーは30日間無料トライアルが可能ですので、Snowflake との連携をご検討の方は、ぜひお試しください。

Snowflake ドライバーはキーペア認証にも対応しています。キーペア認証での接続については、別の記事(Snowflake ドライバー:キーペア認証の設定と使用方法)を参照してください。

始める準備はできましたか?

Snowflake 用ドライバーの詳細、または無料トライアルをダウンロード:

今すぐダウンロード