0
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 は外部のIDプロバイダーと連携し、SSO(Single Sign On)を構築することができます。

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

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

設定手順

アプリケーション追加

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

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

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

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

SSO構成(Microsoft Entra)

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

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

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

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

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

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

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

SSO構成(Snowflake)

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

qiita.rb
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.png

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

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

テストユーザ作成(Snowflake)

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

qiita.rb
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.png

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

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

クリーンアップ

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

Snowflake

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

qiita.rb
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プロバイダーと連携したユーザ管理も可能になるので、ユーザ管理の一元化という観点からもおすすめです。

参考

0
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
0
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?