接続の設定
コネクタのインストール 後、Snowflake 内のデータのデータソースに接続して作成できます。
データソースの設定
データに接続するには、次の手順を実行してください:
- 接続 | To a Server で詳細をクリックします。
- Snowflake by CData というデータソースを選択します。
- 接続に必要な情報を入力します。
- サインインをクリックします。
- 必要に応じて、データベースおよびスキーマを選択して利用可能なテーブルとビューを確認できます。
Connection Builder の使用
connector は、代表的な接続プロパティをTableau 内で直接利用できるようにします。 しかし、より高度な設定が必要な場合や接続に関するトラブルシューティングが必要な場合には、使いにくいことがあります。 connector には、Tableau の外で接続を作成してテストできる、独立したConnection Builder が付属しています。
Connection Builder にアクセスする方法は2つあります。
- Windows では、スタートメニューのCData Tableau Connector for Snowflake フォルダの下にあるConnection Builder というショートカットを使用します。
- また、ドライバーのインストールディレクトリに移動し、lib ディレクトリで.jar ファイルを実行することによってもConnection Builder を開始できます。
Connection Builder では、接続プロパティに値を設定し、接続テストをクリックしてその動作を確認できます。 また、クリップボードにコピーボタンを使用して、接続文字列をコピーすることもできます。 この接続文字列は、Tableau 内のconnector 接続ウィンドウにあるConnection String オプションに指定できます。
Snowflake への接続
認証する前に、以下のプロパティを設定してSnowflake 接続を定義します。
- URL:自身のSnowflake URL、例えばhttps://orgname-myaccount.snowflakecomputing.com。
- Legacy URL を使用する場合:https://myaccount.region.snowflakecomputing.com。
- 自身のURL を見つけるには:
- Snowflake UI の左下にある自身の名前をクリックします。
- Account ID にカーソルを合わせます。
- Copy Account URL アイコンをクリックして、アカウントURL をコピーします。
- Database(オプション):connector によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限します。
- Schema(オプション):connector によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限します。
Snowflake への認証
connector は、デフォルトでOAuth 認証をサポートし、フェデレーションID プロバイダーとキーベースログインの複数のオプションも提供します。
使用したい認証方法を指定するには、AuthScheme プロパティを設定します。
OAuth
OAuth で認証するには、AuthScheme をOAuth に設定します。
OAuth 認証を完了するには、カスタムOAuth アプリの作成 を参照してください。その後、次の接続プロパティを設定します。
- OAuthClientId:登録したOAuth アプリケーションのクライアントID に設定。
- OAuthClientSecret:登録したアプリケーションのクライアントシークレットに設定。
- CallbackURL:OAuth アプリ設定で構成されたリダイレクトURI に設定。
connector は、特定のID プロバイダー向けのOAuth ベースの認証スキームもサポートしています。 これらのスキームは標準のOAuth 設定を拡張し、ブラウザベースのログインまたはヘッドレス認証のいずれかをサポートします。 ID プロバイダーによって、以下のOAuth ベースの認証スキームが追加でサポートされます。 AuthScheme を以下の値のいずれかに設定し、必要なプロパティを構成します。
- AuthScheme=OAuthAzureAD:Entra ID を使用して、非ブラウザOAuth 認証を実行します。Snowflake のセキュリティインテグレーションタイプはexternal_oauth です。
- OAuthClientId:Entra ID アプリケーションのクライアントID に設定。
- OAuthClientSecret:Entra ID アプリケーションのクライアントシークレットに設定。
- CallbackURL:Entra ID アプリで構成されたリダイレクトURI に設定。
- AzureTenant:Entra ID のテナントID に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthClientAzureAD:Entra ID のクライアント資格情報付与フローを使用します。ブラウザは不要です。
- OAuthClientId:Entra ID アプリケーションのクライアントID に設定。
- OAuthClientSecret:Entra ID アプリケーションのクライアントシークレットに設定。
- AzureTenant:Entra ID のテナントID に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthOkta:Okta をID プロバイダーとしてOAuth 認証を行います。
- OAuthClientId:Okta アプリのクライアントID に設定。
- OAuthClientSecret:Okta アプリのクライアントシークレットに設定。
- CallbackURL:Okta アプリで構成されたリダイレクトURI に設定。
- OAuthAuthorizationURL:OAuth サービスの認可URL に設定。
- OAuthAccessTokenURL:OAuth アクセストークンを取得するURL に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthClientOkta:Okta のクライアント資格情報付与フローを使用します。ブラウザは不要です。
- OAuthClientId:Okta アプリのクライアントID に設定。
- OAuthClientSecret:Okta アプリのクライアントシークレットに設定。
- OAuthAuthorizationURL:OAuth サービスの認可URL に設定。
- OAuthAccessTokenURL:OAuth アクセストークンを取得するURL に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthOther:PingFederate などのサードパーティのID プロバイダーを使用してOAuth 認証を実行します。
- OAuthClientId:IdP のクライアントID に設定。
- OAuthClientSecret:IdP のクライアントシークレットに設定。
- CallbackURL:OAuth 設定で定義されたリダイレクトURI に設定。
- OAuthAuthorizationURL:OAuth サービスの認可URL に設定。
- OAuthAccessTokenURL:OAuth アクセストークンを取得するURL に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthClientOther:PingFederate などのサードパーティのID プロバイダーで、クライアント資格情報付与フローを使用します。ブラウザは不要です。
- OAuthClientId:IdP のクライアントID に設定。
- OAuthClientSecret:IdP のクライアントシークレットに設定。
- OAuthAuthorizationURL:OAuth サービスの認可URL に設定。
- OAuthAccessTokenURL:OAuth アクセストークンを取得するURL に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=OAuthJWT:署名されたJWT と証明書を使用してOAuth 認証を実行します。このスキームは通常、Entra ID およびJWT ベースのアサーションをサポートするその他のIdP で使用されます。
- OAuthJWTCert:JWT の署名に使用される証明書ファイル(.pfx または.pem)へのパス。
- OAuthJWTCertType:証明書ファイルの形式(PEM、PFX)。
- OAuthClientId:OAuth アプリケーションのクライアントID。
- OAuthClientSecret:(オプション)IdP が要求する場合は、クライアントシークレット。
- AzureTenant:(Entra ID を使用する場合)Entra ID のテナントID に設定。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
- AuthScheme=AzureMSI:Azure マネージドID(MSI)を使用してOAuth 認証を実行します。この方法は、Azure App Services や仮想マシンなどのAzure ホスティング環境で実行されるアプリケーションに最適です。
- AzureResource:Snowflake セキュリティ統合に必要なターゲットリソースID に設定。
- OAuthClientId:(オプション)ユーザーが割り当てられたマネージドID のクライアントID。
- InitiateOAuth:アクセストークンを自動的に取得してリフレッシュするには、GETANDREFRESH に設定。
Entra ID の外部OAuth の設定
OAuthAzureAD およびOAuthClientAzureAD スキームは、Microsoft Entra ID をID プロバイダー(IdP)として、Snowflake の外部OAuth を使用します。カスタムOAuth アプリ(カスタムOAuth アプリの作成 を参照)とは異なり、Snowflake 自体がアクセストークンを発行するのではなく、外部OAuth はSnowflake がEntra ID によって発行されたトークンを信頼して検証するように設定します。接続する前に、アカウント管理者がEntra ID アプリケーションを登録し、Snowflake に外部OAuth セキュリティ統合を作成する必要があります。
以下の手順を実行します。
- Entra ID アプリケーションを登録します。まだ持っていない場合は、Snowflake をOAuth リソースとして公開し、OAuth クライアントを登録するEntra ID アプリケーションを作成します。完全な手順については、Snowflake ドキュメントのConfigure Microsoft Entra ID for External OAuth を参照してください。アプリケーションのクライアントID、クライアントシークレット、およびテナントID をメモします。これらの値はOAuthClientId、OAuthClientSecret、およびAzureTenant に指定します。
- 発行者URL を取得します。アプリケーションのEndpoints でFederation metadata document を開き、entityID の値をコピーします。この値はセキュリティ統合で使用される発行者で、https://sts.windows.net/your-tenant-id/ のような形式です。末尾のスラッシュを含めてください。
- Snowflake ユーザーをEntra ID ID にマップします。必要なマッピングは付与タイプによって異なります。
- OAuthAzureAD は認証コード付与を使用するため、アクセストークンはサインインしたユーザーを表します。ログイン名がユーザーのEntra ID ユーザー名と一致するSnowflake ユーザーが存在することを確認してください。
- OAuthClientAzureAD はクライアント資格情報付与を使用するため、アクセストークンはアプリケーション自体を表します。ログイン名がEntra ID アプリケーションのクライアントID と一致するSnowflake ユーザーを作成してください。
- セキュリティ統合を作成します。このコマンドを実行できるのは、アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)またはグローバルのCREATE INTEGRATION 権限を持つロールのみです。external_oauth_issuer を前の手順の発行者URL に設定します。この値は大文字と小文字が区別され、末尾のスラッシュを含め完全に一致している必要があります。例:
create security integration my_azure_integration type = external_oauth enabled = true external_oauth_type = azure external_oauth_issuer = 'https://sts.windows.net/your-tenant-id/' external_oauth_token_user_mapping_claim = 'upn' external_oauth_snowflake_user_mapping_attribute = 'login_name';
セキュリティ統合を作成したら、InitiateOAuth をGETANDREFRESH に設定して接続します。以下はOAuthAzureAD 認証コード付与の接続文字列の例です。
AuthScheme=OAuthAzureAD;Url=https://myaccount.region.snowflakecomputing.com;InitiateOAuth=GETANDREFRESH;OAuthClientId=MyClientId;OAuthClientSecret=MyClientSecret;AzureTenant=MyTenantId;
以下はOAuthClientAzureAD クライアント資格情報付与の接続文字列の例です。
AuthScheme=OAuthClientAzureAD;Url=https://myaccount.region.snowflakecomputing.com;InitiateOAuth=GETANDREFRESH;OAuthClientId=MyClientId;OAuthClientSecret=MyClientSecret;AzureTenant=MyTenantId;
デスクトップアプリ
このセクションでは、カスタムOAuth アプリの資格情報を使用したデスクトップ認証について説明します。詳しくは、カスタムOAuth アプリの作成 を参照してください。OAuth アクセストークンの取得
以下を設定して、接続してください。
- OAuthClientId:OAuth 統合設定のクライアントID に設定。
- OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
- CallbackURL:OAuth 統合設定のリダイレクトURL に設定。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
- コールバックURL からアクセストークンを取得し、リクエストを認証します。
- 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化されるようにします。
手動でのOAuth アクセストークンの取得
次の接続プロパティを設定し、OAuthAccessToken を取得します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:OAuth 統合設定のクライアントID に設定。
- OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。
- GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。ストアドプロシージャがOAuth エンドポイントのURL とPKCEVerifier を返します。
- URL を開き、ログインして、アプリケーションを認可します。コールバックURL にリダイレクトされます。
- GetOAuthAccessToken ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。PKCEVerifier インプットを最初の手順で取得したPKCEVerifier の値に設定します。
ヘッドレスマシン
ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。- 以下の2つのオプションから選択します。
- オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
- オプション2:別のマシンにconnector をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
- その後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにconnector を設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。
手順については、カスタムOAuth アプリの作成 を参照してください。このセクションでは、データの認証および接続を行う手順について説明します。
Verifier code を取得するには、ヘッドレスマシンで次のプロパティを設定します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:OAuth 統合設定のクライアントID に設定。
- OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
次に、別のマシンから認証してOAuthVerifier 接続プロパティを取得します。
- GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。ストアドプロシージャがOAuth エンドポイントのURL とPKCEVerifier を返します。
- 返されたURL をブラウザで開きます。ログインして、connector にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
- Verifier の値とPKCEVerifier の値を保存します。OAuthVerifier 接続プロパティにVerifier の値を設定し、PKCEVerifier 接続プロパティにPKCEVerifier の値を設定する必要があります。
最後に、ヘッドレスマシンで、次の接続プロパティを設定してOAuth 認証値を取得します。
- OAuthClientId:OAuth 統合設定のクライアントID に設定。
- OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
- OAuthVerifier:verifier code に設定。
- PKCEVerifier:PKCE verifier code に設定。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を指定された場所に永続化。
- InitiateOAuth:REFRESH に設定。
データへの接続
OAuth 設定ファイルが生成されたら、次のプロパティを設定してデータに接続します。
- OAuthSettingsLocation:暗号化されたOAuth 認証値が保存される場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がプロバイダーに読み書きのアクセス許可を与えることを確認してください。
- InitiateOAuth:REFRESH に設定。
オプション2:OAuth 設定を転送
別のマシンにconnector をインストールするには、認証してから、結果のOAuth 値を転送します。
- セカンドマシンに、connector をインストールして、次の接続プロパティセットで接続します。
- OAuthSettingsLocation:書き込み可能な場所に設定。
- InitiateOAuth:GETANDREFRESH に設定。
- OAuthClientId:アプリケーション設定のクライアントID に設定。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
- CallbackURL:アプリケーション設定のコールバックURL に設定。
- 認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth:REFRESH に設定。
- OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がconnector に読み書きのアクセス許可を与えることを確認してください。
パスワード
User およびPassword をSnowflake ユーザーに設定し、AuthScheme をPASSWORD に設定します。
Note:Snowflake の2024_08 バンドル(2024年10月)以降を使用して作成されたアカウントでは、セキュリティ上の懸念によりパスワード認証はサポートされません。 代わりに、OAuth 認証やプライベートキー認証などの別の認証方法を使用してください。
プライベートキー
connector を使用すると、ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成することにより、キーペア認証を使用して認証できます。この方法で接続するには、AuthScheme をPrivateKey に設定し、次の値を設定します。
- User:認証に使用するユーザーアカウント。
- PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー。
- PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)。
- PrivateKeyPassword:指定されたプライベートキーのパスワード。
Okta
AuthScheme をOKTA に設定します。Okta に接続するには、次の接続プロパティを使用します。
- User:Okta ユーザーに設定。
- Password:ユーザーのOkta パスワードに設定。
- MFAPasscode(オプション):デバイスに送信されたOTP コードに設定。このプロパティは、OKTA サインオンにMFA が必要な場合にのみ使用します。
- Domain:OKTA org ドメイン名に設定。
- MFAType(オプション):multi-factor タイプに設定。このプロパティは、OKTA サインオンにMFA が必要な場合にのみ使用します。このプロパティには、次のいずれかの値を指定します。
- OKTAVerify
- SMS
- APIToken(オプション):顧客がOkta 組織から作成したAPI Token に設定。Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合には、これを指定する必要があります。ほとんどの場合必要ありません。
次は接続文字列の例です。
AuthScheme=OKTA;User=username;Password=password;Url='https://myaccount.region.snowflakecomputing.com';Warehouse=My_warehouse;SSO Properties='Domain=https://cdata-okta.okta.com';
次はOKTA MFA の接続文字列の例です。
AuthScheme=OKTA;User=username;Password=password;MFAPasscode=8111461;Url='https://myaccount.region.snowflakecomputing.com';Warehouse=My_warehouse;SSO Properties='Domain=https://cdata-okta.okta.com;MFAType=OktaVerify;';
PingFederate
AuthScheme をPingFederate に設定します。PingFederate に接続するには、次の接続プロパティを設定します。- User:PingFederate ユーザーに設定。また、PingFederate Data Store にもユーザーを追加する必要があります。接続すると、ブラウザが開きPingFederate にログインして認証を完了できます。
- Password:ユーザーパスワードに設定。
- ProofKey(オプション):ブラウザを使用せずに接続する場合は、必ず指定してください。ブラウザの設定では、この値は自動生成されます。
- ExternalToken(オプション):ブラウザを使用せずに接続する場合に必要です。ブラウザの設定では、この値は自動生成されます。
AuthScheme=PingFederate;Url=https://myaccount.region.snowflakecomputing.com;User=myuser@mydomain;Account=myaccount;Warehouse=mywarehouse;
Proof Key およびExternal Token の使用
AuthScheme をPingFederate に設定するには、Proof Key およびExternal Token を使用します。インターネットブラウザで認証を完了する場合、これらの値は自動生成され、Snowflake のログインプロセスで使用される接続文字列に自動的に含まれます。ブラウザ経由以外の方法で接続する場合は、ProofKey およびExternalToken に値を指定する必要があります。この場合、下記の手順に従って認証します。
- 8080 などのポートを指定して、ローカルWeb サーバーを作成します。
- 指定したポートを使って、GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。このプロシージャは、ログインSSO URL を返します。
- 返されたURL をブラウザにコピーします。
- 表示されるページで、ユーザーネームとパスワードを入力します。
- ログイン後、コールバックURL が生成され、ローカルのWeb サーバーインスタンスに送信されます。このコールバックURL は特殊な形式になっています。コールバックURL からExternal Token を抽出するためのコードを独自に記述する必要があります。
SAML プロバイダー
connector は、OneLogin などのSAML ベースのID プロバイダーを汎用的にサポートしています。
AuthScheme をExternalBrowser に設定します。
OneLogin
User を認証したいSnowflake ユーザーに設定します。
接続を試みると、SAML プロバイダーは、デフォルトのWeb ブラウザでログインプロンプトを起動します。
Snowflake を認証するために、SAML プロバイダーに紐づいた認証情報を提供します。
アクセス制御の設定
認証ユーザーがシステム定義のロールにマップしている場合は、RoleName プロパティで指定します。
次のステップ
データビジュアライゼーションを作成するには、コネクタの使用 を参照してください。