みなさん、こんにちは!
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」を用意しました。
テストユーザ作成(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プロバイダーと連携したユーザ管理も可能になるので、ユーザ管理の一元化という観点からもおすすめです。