フェデレーション認証に複数のIDプロバイダーを使用する

ユーザーが複数のIDプロバイダー(IdPs)で認証できるようにSnowflakeを構成できます。

複数の IdPs を使用するフェデレート環境の実装は、次の手順で構成されます。

  1. 識別子優先ログインフローを有効にする (このトピック内)。

  2. 各IDプロバイダーを構成する

  3. IdP ごとに1つずつ、 複数の SAML セキュリティ統合を作成する

  4. IdPs とユーザーを関連付ける (このトピック内)。

注釈

複数の IdPs を使用する環境を実装するときは、次の点に注意してください。

  • 各 IdP には、対応する SAML セキュリティ統合が必要です。非推奨の SAML_IDENTITY_PROVIDER パラメーターを使用する既存の単一 IdP 環境がある場合は、 SYSTEM$MIGRATE_SAML_IDP_REGISTRATION 関数を使用して SAML セキュリティ統合に移行する必要があります。

  • 現在、複数のIDプロバイダーの使用をサポートしているのは、Snowflakeドライバーのサブセットのみです。これらのドライバーには、 JDBC、 ODBC、Pythonが含まれます。

識別子優先ログインを有効にする

アカウントのフェデレーション環境で複数の IdPs が使用されている場合、Snowflakeはユーザーに認証オプションを提示する 前に どの IdPs がユーザーに関連付けられているかを判別できる必要があります。このフローでは、Snowflakeはユーザーにメールアドレスまたはユーザー名のみの入力を要求し、ユーザーを特定した後に認証方法を表示します。認証オプションとして表示されるのは、ユーザーに関連付けられた IdPs だけです。

複数の IdPs を使用する場合は、識別子優先ログインフローを有効にする必要があります。識別子優先ログインを有効にするには、 ENABLE_IDENTIFIER_FIRST_LOGIN パラメーターを TRUE に設定します。

識別子優先のログインフローの詳細については、 識別子優先ログイン を参照ください。

ユーザーを IdPs と関連付ける

複数の IdPs がある環境では、ユーザーと IdP を関連付ける方法を選択できます。IdP に関連付けられたセキュリティ統合の使用、認証ポリシーの使用、または2つの方法を組み合わせて使用することもできます。

セキュリティ統合:

各 IdP に関連する SAML2 セキュリティ統合の ALLOWED_USER_DOMAINSALLOWED_EMAIL_PATTERNS プロパティを使用します。この構成では、 IdP が認証オプションとして表示されるのは、 EMAIL がセキュリティ統合のメールアドレスドメインまたはパターンに一致する場合のみです。

認証ポリシー:

認証ポリシーSECURITY_INTEGRATIONS プロパティを使用して、ユーザーが使用できるセキュリティ統合を指定します。この構成では、認証ポリシーはアカウント全体または個々のユーザーに割り当てられます。ユーザーは、認証ポリシーで指定されているセキュリティ統合に関連付けられた IdPs でのみ認証できます。

ユーザーが使用を許可されているIDプロバイダーのみを表示する場合は、複数の認証ポリシーを作成し、適切なポリシーをユーザーに割り当てます。

認証ポリシーを使って複数の IdPs を実装する例については、 アカウントで複数のIDプロバイダーからの認証を許可する をご参照ください。

組み合わせ:

セキュリティ統合と認証ポリシーの方法を組み合わせて、複数の IdPs がある環境でのユーザーの認証方法をさらに細かく調整できます。

両方の方法を使用する場合、Snowflakeはまず、ユーザーのログインを管理する認証ポリシーに関連付けられているセキュリティ統合を評価します。Snowflakeがセキュリティ統合を識別すると、ユーザの EMAILALLOWED_USER_DOMAINS および ALLOWED_EMAIL_PATTERNS プロパティに基づいて、いずれかの統合に一致します。Snowflakeは、ユーザーの EMAIL に一致するセキュリティ統合の IdP オプションのみを表示します。