[新機能]Snowflake で OpenID Connect によるフェデレーション認証ができるようになりました
はじめに
2026年7月のアップデートで、Snowflake の OIDC(OpenID Connect)フェデレーション認証がパブリックプレビューとなりました。
Google を対象に試してみた内容を本記事でまとめます。
OIDC フェデレーション認証の概要
本機能については以下に記載があります。
今回のアップデートでは、以下3パターンの ID プロバイダーに対応しています。
- カスタム OIDC 準拠のアイデンティティプロバイダー
- Google(マネージドプロバイダー)
- Microsoft Entra ID(マネージドプロバイダー)
Google や Microsoft Entra ID については、Snowflake が IdP アプリの構成を処理するため、最小限の設定でフェデレーション SSO を設定できます。
これまで Snowflake でフェデレーション SSO を組む場合は SAML2 連携が中心で、IdP 側と Snowflake 側でメタデータや証明書のやり取り、証明書の有効期限に伴う運用対応が必要でした。
マネージドプロバイダーによる OIDC 連携では証明書のアップロードや手動でのメタデータ交換が不要で、セキュリティ統合オブジェクトとして作成するだけで完了できます。
なお、複数の OIDC 統合の併用や、OIDC と SAML2 を併用する場合は、識別子優先ログイン(Identifier-First Login)の有効化が必要になります。
前提条件
検証環境
以下の環境を使用しています。
- Snowflake:トライアルアカウント
- IdP:Google
- フリーの Gmail アドレス
- 企業ドメインの Gmail アドレス
事前準備
OIDC 連携では、ID トークン内のemailクレームと、Snowflake ユーザーのEMAIL_ADDRESS属性を突き合わせてユーザーを解決する仕組みになっているため、事前にログイン対象の Snowflake ユーザーへEMAIL_ADDRESSを設定しておく必要があります。
CREATE OR REPLACE USER oidc_test_user
EMAIL = '<準備したメールアドレス>'
DEFAULT_ROLE = PUBLIC
TYPE = PERSON
PASSWORD = '<任意のパスワード>';
ドキュメントにある通り、OIDC フェデレーション認証ではマッチしたユーザーのメールアドレスが検証済みであることが必要です。個別のメール検証フローを完了させるか、ドメイン検証済みであることのいずれかが必要です。
なお、ここでは@gmail.comドメインのフリーアドレスを設定しました。

Google マネージドプロバイダーで試す
ここではマネージドプロバイダーとして Google を試してみます。
セキュリティ統合の作成
ACCOUNTADMIN でOIDC_PROVIDER = 'GOOGLE'としてセキュリティ統合を作成します。これで Google とのフェデレーション SSO が有効になります。
CREATE SECURITY INTEGRATION google_oidc
TYPE = OIDC
ENABLED = TRUE
OIDC_PROVIDER = 'GOOGLE';
作成後、ログイン画面にアクセスすると「Sign in with Google」ボタンが自動的に表示されるようになりました。

サインインしてみる
メールアドレスの検証を済ませた上でサインインすると、無事にログインできました。



もともとパスワード認証で運用していたユーザーに対して後から OIDC 連携を有効化した場合でも、そのまま問題なく OIDC でのサインインに切り替えられることも確認できました。
ログイン履歴はLOGIN_HISTORYビューから、FIRST_AUTHENTICATION_FACTOR = 'OIDC_ID_TOKEN'で絞り込むことで確認できました。
SELECT event_timestamp,
event_type,
is_success,
error_code,
error_message,
client_ip,
reported_client_type,
first_authentication_factor,
second_authentication_factor
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE user_name = 'OIDC_TEST_USER'
AND first_authentication_factor = 'OIDC_ID_TOKEN'
ORDER BY event_timestamp DESC
LIMIT 50;
+-------------------------------+------------+------------+------------+---------------+---------------+----------------------+-----------------------------+------------------------------+
| EVENT_TIMESTAMP | EVENT_TYPE | IS_SUCCESS | ERROR_CODE | ERROR_MESSAGE | CLIENT_IP | REPORTED_CLIENT_TYPE | FIRST_AUTHENTICATION_FACTOR | SECOND_AUTHENTICATION_FACTOR |
|-------------------------------+------------+------------+------------+---------------+---------------+----------------------+-----------------------------+------------------------------|
| 2026-08-03 23:45:49.243 -0700 | LOGIN | YES | NULL | NULL | xx.xx.xx.xx | SNOWFLAKE_UI | OIDC_ID_TOKEN | NULL |
| 2026-08-03 23:45:08.085 -0700 | LOGIN | YES | NULL | NULL | xx.xx.xx.xx | SNOWFLAKE_UI | OIDC_ID_TOKEN | NULL |
+-------------------------------+------------+------------+------------+---------------+---------------+----------------------+-----------------------------+------------------------------+
ドメインによるログイン制限
特定のメールドメインのユーザーのみにログインを制限することも可能で、ALLOWED_USER_DOMAINSパラメータで設定します。
ALTER SECURITY INTEGRATION google_oidc SET
ALLOWED_USER_DOMAINS = ('@mycompany');
この場合、識別子優先ログインが有効になっている必要があります。有効でない場合、以下のようにエラーになりました。
001423 (22023): SQL compilation error:
invalid property 'ALLOWED_USER_DOMAINS'; feature 'ENABLE_IDENTIFIER_FIRST_LOGIN' not enabled
設定後は、まずユーザー名を指定します。

許可したドメインのユーザーは通常通り Google でサインインできます。
一方、許可ドメイン外のメールアドレスでサインインしようとすると、Google での認証自体が行えなくなっていました。

ネットワークポリシーとの併用
その他、IP アドレス制限を行うネットワークポリシーを設定した状態でも、OIDC でのサインインが問題なく機能しました。許可されていないネットワークからアクセスした場合は、以下のように通常のネットワークポリシー違反として弾かれます。

さいごに
Snowflake の OIDC フェデレーション認証を、Google で試してみました。
設定・ログインともに非常にシンプルで、ドメイン制限(ALLOWED_USER_DOMAINS)との組み合わせもすぐに試せました。既存の SAML2 連携が難しかったケースなど、手軽にフェデレーション SSO を試したい場面で選択肢になりそうな機能です。
こちらの内容がどなたかの参考になれば幸いです。





