CREATE SECURITY INTEGRATION (SAML2)¶
アカウントに新しい SAML2 セキュリティ統合を作成するか、既存の統合を置き換えます。SAML2 セキュリティ統合は、SnowflakeとサードパーティのIDプロバイダー(IdP)の間にインターフェイスを作成することにより、シングルサインオン(SSO)ワークフローを提供します。
他の型のセキュリティ統合(例: SCIM)の作成については、 CREATE SECURITY INTEGRATION をご参照ください。
構文¶
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>'
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<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>' ]
必須パラメーター¶
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 署名証明書をエンコードしました。
オプションのパラメーター¶
ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )
SAML2 セキュリティ統合で認証できるメールドメインのリスト。例:
ALLOWED_USER_DOMAINS = ("example.com", "example2.com", ...)
。This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see フェデレーション認証に複数のIDプロバイダーを使用する.
ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )
セキュリティ統合 SAML2 で認証するメールアドレスが一致する正規表現のリスト。例:
ALLOWED_EMAIL_PATTERNS = ("^(.+dev)@example.com$", "^(.+dev)@example2.com$", ... )
。This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see フェデレーション認証に複数のIDプロバイダーを使用する.
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
;
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION my_idp;