みなさま
日々の業務お疲れ様です。
この度、Qiita様の「Snowflake Advent Calendar 2022」に参加する機会をいただきまして誠にありがとうございます。私の記事は12月13日(火)投稿予定だったのですが、諸事情で間に合いませんでした(汗。。。許すまじ流行り病。。。サイトには素敵な記事がたくさん掲載されてありますので是非サイトを御覧ください。
https://qiita.com/advent-calendar/2022/snowflake
また、記事の内容としては、Qlik Senseの内容にも触れますがあくまでSnowflake側のカスタムクライアントOauthとしてどのような設定をしたかを備忘録として記載させていただければと考えております。大まかな手順としては下記となります。
※なお、実際のDirect QueryについてはQlik Sense側の記事となりますので本記事では割愛いたします。
01. テスト用オブジェクト作成
02. セキュリティ統合の作成と認可情報の取得
02. 補足 - 認可情報はJSONで取得
01. 新しい接続を追加
01. 補足 - Authentication Mechanismで「Oauth」を選択すること
02. 各種設定項目入力
(重要)項目と入力例を下記に記載します。
Database properties
Server : <組織名>-<アカウント名>.snowflakecomputing.com
Port : 443
Database : QS_DIRECT_QUERY_DB
Schema : QS_DIRECT_QUERY_SC
Warehouse : QS_DIRECT_QUERY_WH
Role : SYSADMIN
Authentication
03. 入力内容の検証
下記の図のようにAuthenticateを押下すると入力したOauth Serverの宛先が正しければそのSnowflake側のアカウントへサインインするようリダイレクトされます。
04. Qlik Sense側の認証
前手順で許可を押下し続行すると認証コードが表示されるのでCopy to clipboardを押下してコピーします。
と記載されています。
Verifyを押下して認証コードを検証します。
成功すればStatus: Authenticated succesfullyと表示されます。
05. 接続の作成
最後にテスト接続で接続の成功を確認した後、作成を押下します。
これでOauth認証を利用した接続の完成です。
あとは、この接続をもとにDirect Queryでのデータ取得を行いますが、その部分は割愛させて頂きます。
いかがでしたでしょうか。
セキュリティ統合を作成して、その認証情報をクライアント側で利用して接続を許可する流れでした。
特に難しいこともしておりません。
他にもカスタムではなく、パートナーアプリケーション用に準備されているOauth手順もあるようですので、下記にドキュメントのリンクを記載いたします。
https://docs.snowflake.com/ja/user-guide/oauth-partner.html
特にAlationに興味があるので是非触ってみようかと思います。
今回は、小ネタ(備忘録)としてカスタムクライアントOauthの設定をしてみました。
ここまで見ていただきありがとうございました。