CREATE SECURITY INTEGRATION (SAML2)

アカウントに新しい SAML2 セキュリティ統合を作成するか、既存の統合を置き換えます。SAML2 セキュリティ統合は、SnowflakeとサードパーティのIDプロバイダー(IdP)の間にインターフェイスを作成することにより、シングルサインオン(SSO)ワークフローを提供します。

他の型のセキュリティ統合(例: SCIM)の作成については、 CREATE SECURITY INTEGRATION をご参照ください。

こちらもご参照ください。

ALTER SECURITY INTEGRATION (SAML2)DROP INTEGRATIONSHOW INTEGRATIONS

構文

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    <name>
    TYPE = SAML2
    ENABLED = { TRUE | FALSE }
    SAML2_ISSUER = '<string_literal>'
    SAML2_SSO_URL = '<string_literal>'
    SAML2_PROVIDER = '<string_literal>'
    SAML2_X509_CERT = '<string_literal>'
    [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
    [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
    [ SAML2_SIGN_REQUEST = TRUE | FALSE ]
    [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]
    [ SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' ]
    [ SAML2_FORCE_AUTHN = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]
    [ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]
    [ COMMENT = '<string_literal>' ]
Copy

必須パラメーター

name

統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

TYPE = SAML2

統合のタイプを指定します。

  • SAML2: SnowflakeとIDプロバイダーの間にセキュリティインターフェイスを作成します。

ENABLED = { TRUE | FALSE }

統合の操作を開始するか、中断するかを指定するブール値。

  • TRUE は、パイプ定義で指定されたパラメーターに基づいて統合を許可します。

  • FALSE は、メンテナンスのために統合を一時停止します。Snowflakeとサードパーティサービス間の統合はいずれも機能しません。

SAML2_ISSUER = 'string_literal'

EntityID を含む文字列 / IdP の発行者。

SAML2_SSO_URL = 'string_literal'

IdP SSO URL を含む文字列。ユーザーは、 SAML AuthnRequest メッセージでSnowflake(サービスプロバイダー)によりリダイレクトされます。

SAML2_PROVIDER = 'string_literal'

IdP を説明する文字列。

次のいずれか:OKTA、 ADFS、カスタム。

SAML2_X509_CERT = 'string_literal'

Base64は、先頭の -----BEGIN CERTIFICATE----- と末尾の -----END CERTIFICATE----- マーカーのない1行で IdP 署名証明書をエンコードしました。

オプションのパラメーター

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'

ログインページの Log In With ボタンの後に表示するラベルを含む文字列。

SAML2_ENABLE_SP_INITIATED = { TRUE | FALSE }

ログインページに Log In With ボタンを表示するかどうかを示すブール値。

  • TRUE は、ログインページに Log in With ボタンを表示します。

  • FALSE は、ログインページに Log in With ボタンを表示しません。

SAML2_SNOWFLAKE_X509_CERT = 'string_literal'

SAML アサーションの暗号化署名付き SAML リクエストの送信 に使用される、Snowflakeによって生成されたBase64エンコード自己署名証明書。

証明書の値にアクセスするには、Snowflakeアカウントでこれらの機能(暗号化された SAML アサーションまたは署名済みの SAML 応答)の少なくとも1つを有効にする必要があります。

SAML2_SIGN_REQUEST = { TRUE | FALSE }

SAML リクエストが署名されているかどうかを示すブール値。

  • TRUE は、 SAML リクエストへの署名を許可します

  • FALSE は、 SAMLリクエストへの署名を許可しません。

SAML2_REQUESTED_NAMEID_FORMAT = 'string_literal'

SAML NameID 形式を使用すると、Snowflakeは、 IdP からの SAML アサーションでユーザーの識別属性(つまり SAML サブジェクト)の期待値を設定して、Snowflakeへの有効な認証を確認できます。値が指定されていない場合、Snowflakeは認証リクエストの urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 値を IdP に送信します。

オプション。

SAML NameID 形式を指定する場合は、次のいずれかの値を使用します。

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

SAML2_POST_LOGOUT_REDIRECT_URL = 'string_literal'

Classic Console の Log Out ボタンをクリックした後に、Snowflakeがユーザーをリダイレクトするエンドポイント。

Snowflakeは、指定されたエンドポイントにリダイレクトすると、Snowflakeセッションを終了します。

SAML2_FORCE_AUTHN = { TRUE | FALSE }

ユーザーが最初の認証フロー中に、Snowflakeにアクセスするために再認証を強制されるかどうかを示すブール値。 TRUE に設定すると、SnowflakeからIDプロバイダーへの送信リクエストで、Snowflakeは ForceAuthn SAML パラメーターを TRUE に設定します。

  • TRUE は、 IDプロバイダーとの有効なセッションが存在する場合でも、ユーザーにSnowflakeにアクセスするための再認証を強制します。

  • FALSE は、Snowflakeにアクセスするためにユーザーに再認証を強制することはありません。

デフォルト: FALSE

SAML2_SNOWFLAKE_ISSUER_URL = 'string_literal'

Snowflakeサービスプロバイダーの EntityID / Issuer を含む文字列。

誤った値が指定された場合、Snowflakeは使用可能な値を示すエラーメッセージを返します。

このプロパティの値は、 IdP で指定されたSnowflakeアカウント URL と一致する必要があります。 レガシー URL がデフォルトになるため、 IdP で別の URL 形式 を定義する場合は、セキュリティ統合の作成時にこのプロパティを適切に設定してください。詳細については、 SAML2 セキュリティ統合を作成する をご参照ください。

SAML2_SNOWFLAKE_ACS_URL = 'string_literal'

IdP が SAML 認証応答をSnowflakeに送り返す、Snowflake Assertion Consumer Service URL を含む文字列。このプロパティは、 IdP で SAML SSO 操作を開始するときに、Snowflakeによって生成される SAML 認証リクエストで設定されます。

誤った値が指定された場合、Snowflakeは使用可能な値を示すエラーメッセージを返します。

このプロパティの値は、 IdP で指定されたSnowflakeアカウント URL と一致する必要があります。 レガシー URL がデフォルトになるため、 IdP で別の URL 形式 を定義する場合は、セキュリティ統合の作成時にこのプロパティを適切に設定してください。詳細については、 SAML2 セキュリティ統合を作成する をご参照ください。

デフォルト: https://<アカウントロケーター>.<リージョン>.snowflakecomputing.com/fed/login

COMMENT = 'string_literal'

統合のコメントを指定します。

デフォルト: 値なし

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE INTEGRATION

アカウント

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • メタデータについて。

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

次の例では、2つのオプション設定を使用してMicrosoft Active Directoryフェデレーションサービス(AD FS)のセキュリティ統合を作成します。

CREATE SECURITY INTEGRATION my_idp
    TYPE = saml2
    ENABLED = true
    SAML2_ISSUER = 'https://example.com'
    SAML2_SSO_URL = 'http://myssoprovider.com'
    SAML2_PROVIDER = 'ADFS'
    SAML2_X509_CERT = 'my_x509_cert'
    SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'my_idp'
    SAML2_ENABLE_SP_INITIATED = false
    ;
Copy

DESCRIBE INTEGRATION を使用して統合設定を表示します。

DESC SECURITY INTEGRATION my_idp;
Copy