4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SnowflakeのOAuth認証にHULFT Squareを

Last updated at Posted at 2025-03-31

はじめに

HULFT SquareからSnowflakeのAPIを呼び出す際に必要なOAuth認証の設定について備忘録です。

準備したもの

・Snowflake セキュリティ統合
・HULFT Square コネクション

手順

1.[Snowflake]OAuthのセキュリティ統合を作成

以下ドキュメントを参考にしました。
参考:カスタムクライアント用のSnowflake OAuth の構成

セキュリティ統合.sql
--OAuth統合を作成
CREATE or replace SECURITY INTEGRATION "oauth_sec"
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://app.square.hulft.com/connections/oauth2/callback'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400;
項目 設定内容 メモ
name セキュリティ統合の名前 大文字小文字が区別される。小文字にしたい場合は「"」で囲む
TYPE OAUTH 統合のタイプ
ENABLED TRUE 外部との連携を制御
OAUTH_CLIENT CUSTOM 今回はHULFT Squareを使用するのでカスタム
OAUTH_CLIENT_TYPE CONFIDENTIAL HULFT Squareは機密クライアント
OAUTH_REDIRECT_URI 'https://app.square.hulft.com/connections/oauth2/callback' 認証後にリダイレクトされるURI
OAUTH_ISSUE_REFRESH_TOKENS TRUE アクセストークンの有効期限が切れたときに更新するか
OAUTH_REFRESH_TOKEN_VALIDITY 更新トークンの有効期間(秒) 定期的に更新トークンを失効させる

今回はこちらで作成しました。
他にも特定のロールをブロックする等の設定も可能です。

2.[HULFT Square]OAuth認証のコネクションを作成

コネクション> 「OAuth 2.0認証」 を選択します。
image.png

3.[Snowflake]セキュリティ統合の情報を取得

HULFT Squareにセキュリティ統合の情報を渡します。

  • クライアントID
  • クライアントシークレット
  • 認可エンドポイント
  • トークンエンドポイント

image.png

3-1.[Snowflake]セキュリティ統合の情報を取得

クライアントシークレット以外は以下SQLクエリを実行し取得します。

  • クライアントID
  • 認可エンドポイント
  • トークンエンドポイント
DESCRIBE.sql
DESCRIBE INTEGRATION "セキュリティ統合の名前";

注意
セキュリティ統合の名前は大文字小文字を区別します。
「"」無しの小文字で作成した場合は大文字になります。

image.png

  • クライアントID
    「OAUTH_CLIENT_ID」 の値を入力してください。

  • 認可エンドポイント
    「OAUTH_AUTHORIZATION_ENDPOINT」 の値を入力してください。

<SnowflakeアカウントURL>/oauth/authorize

  • トークンエンドポイント
    「OAUTH_TOKEN_ENDPOINT」 の値を入力してください。

<SnowflakeアカウントURL>/oauth/token-request

3-2.[Snowflake]セキュリティ統合の情報を取得

クライアントシークレットは以下SQLクエリを実行し取得します。

SECRETS.sql
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS( 'セキュリティ統合の名前' )
  • クライアントシークレット
    「OAUTH_CLIENT_SECRET の値を入力してください。

image.png

4.[HULFT Square]リフレッシュトークンを発行

値を入力し終えたら 「リフレッシュトークンを発行」 を押下します。
Snowflakeのログイン画面に遷移するので、ログイン情報を入力しサインインします。

image.png

ここで注意です。
ユーザ名/パスワードが正しいが「invalid consent request」のエラーになる場合、ロールの確認をして下さい。
検証アカウントではロールを意識することが少なく見落としており詰まりました💦

デフォルトではACCOUNTADMIN、 ORGADMIN、 SECURITYADMIN のロールを認証できません。

image.png

参考:BLOCKED_ROLES_LIST

サインインに成功するとトークンが発行されます。

image.png

プロファイルを選択し完了です。

最後に

OAuth認証について勉強する良いきっかけをもらいました!

誰かの参考になれば幸いです。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?