Snowflake は外部のIDプロバイダーと連携し、SSO(Single Sign On)を構築することができます。
本記事では、Snowflake と Microsoft Entra ID を統合し、SSOを実現する方法についてご紹介します。SSOにより、Microsoft Entra アカウントで自動的に Snowflake にサインインできるようになります。
さっそく、以降で具体的な手順について見ていきましょう。
設定手順
アプリケーション追加
Microsoft Entra 管理センターに、「クラウドアプリケーション管理者」以上の権限でサインインします。(今回の場合はグローバル管理者)

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

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

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

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

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

設定項目は以下の通りです。
- 識別子(エンティティID):
https://<アカウント/サーバーURL> - 応答URL(Assertion Cunsumer Service URL):
https://<アカウント/サーバーURL>/fed/login
<アカウント/サーバーURL>は Snowflake のアカウント詳細で確認可能な以下の値です。

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

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

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-----"の間にある値。改行は要削除。
正常に実行されると、「データ」→「統合」に作成したセキュリティ統合が表示されます。

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

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

テストユーザ作成(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のテストを行うことができます。

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

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

クリーンアップ
設定を削除する場合の手順は以下の通りです。
Snowflake
ワークシートで以下のSQLを実行します。
DROP SECURITY INTEGRATION microsoft_entra_security_int;
DROP USER req_taro;
Microsoft Entra
Microsoft Entra 管理センターにログインし、以下を実行します。
- 「すべてのアプリケーション」→「Snowflake for Microsoft Entra ID」→「プロパティ」で「削除」をクリック
- 「ユーザー」→「すべてのユーザー」で対象ユーザ(ReQ Taro)を削除
補足
Snowflake では自動ユーザープロビジョニングとプロビジョニング解除がサポートされており、Microsoft Entra ID と連携してユーザの管理を自動的に行うことができます。
Microsoft Entra ID を使用した自動ユーザー プロビジョニング用に Snowflake を構成する - Microsoft Entra ID | Microsoft Learn
さいごに
Snowflake と Microsoft Entra を連携させてSSOを構築する方法についてご紹介しました。
SSOの構築と聞くと難しそうなイメージがありますが、実際に設定しなければならない項目はそれほど多くなく、意外とシンプルに実現できます。SSOを構築することで利便性が向上するだけでなく、IDプロバイダーと連携したユーザ管理も可能になるので、ユーザ管理の一元化という観点からもおすすめです。


