フェデレーション認証の概要と SSO

このトピックでは、ユーザーを認証するためのフェデレーション環境を構成するコンポーネント、およびSnowflakeでサポートされる SSO (シングルサインオン)ワークフローについて説明します。

このトピックの内容:

フェデレーション環境とは

フェデレーション環境では、ユーザー認証情報の独立した認証を提供する1つ以上の外部エンティティを使用して、ユーザー認証をユーザーアクセスから分離します。その後、認証は1つ以上のサービスに渡され、ユーザーは SSO を介してサービスにアクセスできます。フェデレーション環境は、次のコンポーネントで構成されています。

  • サービスプロバイダー(SP):

    Snowflakeのフェデレーション環境では、Snowflakeは SPとして機能します。

  • IDプロバイダー(IdP):

    次のサービスを SP に提供する外部の独立したエンティティ:

    • ユーザー認証情報およびその他のプロファイル情報の作成と維持。

    • SSO アクセス( SPへの)のためのユーザー認証。

Snowflakeは、 大半の SAML 2.0準拠ベンダーを IdP としてサポートしています。ただし、特定のベンダーでは、Snowflakeのネイティブサポートが含まれています(詳細については以下を参照)。

サポートされているIDプロバイダー

次のベンダーは、 ネイティブ Snowflakeサポートをフェデレーション認証とSSO で提供しています。

  • Okta --- ホスティングサービス

  • Microsoft ADFS (Active Directoryフェデレーションサービス)--- オンプレミスソフトウェア(Windows Serverにインストール)

Oktaおよび ADFS が提供するネイティブのSnowflakeサポートに加えて、Snowflakeは 大半の SAML 2.0準拠のベンダーを IdP として使用することをサポートしています。

注釈

IdP としてOktaまたは ADFS 以外を使用するには、 IdPでSnowflakeのカスタムアプリケーションを定義する必要があります。

Okta、 ADFS、または別の SAML 2.0準拠ベンダーをSnowflakeの IdP として構成する方法の詳細については、 Snowflake用のIDプロバイダー(IdP)の構成 をご参照ください。

サポートされている SSO ワークフロー

フェデレーション認証により、次の SSO ワークフローが有効になります。

  • Snowflakeへのログイン。

  • Snowflakeからログアウト。

  • 非アクティブによるシステムのタイムアウト。

各ワークフローの動作は、Snowflakeまたは IdP 内でアクションが開始されるかどうかによって決まります。

ログインワークフロー

ユーザーがログインすると、システムの動作は、Snowflakeまたは IdP のどちらからログインが開始されるかによって決まります。

  • Snowflakeが開始するログイン:

    Snowflakeからログインするには、次の方法があります。

    1. ユーザーはSnowflakeのウェブインターフェイスにアクセスします。

    2. ユーザーは、アカウントに構成された IdP (Okta、ADFS、またはカスタム IdP)を使用してログインすることを選択します。

    3. ユーザーは、 IdP 認証情報(電子メールアドレスやパスワードなど)を使用して IdP で認証します。

    4. 認証が成功すると、 IdP は SAML 応答をSnowflakeに送信してセッションを開始し、Snowflakeのウェブインターフェイスを表示します。

    注釈

    Snowflakeが開始するログインの場合、Snowflakeログインページには認証用の2つのオプション(IdP またはSnowflake)があります。フェデレーション認証を使用するには、ユーザーは IdP オプションを選択し、プロンプトが表示されたら認証情報を入力する必要があります。Snowflakeオプションを選択すると、フェデレーション認証をバイパスし、Snowflakeのネイティブ認証を使用してユーザーをログインします。

  • IdP が開始するログイン:

    アカウントの IdP からログインするには、次の方法があります。

    1. ユーザーは IdP サイト/アプリケーションにアクセスし、 IdP 認証情報(電子メールアドレスやパスワードなど)を使用して認証します。

    2. IdP で、ユーザーはSnowflakeアプリケーション(Oktaまたは ADFS を使用している場合)または IdP で定義されているカスタムアプリケーション(別の IdP を使用している場合)をクリックします。

    3. IdP は SAML 応答をSnowflakeに送信してセッションを開始し、Snowflakeのウェブインターフェイスを表示します。

ログアウトのワークフロー

ユーザーがログアウトすると、利用可能なオプションは IdP が グローバル ログアウトをサポートするか、 標準 ログアウトのみをサポートするかによって決まります。

標準

ユーザーが完全に切断するには、 IdP とSnowflakeの両方から明示的にログアウトする必要があります。すべての IdPs は標準ログアウトをサポートしています。

グローバル

ユーザーが IdP からログアウトし、その後すべてのSnowflakeセッションをログアウトできるようにします。グローバルログアウトのサポートは IdP に依存しています。

さらに、システムの動作は、Snowflakeまたは IdP のどちらからログアウトを開始するかによって決まります。

  • Snowflakeが開始するログアウト:

    IdP がサポートするかどうかに関係なく、Snowflake内からのグローバルログアウトはサポートされません。ユーザーがSnowflakeセッションからログアウトすると、そのセッションからのみログアウトします。他のすべてのSnowflakeセッションは、 IdP セッションと同様に開いたままです。その結果、他のセッションで作業を継続したり、 IdPを介して再認証することなく追加のセッションを開始したりできます。

    完全に切断するには、ユーザーはSnowflakeと IdP の両方から明示的にログアウトする必要があります。

  • IdP が開始したログアウト:

    ユーザーが IdPからログアウトするときの動作は、 IdP が標準のログアウトのみをサポートするか、グローバルログアウトもサポートするかによって異なります。

    • ADFS は標準ログアウトとグローバルログアウトの両方をサポートします。グローバルログアウトが有効になっている場合、 ADFS IdP ログインページには、ユーザーがアクセスしたすべてのサイトからサインアウトするためのオプションがあります。このオプションを選択して Sign Out をクリックすると、ユーザーは ADFS およびすべてのSnowflakeセッションからログアウトします。Snowflakeに再度アクセスするには、 ADFSを使用して再認証する必要があります。

    • Oktaは標準ログアウトのみをサポートします。ユーザーがOktaからログアウトしても、アクティブなSnowflakeセッションから自動的にログアウトされることはなく、作業を続行できます。ただし、新しいSnowflakeセッションを開始するには、Oktaを介して再度認証する必要があります。

    • すべてのカスタムプロバイダーは標準ログアウトをサポートしています。グローバルログアウトのサポートはプロバイダーによって異なります。

    注釈

    ウェブベースの IdP の場合(例:Okta)、ブラウザーのタブ/ウィンドウを閉じても IdP セッションが終了するとは限りません。ユーザーの IdP セッションがまだアクティブな場合、 IdP セッションがタイムアウトするまでSnowflakeにアクセスできます。

タイムアウトワークフロー

ユーザーのセッションがタイムアウトすると、タイムアウトするのはSnowflakeセッションか IdP セッションかによって動作が決定されます。

  • Snowflakeのタイムアウト:

    ユーザーが SSO を使用してSnowflakeにログインし、非アクティブのためにSnowflakeのセッションが期限切れになると、Snowflakeのウェブインターフェイスが無効になり、 IdP 認証のプロンプトが表示されます。

    • 期限切れのSnowflakeセッションを引き続き使用するには、ユーザーは IdP を介して再度認証する必要があります。

    • ユーザーは Cancel ボタンをクリックしてセッションを終了できます。

    • ユーザーは IdP サイト/アプリケーションに直接移動してSnowflakeを再起動することもできますが、これにより新しいSnowflakeセッションが開始されます。

  • IdP タイムアウト:

    指定された期間( IdPで定義)後、 IdP のユーザーのセッションは自動的にタイムアウトしますが、これはSnowflakeセッションに影響しません。その時点でアクティブなSnowflakeセッションは開いたままで、再認証を必要としません。ただし、新しいSnowflakeセッションを開始するには、ユーザーは再度 IdP にログインする必要があります。