フェデレーション認証を使用するためのSnowflakeの構成

このトピックでは、Snowflakeで次の操作の に実行する必要がある手順について説明します。 IdP の構成。特に明記されていない限り、フェデレーション認証を有効にするには、各手順を実行する必要があります。

このトピックの内容:

ステップ1:Snowflakeでユーザーを作成する

  1. ACCOUNTADMIN または SECURITYADMIN のいずれかのロールを持つユーザーとしてSnowflakeにログインします。

  2. IdP で作成したユーザーと一致するユーザーがまだ存在しない場合は作成します。

重要

フェデレーション認証を使用する場合、Snowflake login_name は、 SAML 応答にある対応する SAML サブジェクト NameID 属性値と一致する必要があります。この値は、ユーザーの電子メールアドレス、ユーザー名と等しい、またはまったく異なる値にすることができます。Snowflakeに既存のユーザーがいる場合は、 ALTER USER コマンドを使用して属性値を更新できます。

さらに、Snowflakeでパスワードを持たないように、ユーザーの作成(または変更)を検討する必要があります。これにより、これらのユーザーのSnowflake認証は事実上無効になり、フェデレーション認証を使用してログインする必要があります。これは厳密な要件ではありませんが、強くお勧めします。詳細については、 フェデレーション認証が有効なユーザーの管理 をご参照ください。

ステップ2:Snowflake用の IdP 情報を指定する

重要

以下は SAML SSO の構成のみで固有です。

高度な SAML SSO 機能(つまり、暗号化されたアサーション、署名済みのリクエスト、 SAML NameID)を含める場合は、 高度な SAML SSO 機能 をご参照ください。

統合認証用に IdP を有効にするには、Snowflakeは IdP からの次の情報を必要とします。

  • 認証証明書。

  • SAML リクエスト用 URL エンドポイント。

  • 発行者/EntityID が IdP を識別します。

さらに、認証に使用する IdP のタイプ(OKTA、ADFS、または CUSTOM)を指定する必要があります。Snowflakeログインページに表示される、 IdP ボタンのラベルをオプションで指定することもできます。

この情報は、 SAML_IDENTITY_PROVIDER アカウントパラメーターを介して指定されます。このパラメーターは、次のフィールドを持つ一重引用符で囲まれた JSON オブジェクトを受け入れます。

{
  "certificate": "",
  "issuer": "",
  "ssoUrl": "",
  "type"  : "",
  "label" : ""
}

条件:

certificate

IdP とSnowflake間の通信を確認する証明書を指定します。この証明書( RSA 256アルゴリズムを使用して署名されたもの)は、 IdP によって生成されます。証明書の本文のみを単一行に含めます(ヘッダー/フッターは省略)。

issuer

IdP の発行者/EntityID を示します。例:

Okta SSO

Oktaアカウントの発行者/EntityID を取得するには、

  1. Okta Admin Console に移動します。

  2. 以前に作成したSnowflakeアプリケーションを選択します。

  3. Sign On タブをクリックします。

  4. Identity Provider metadata リンクをクリックして、 XML ドキュメントをダウンロードします。

  5. ダウンロードした XML ドキュメントを開き、 EntityDescriptor XML ルート要素にある entityID XML 属性を探します。

  6. entityID 値をコピーし、 "issuer": "" の二重引用符の間に値を挿入します。

ADFS SSO

ADFS インスタンスの発行者/エンティティ ID を特定するには、

  1. ADFS 2.0 Management Console に移動します。

  2. Action に移動します。

  3. Edit Federation Service Properties を選択します。

  4. Federation Service identifier フィールドの値をコピーします。

  5. "issuer": "" の二重引用符の間に値を挿入します。

ssoUrl

Snowflakeが SAML リクエストを送信する URL エンドポイントを指定します。このエンドポイントは IdP 固有であり、構成中に IdP によって決定されます。例:

Okta SSO

https://oktaアカウント名.okta.com/app/okta_snowflakeアプリケーションID/sso/saml

ADFS SSO

ADFS 用 URL にログインします。通常は、 /adfs/ls が追加された ADFS サーバーの IP または FQDN です。

type

統合認証のために使用する IdP を指定する文字列リテラル。可能な値は次のとおりです。

  • "OKTA"

  • "ADFS"

  • "Custom" (他のすべての IdPs の場合)

label

Snowflakeログインページの IdP のボタンテキストを指定します。デフォルトのラベルは Single Sign On です。デフォルトのラベルを変更する場合、指定するラベルに含めることができるのは英数字のみです(つまり、特殊文字と空白は現在サポートされていない)。

"type" フィールドが "Okta" の場合、SnowflakeはボタンにOktaロゴを自動的に表示するため、 label フィールドの値を指定する必要はありません。

パラメーターを設定するには、 ACCOUNTADMIN ロールを持つユーザーとして、ALTER ACCOUNT コマンドを実行します。

  • 次の例では、Oktaをアカウントの IdP として設定します(Oktaアカウント名として abccorp を使用)。

    USE ROLE ACCOUNTADMIN;
    
    ALTER ACCOUNT SET SAML_IDENTITY_PROVIDER = '{
      "certificate": "XXXXXXXXXXXXXXXXXXX",
      "ssoUrl": "https://abccorp.okta.com/app/<okta_snowflake_app_id>/sso/saml",
      "type"  : "OKTA"
      }';
    
  • 次の例では、 ADFS をアカウントの IdP として設定します( abccorp.testmachime.com を IP/FQDN ADFS サーバーとして含む)。

    USE ROLE ACCOUNTADMIN;
    
    ALTER ACCOUNT SET SAML_IDENTITY_PROVIDER = '{
      "certificate": "XXXXXXXXXXXXXXXXXXX",
      "ssoUrl": "https://abccorp.testmachine.com/adfs/ls",
      "type"  : "ADFS",
      "label" : "ADFSSingleSignOn"
      }';
    

ステップ3:Snowflakeが開始する SSO をテストする --- オプション

Snowflakeは、メインログインページですべてのユーザーにロールアウトする前に、Snowflakeが開始するログインのテストに使用できるプレビューログインページをウェブインターフェイスに提供します。 SAML_IDENTITY_PROVIDER アカウントパラメーターを設定して SSO を有効にした後は、次の URL に移動してプレビューページにアクセスできます。

  • アカウントが US 西部にある場合: https://<アカウント名>.snowflakecomputing.com/console/login?fedpreview=true

  • アカウントがその他の地域にある場合: https://<アカウント名>.<地域ID>.snowflakecomputing.com/console/login?fedpreview=true

アカウントの IdP 経由でログインするためのボタン(Okta、ADFS、またはカスタム)がプレビューページに表示されます。

注釈

この手順はオプションですが、ユーザーに展開する前に機能が期待どおりに機能することを確認するよう強くお勧めします。

ステップ4:Snowflakeが開始する SSO を有効にする

Snowflakeには、メインログインページでSnowflakeが開始するログインを有効にするためのアカウントパラメーター SSO_LOGIN_PAGE が用意されています。アカウントのフェデレーション認証構成を完了するには、 必ず このパラメーターを TRUE (デフォルト値は FALSE)に設定します。このパラメーターを設定した後、ユーザーがメインログインページにアクセスすると、アカウントの IdP 経由でログインするためのボタン(Okta、 ADFS、またはカスタム)が表示されます。

パラメーターを設定するには、 ACCOUNTADMIN ロールを持つユーザーとして、次の ALTER ACCOUNT コマンドを実行します。

USE ROLE ACCOUNTADMIN;

ALTER ACCOUNT SET SSO_LOGIN_PAGE = TRUE;