レック・テクノロジー・コンサルティング株式会社TECH BLOG

Snowflake x Microsoft Entra IDでSSO構築

Snowflake は外部のIDプロバイダーと連携し、SSO(Single Sign On)を構築することができます。

本記事では、Snowflake と Microsoft Entra ID を統合し、SSOを実現する方法についてご紹介します。SSOにより、Microsoft Entra アカウントで自動的に Snowflake にサインインできるようになります。

さっそく、以降で具体的な手順について見ていきましょう。

設定手順

アプリケーション追加

Microsoft Entra 管理センターに、「クラウドアプリケーション管理者」以上の権限でサインインします。(今回の場合はグローバル管理者)

image.png

メニューから「アプリケーション」→「エンタープライズアプリケーション」を開き、「新しいアプリケーション」をクリック。

image-1.png

検索欄に「snowflake」と入力し、「Snowflake for Microsoft Entra ID」をクリックします。

image-2.png

設定画面が開くため、「作成」をクリックします。少し待つとアプリケーションが追加されます。

image-3.png

SSO構成(Microsoft Entra)

「エンタープライズアプリケーション」→「Snowflake for Microsoft Entra ID」→「シングルサインオン」に移動し、シングルサインオン方式の選択で「SAML」を選択します。

image-4.png

「基本的な SAML 構成」を編集します。編集が完了したら「保存」をクリックします。

image-5.png

設定項目は以下の通りです。

  • 識別子(エンティティID):https://<アカウント/サーバーURL>
  • 応答URL(Assertion Cunsumer Service URL):https://<アカウント/サーバーURL>/fed/login

<アカウント/サーバーURL>は Snowflake のアカウント詳細で確認可能な以下の値です。

image-6.png

「SAML証明書」の「証明書(Base64)」のダウンロードをクリックし、証明書をダウンロードします。

image-7.png

後で使用するため、以下の値を控えておきます。

image-8.png

SSO構成(Snowflake)

Snowflake でワークシートを開き、以下のSQLをコピー&ペーストします。

USE ROLE ACCOUNTADMIN;

CREATE OR REPLACE SECURITY INTEGRATION microsoft_entra_security_int
TYPE = SAML2
ENABLED = TRUE
SAML2_ISSUER = '<Microsoft Entra 識別子>'
SAML2_SSO_URL = '<ログイン URL>'
SAML2_PROVIDER = 'CUSTOM'
SAML2_X509_CERT = '<ダウンロードした証明書の中身>';

以下の値を適切なものに置き換えます。

  • SAML2_ISSUER:上記で取得した「Microsoft Entra 識別子」
  • SAML2SSOURL:上記で取得した「ログイン URL」
  • SAML2X509CERT:ダウンロードした証明書の中身。メモ帳で開いたとき、"-----BEGIN CERTIFICATE-----"と"-----END CERTIFICATE-----"の間にある値。改行は要削除。

正常に実行されると、「データ」→「統合」に作成したセキュリティ統合が表示されます。

image-9.png

テストユーザ作成(Microsoft Entra)

Microsoft Entra 側でテストユーザを作成しておきます。今回は「ReQ Taro」を用意しました。

image-10.png

Microsoft Entra 管理センターで、アプリケーションの「ユーザーとグループ」でテストユーザを追加します。

image-12.png

テストユーザ作成(Snowflake)

ワークシートで以下のSQLを実行します。

USE ROLE ACCOUNTADMIN;

CREATE USER req_taro PASSWORD = '<パスワード>' LOGIN_NAME = 'req.taro@reqtc.com' DISPLAY_NAME = 'ReQ Taro';

※LOGIN_NAME が Microsoft Entra のユーザープリンシパル名と同じであることを確認します。

動作確認

アプリケーションのSSO設定画面で「Test」をクリックすると、SSOのテストを行うことができます。

image-14.png

テストを実行してみると、Microsoft Entra ID で Snowflake にサインインすることができました。

image-13.png

テストではなく普段ログインする際のURLは、「Snowflake for Microsoft Entra ID」→「プロパティ」に記載の「ユーザのアクセスURL」となります。

image-11.png

クリーンアップ

設定を削除する場合の手順は以下の通りです。

Snowflake

ワークシートで以下のSQLを実行します。

DROP SECURITY INTEGRATION microsoft_entra_security_int;
DROP USER req_taro;

Microsoft Entra

Microsoft Entra 管理センターにログインし、以下を実行します。

  1. 「すべてのアプリケーション」→「Snowflake for Microsoft Entra ID」→「プロパティ」で「削除」をクリック
  2. 「ユーザー」→「すべてのユーザー」で対象ユーザ(ReQ Taro)を削除

補足

Snowflake では自動ユーザープロビジョニングとプロビジョニング解除がサポートされており、Microsoft Entra ID と連携してユーザの管理を自動的に行うことができます。

Microsoft Entra ID を使用した自動ユーザー プロビジョニング用に Snowflake を構成する - Microsoft Entra ID | Microsoft Learn

さいごに

Snowflake と Microsoft Entra を連携させてSSOを構築する方法についてご紹介しました。

SSOの構築と聞くと難しそうなイメージがありますが、実際に設定しなければならない項目はそれほど多くなく、意外とシンプルに実現できます。SSOを構築することで利便性が向上するだけでなく、IDプロバイダーと連携したユーザ管理も可能になるので、ユーザ管理の一元化という観点からもおすすめです。

参考

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る