
Alteryx Designer Desktopから Snowflake OAuth 認証をする方法
こんにちは、業務効率化ソリューション部のikumiです。
今回は、Alteryx Designer Desktopから Snowflake OAuth 認証をする方法について紹介いたします。
以前、Alteryx Oneから Snowflake OAuth 認証をする方法について紹介しましたが、今回はDesktop版となります。
また、キーペアを利用して認証する方法については以下で紹介されておりますので、こちらも参考にしてください。
Snowflake OAuth 接続の作成方法
Snowflake側での作業
基本的にはAlteryx Oneで行ったことと同じですが、入力内容が異なります。
- SnowflakeでOAuth 2.0クライアントアプリを作成するために、ACCOUNTADMINロールで作業を行こなう
- ワークシートに移動し、以下のコマンドを実行しセキュリティ統合を作成
CREATE SECURITY INTEGRATION
<NAME> ##任意の名前
TYPE = OAUTH
OAUTH_CLIENT = CUSTOM
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
OAUTH_REDIRECT_URI = 'http://localhost:5010/' ##Alteryx Designer の場合は基本はこの値
ENABLED = TRUE
OAUTH_ALLOW_NON_TLS_REDIRECT_URI = FALSE
PRE_AUTHORIZED_ROLES_LIST = ( 'ROLE_NAME' ) ##アクセスを許可するロールリスト
##BLOCKED_ROLES_LIST = ( 'ROLE_NAME' ) ##明示的にアクセスを許可しないロールがある場合に記載
OAUTH_ISSUE_REFRESH_TOKENS = TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = 7776000
- セキュリティ統合が作成できたら、以下のコマンドを実行し情報を取得
DESC integration <NAME> ##先ほど設定した任意の名前
- 実行出来たら、以下の情報を後ほど使用するので安全な場所に保存
- OAUTH_CLIENT_ID
- OAUTH_AUTHORIZATION_ENDPOINT
- OAUTH_TOKEN_ENDPOINT
- 続いて、以下のコマンドを実行しクライアント シークレットを取得
select system$show_oauth_client_secrets('<NAME>'); ##先ほど設定した任意の名前
- 取得した値の中にある、以下のパラメータ値を安全な場所に保存
- OAUTH_CLIENT_SECRET
以上でSnowflake側の作業は一旦終了です
Alteryx Designer Desktop 側での作業
つづいて、Alteryx Designer Desktop側でDCM接続を作成します
ファイル>接続を管理から、接続マネージャーを起動

+ 新規から接続を作成

Snowflakeを選択し新しい接続を作成

- まずは、データソース側の入力項目を設定していきます
- 1) 接続の詳細
- 接続名:任意のDCM接続の名前を入力します (ここでは、Snowflake-OAuth認証と設定)- 2) データソース
- テクノロジー:Snowflake ODBC DSN レス with Simba
- データソース:今回は新しいデータソースを作成を選択
- データソース名:任意のDCMデータソース名(ここでは、Snowflake-OAuth認証データソースと設定)
- Server:SnowflakeのアカウントURL
- ドライバ:Simba Snowflake ODBC ドライバー
- Database:アクセスしたいデータベース(オプション)
- スキーマ: 使用したいスキーマ(オプション)
- ウェアハウス: 使用したいウェアハウス
- Role:使用したいロール(オプション)

- 3) 資格情報:汎用OAUTHアプリケーション
- 認証方法:汎用OAuth2
- 資格情報: 今回は
新しい資格情報を選択 - 資格情報名:任意のDCM資格情報名(ここでは、Snowflake-OAuth認証資格情報と設定)
- 付与タイプ:PKCEを使用した認証コード
- OAuth認証URL:先ほど取得した
OAUTH_AUTHORIZATION_ENDPOINTの値 - OAuthトークンURL:先ほど取得した
OAUTH_TOKEN_ENDPOINTの値 - OAuthリダイレクトURL:
http://localhost:5010/ - クライアントID:先ほど取得した
OAUTH_CLIENT_IDの値 - クライアントシークレット:先ほど取得した
OAUTH_CLIENT_SECRETの値 - コードチャレンジメソッド:SHA-256
- クライアント認証:クライアントの資格情報を本文に送信
- 3) 資格情報:汎用OAUTHトークン
- 資格情報名:任意のDCM資格情報名(ここでは、Snowflake-OAuth認証トークンと設定)
- 保管庫:DCM
- スコープ:refresh_token session:role:
<role name>(オプション)

- 2) データソース
- 全ての設定が完了したら、
保存を実行します
設定は以上です
Alteryx からSnowflakeに接続する
先ほど作成したDCM接続を使用して、AlteryxからSnowflakeに接続をしてみます
- データ入力ツールをキャンバスに配置し、
接続を設定します>データソース>Snowflake | クイック接続を選択

- 接続マネージャーから、先ほど作成した接続を選択

- ブラウザが起動するので、画面に沿ってログインをします

- 以下の画面が出てくれば、認証は成功です

- テーブルの選択画面が出てくるので、任意のテーブルを選択し接続が可能です

さいごに
今回はAlteryx Designer Desktopから Snowflake OAuth 認証をする方法について紹介しました。ロールを指定する場合は、資格情報の項目でOAuthを選択すると失敗してしまったり、リダイレクトURIが分からなかったりと、混乱したポイントが多かったので記事にしてみました。どなたかの参考になれば幸いです。









