- カテゴリ:
ユーザーとセキュリティ DDL (サードパーティのサービス統合)
CREATE SECURITY INTEGRATION¶
アカウントに新しいセキュリティ統合を作成するか、既存の統合を置き換えます。統合は、Snowflakeとサードパーティサービス間のインターフェイスを提供するSnowflakeオブジェクトです。
セキュリティ統合により、 OAuth をサポートするクライアントは、ユーザーを認証ページにリダイレクトし、Snowflakeへのアクセス用のアクセストークン(およびオプションで更新トークン)を生成できます。
- こちらもご参照ください:
ALTER SECURITY INTEGRATION 、 DROP INTEGRATION 、 SHOW INTEGRATIONS
このトピックの内容:
構文¶
外部 OAuth
CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
<name>
TYPE = EXTERNAL_OAUTH
ENABLED = { TRUE | FALSE }
EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM }
EXTERNAL_OAUTH_ISSUER = '<string_literal>'
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' | ('<string_literal>', '<string_literal>' [ , ... ] )
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] -- For OKTA | PING_FEDERATE | CUSTOM
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' | ('<string_literal>' [ , '<string_literal>' ... ] ) ] -- For Azure
[ EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( '{role_name}' [ , '{role_name}' , ... ] ) ]
[ EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( '{role_name}' [ , '{role_name}' , ... ] ) ]
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
[ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
[ EXTERNAL_OAUTH_ANY_ROLE_MODE = DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]
[ EXTERNAL_OAUTH_SCOPE_DELIMITER = '<string_literal>' ] -- Only for EXTERNAL_OAUTH_TYPE = CUSTOM
SAML2
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
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>' ]
SCIM
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = SCIM
SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'
RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'
[ NETWORK_POLICY = '<network_policy>' ]
[ SYNC_PASSWORD = TRUE | FALSE ]
[ COMMENT = '<string_literal>' ]
パートナーアプリケーション用Snowflake OAuth
CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
<name>
TYPE = OAUTH
OAUTH_CLIENT = <partner_application>
[ ENABLED = { TRUE | FALSE } ]
[ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
[ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
[ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ]
[ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
カスタムクライアント用Snowflake OAuth
CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
<name>
TYPE = OAUTH
OAUTH_CLIENT = CUSTOM
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'
OAUTH_REDIRECT_URI = '<uri>'
[ ENABLED = { TRUE | FALSE } ]
[ OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE ]
[ OAUTH_ENFORCE_PKCE = TRUE | FALSE ]
[ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ]
[ PRE_AUTHORIZED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
[ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
[ NETWORK_POLICY = '<network_policy>' ]
[ OAUTH_CLIENT_RSA_PUBLIC_KEY = <public_key1> ]
[ OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = <public_key2> ]
[ COMMENT = '<string_literal>' ]
パラメーター¶
外部 OAuth¶
外部 OAuth 必須パラメーター¶
名前
統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = EXTERNAL_OAUTH
外部 OAuth 統合と Snowflake OAuth を区別します。
ENABLED = TRUE | FALSE
統合の操作を開始するか、中断するかを指定します。
TRUE
は、パイプ定義で指定されたパラメーターに基づいて統合を許可します。FALSE
は、メンテナンスのために統合を一時停止します。Snowflakeとサードパーティサービスの統合はいずれも機能しません。
EXTERNAL_OAUTH_TYPE = OKTA | AZURE | PING_FEDERATE | CUSTOM
OAuth 2.0認証サーバーをOkta、Microsoft Azure AD、Ping Identity PingFederate、またはカスタム OAuth 2.0認証サーバーに指定します。
EXTERNAL_OAUTH_ISSUER = '文字列リテラル'
OAuth 2.0認証サーバーを定義する URL を指定します。
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '文字列リテラル' | ('文字列リテラル', '文字列リテラル' [ , ... ] )
アクセストークンをSnowflakeユーザー記録にマップするために使用する、アクセストークンクレームを指定します。
クレームのデータ型は、文字列または文字列のリストである必要があります。
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
アクセストークンをSnowflakeユーザーレコードにマップするために使用する、Snowflakeユーザーレコード属性を示します。
外部 OAuth オプションパラメーター¶
EXTERNAL_OAUTH_JWS_KEYS_URL = '文字列リテラル'
外部 OAuth アクセストークンを検証するための、公開キーまたは証明書をダウンロードするエンドポイントを指定します。
この構文は、条件が
EXTERNAL_OAUTH_TYPE = OKTA | PING_FEDERATE | CUSTOM
のセキュリティ統合に適用されますEXTERNAL_OAUTH_JWS_KEYS_URL = '文字列リテラル' | ('文字列リテラル' [ , '文字列リテラル' ... ] )
外部 OAuth アクセストークンを検証するための、公開キーまたは証明書をダウンロードするエンドポイントまたはエンドポイントのリストを指定します。リストで指定できる URLs の最大数は3です。
この構文は、条件が
EXTERNAL_OAUTH_TYPE = AZURE
のセキュリティ統合に適用されますEXTERNAL_OAUTH_RSA_PUBLIC_KEY = 公開キー1
-----BEGIN PUBLIC KEY-----
および-----END PUBLIC KEY-----
ヘッダーを含まない、Base64でエンコードされた RSA 公開キーを指定します。EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = パブリックキー2
-----BEGIN PUBLIC KEY-----
および-----END PUBLIC KEY-----
ヘッダーを含まない、2番目の RSA 公開キーを指定します。キーのローテーションに使用されます。EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( 'ロール名' [ , 'ロール名' , ... ] )
クライアントがプライマリロールとして設定 できない ロールのリストを指定します。
このリストのロールは、外部 OAuth 認証サーバーからのアクセストークンに基づいてSnowflakeセッションを作成するときには使用 できません。
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( 'ロール名' [ , 'ロール名' , ... ] )
クライアントがプライマリロールとして設定できるロールのリストを指定します。
このリストのロールは、外部 OAuth 認証サーバーからのアクセストークンに基づいてSnowflakeセッションを作成するときに使用できます。
ご用心
このパラメーターは、 ACCOUNTADMIN および SECURITYADMIN システムのロールをサポートします。
これらの高度な権限を持つロールをプライマリロールとして設定してSnowflakeセッションを作成する場合は、注意が必要です。
EXTERNAL_OAUTH_AUDIENCE_LIST = ('文字列リテラル')
お客様のSnowflakeアカウント URL (つまり、
<アカウント識別子>.snowflakecomputing.com
)の使用に加えて、アクセストークンのオーディエンス検証に使用できる追加の値を指定します。詳細については、 アカウント識別子 をご参照ください。現在、複数のオーディエンス URLs は、 外部 OAuth カスタムクライアント に対してのみ指定できます。各 URL は、各 URL をコンマで区切って、単一引用符で囲む必要があります。例:
external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE
OAuth クライアントまたはユーザーが、 OAuth アクセストークンで定義されていないロールを使用できるかどうかを指定します。
DISABLE
の場合、 OAuth クライアントまたはユーザーは、ロール(つまり、use role <ロール>;
)を切り替えられません。デフォルト。ENABLE
の場合、 OAuth クライアントまたはユーザーは、ロールを切り替えられます。ENABLE_FOR_PRIVILEGE
OAuth クライアントまたはユーザーは、USE_ANY_ROLE
権限を持つクライアントまたはユーザーのロールのみを切り替えられます。この権限は、ユーザーが使用できる1つ以上のロールに対して付与および取り消しができます。例:
値は必要に応じて一重引用符で囲むことができることに注意してください(例:
DISABLE
または'DISABLE'
のいずれか)。grant USE_ANY_ROLE on integration external_oauth_1 to role1;
revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
EXTERNAL_OAUTH_SCOPE_DELIMITER = '文字列リテラル'
認証トークンのスコープ区切り文字を指定します。
区切り文字は、コンマ(
','
)やスペース(' '
)などの任意の1文字にすることができます。このセキュリティ統合プロパティはオプションであり、デフォルトのコンマ区切り文字を上書きするために使用できます。このプロパティは、カスタムの外部 OAuth 統合でのみサポートされていることに注意してください。ここで、
EXTERNAL_OAUTH_TYPE = CUSTOM
Snowflakeアカウントでこのプロパティを有効にするには、 Snowflakeサポート に連絡してください。
SAML2¶
SAML2 必須パラメーター¶
名前
統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = SAML2
統合の型を指定します。
SAML2
:SnowflakeとIDプロバイダーの間にセキュリティインターフェイスを作成します。
ENABLED = TRUE | FALSE
統合の操作を開始するか、中断するかを指定するブール値。
TRUE
は、パイプ定義で指定されたパラメーターに基づいて統合を許可します。FALSE
は、メンテナンスのために統合を一時停止します。Snowflakeとサードパーティサービスの統合はいずれも機能しません。
SAML2_ISSUER = '文字列リテラル'
IdP
EntityID
/Issuer
を含む文字列。SAML2_SSO_URL = '文字列リテラル'
IdP SSO URL を含む文字列。ユーザーは、 SAML
AuthnRequest
メッセージでSnowflake(サービスプロバイダー)によりリダイレクトされます。SAML2_PROVIDER = '文字列リテラル'
IdP を説明する文字列。
次のいずれか:OKTA、 ADFS、カスタム。
SAML2_X509_CERT = '文字列リテラル'
Base64は、先頭の
-----BEGIN CERTIFICATE-----
と末尾の-----END CERTIFICATE-----
マーカーのない1行で IdP 署名証明書をエンコードしました。
SAML2 オプションパラメーター¶
SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '文字列リテラル'
ログインページの Log In With ボタンの後に表示するラベルを含む文字列。
SAML2_ENABLE_SP_INITIATED = TRUE | FALSE
ログインページに Log In With ボタンを表示するかどうかを示すブール値。
TRUE
は、ログインページに Log in With ボタンを表示します。FALSE
は、ログインページに Log in With ボタンを表示しません。
SAML2_SNOWFLAKE_X509_CERT = '文字列リテラル'
SAML アサーションの暗号化 と 署名済みの SAML リクエスト で使用するためにSnowflakeによって生成された、Base64エンコードの自己署名証明書。
証明書の値にアクセスするには、Snowflakeアカウントでこれらの機能(暗号化された SAML アサーションまたは署名済みの SAML 応答)の少なくとも1つを有効にする必要があります。
SAML2_SIGN_REQUEST = TRUE | FALSE
SAML リクエストが署名されているかどうかを示すブール値。
TRUE
は、 SAML リクエストへの署名を許可しますFALSE
は、 SAMLリクエストへの署名を許可しません。
SAML2_REQUESTED_NAMEID_FORMAT = '文字列リテラル'
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 web interface の 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は使用可能な値を示すエラーメッセージを返します。
SAML2_SNOWFLAKE_ACS_URL = '<string_literal>'
IdP が SAML 認証応答をSnowflakeに送り返す、Snowflake Assertion Consumer Service URL を含む文字列。
このプロパティは、 IdP で SAML SSO 操作を開始するときに、Snowflakeによって生成される SAML 認証リクエストで設定されます。
誤った値が指定された場合、Snowflakeは使用可能な値を示すエラーメッセージを返します。
デフォルト:
https://<アカウントロケーター>.<リージョン>.snowflakecomputing.com/fed/login
詳細については、次をご参照ください。
SCIM¶
SCIM 必須パラメーター¶
名前
統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = SCIM
統合の型を指定します。
SCIM
:Snowflakeと SCIM をサポートするクライアントとの間にセキュリティインターフェイスを作成します。
SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'
SCIM クライアントを指定します。
RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'
SCIM を使用して、IDプロバイダーからSnowflakeにインポートされるユーザーとロールを所有するSnowflakeの SCIM ロールを指定します。
値
OKTA_PROVISIONER
、AAD_PROVISIONER
、およびGENERIC_SCIM_PROVISIONER
は大文字と小文字が区別されるため、常に大文字にする必要があります。
SCIM オプションパラメーター¶
NETWORK_POLICY = 'ネットワークポリシー'
アカウントに対してアクティブな既存の ネットワークポリシー を指定します。ネットワークポリシーは、アクセストークンまたは更新トークンの認証コードを交換するとき、および更新トークンを使用して新しいアクセストークンを取得するとき、ユーザー IP アドレスのリストを制限します。このパラメーターが設定されていない場合は、アカウントのネットワークポリシー(存在する場合)が代わりに使用されます。
SYNC_PASSWORD = TRUE | FALSE
Snowflakeへの API リクエストの一部として、Okta SCIM クライアントからのユーザーパスワードの同期を有効にするか無効にするかを指定します。
TRUE
は、パスワードの同期を有効にします。FALSE
は、パスワードの同期を無効にします。
デフォルトは、
TRUE
。このパラメーターを設定せずにセキュリティ統合を作成した場合、SnowflakeはこのパラメーターをTRUE
に設定します。クライアントからSnowflakeにユーザーパスワードを同期しない場合は、このプロパティ値が
FALSE
に設定されていることを確認し、 合わせて クライアントでパスワードの同期を無効にします。このプロパティは、Oktaおよびカスタム SCIM 統合でサポートされています。Microsoft Azureはパスワードの同期をサポートしていないため、Azure SCIM 統合はサポートされていません。サポートをリクエストするには、Microsoft Azureにお問い合わせください。
詳細については、 SCIM を使用したユーザーとグループの管理 をご参照ください。
COMMENT
統合のコメントを指定する文字列(リテラル)。
デフォルト: 値なし
Snowflake OAuth¶
Snowflake OAuth 必須パラメーター¶
名前
統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = OAUTH
統合の型を指定します。
OAUTH
:Snowflakeと OAuth をサポートするクライアントとの間にセキュリティインターフェイスを作成します。
OAUTH_CLIENT = CUSTOM | パートナーアプリケーション
クライアントの型を指定します。
CUSTOM
:Snowflakeとカスタムクライアントの間に OAuth インターフェイスを作成します。パートナーアプリケーション
:Snowflakeとパートナーアプリケーションの間に OAuth インターフェイスを作成します。サポートされる値は次のとおりです。TABLEAU_DESKTOP
:Tableau Desktopバージョン2019.1またはそれ以上。TABLEAU_SERVER
:Tableau OnlineまたはTableau Server。LOOKER
:Lookerビジネスインテリジェンスツール。
OAUTH_REDIRECT_URI = 'URI'
クライアント URIを指定します。ユーザーが認証されると、ウェブブラウザーはこの URI にリダイレクトされます。
このパラメーターは、
OAUTH_CLIENT = LOOKER
の場合に必要です。詳細については、 Lookerドキュメント の例をご参照ください。
Snowflake OAuth オプションパラメーター¶
ENABLED = TRUE | FALSE
統合の操作を開始するか、中断するかを指定します。
TRUE
は、統合を有効にします。FALSE
は、メンテナンスのための統合を無効にします。Snowflakeとサードパーティサービスの統合は、いずれの場合も機能しません。
デフォルトは、
FALSE
。このパラメーターをTRUE
に設定せずにセキュリティ統合を作成した場合、SnowflakeはパラメーターをFALSE
に設定します。
Snowflake OAuth カスタムクライアントパラメーター¶
OAUTH_CLIENT = CUSTOM の場合にのみ必要です(つまり、カスタムクライアントの統合を作成する場合)
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'
登録されるクライアントのタイプを指定します。Snowflakeは、機密クライアントとパブリッククライアントの両方をサポートしています。機密クライアントは秘密を保存できます。エンドユーザーがアクセスできない、保護された領域で実行されます。例えば、クラウドに展開されたセキュリティで保護されたサービスが機密クライアントになる可能性があります。一方、デスクトップで実行されているクライアントや、アプリストアを介して配布されているクライアントは、パブリッククライアントになる可能性があります。
OAUTH_REDIRECT_URI = 'URI'
クライアント URIを指定します。ユーザーが認証されると、ウェブブラウザーはこの URI にリダイレクトされます。オプションの
OAUTH_ALLOW_NON_TLS_REDIRECT_URI
パラメーターがTRUE
に設定されていない限り、 URI は TLS (トランスポート層セキュリティ)で保護する必要があります。
Snowflake OAuth パートナーアプリケーションパラメーター --- オプション¶
OAUTH_CLIENT = <partner_application>の場合(つまり、パートナーアプリケーションの統合を作成する場合)に有効
OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
現在のアクセストークンの有効期限が切れたときに、クライアントがアクセストークンの更新トークンを交換できるようにするかどうかを指定するブール値。
FALSE
に設定されている場合、OAUTH_REFRESH_TOKEN_VALIDITY
で整数値が設定されているかどうかにかかわらず、更新トークンは発行されません。ユーザーの同意は取り消され、ユーザーは再度認証を確認する必要があります。デフォルト:
TRUE
注釈
このパラメーターが
FALSE
に設定されており、セキュリティ統合にもENABLED = TRUE
がある場合、Snowflake OAuth フローが繰り返され、構成できないアクセストークンが発行されます。アクセストークンは、600秒間有効です(10分)。このアクセストークンの有効期限が切れると、ユーザーは再度認証を受ける必要があります。このパラメーターを
FALSE
およびENABLED = false
に設定すると、トークンは発行されず、統合は無効になります。OAUTH_REFRESH_TOKEN_VALIDITY = 整数
更新トークンの有効期間を秒単位で指定する整数。これを使用して、更新トークンを定期的に失効させることができます。OAUTH_ISSUE_REFRESH_TOKENS を
TRUE
に設定する必要があることに注意してください。更新トークンの有効期限が切れると、アプリケーションはユーザーに再度認証フローを指示して、新しい更新トークンを取得する必要があります。
サポートされている最小値、最大値、およびデフォルト値は次のとおりです。
アプリケーション
最小
最大
デフォルト
Tableau Desktop
60
(1分)36000
(10時間)36000
(10時間)Tableau ServerまたはTableau Online
60
(1分)7776000
(90日)7776000
(90日)カスタムクライアント
3600
(1時間)7776000
(90日)7776000
(90日)ビジネスで最小値を下げるか、最大値を上げる必要がある場合は、アカウント管理者に依頼して Snowflakeサポート にリクエストを送信してください。
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
ユーザープロパティで設定されたデフォルトのセカンダリロールは、開かれているセッション内においてデフォルトでアクティブ化されます。
NONE
デフォルトのセカンダリロールは、開かれているセッションではサポートされていません。
デフォルト:
NONE
BLOCKED_ROLES_LIST = ( 'ロール名' [ , 'ロール名' , ... ] )
認証後に、ユーザーが使用に対して明示的に同意 できない Snowflakeロールのコンマ区切りリスト(例:
'custom_role1', 'custom_role2'
)。ACCOUNTADMIN および SECURITYADMIN ロールはデフォルトでこのリストに含まれます。ただし、これらのロールをアカウントから削除する必要がある場合は、アカウント管理者に依頼して、 Snowflakeサポート にリクエストを送信してください。
COMMENT = '文字列リテラル'
統合のコメントを指定する文字列(リテラル)。
デフォルト: 値なし
Snowflake OAuth カスタムクライアントパラメーター --- オプション¶
OAUTH_CLIENT = CUSTOM の場合(つまり、カスタムクライアントの統合を作成する場合) に有効
OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE
TRUE
の場合は、OAUTH_REDIRECT_URI
を TLSで保護されて いない URI に設定できます。フィッシング攻撃で使用される中間者 OAuth リダイレクトを防ぐために、 TLS の使用を強くお勧めします。デフォルト:
FALSE
OAUTH_ENFORCE_PKCE = TRUE | FALSE
統合にコード交換の証明キー(PKCE)が必要かどうかを指定するブール値。
デフォルトでは、 PKCE はオプションであり、
code_challenge
およびcode_challenge_method
パラメーターが両方とも許可エンドポイント URLに含まれている場合にのみ強制されます。ただし、 OAuth フローをより安全にするために、すべての認証に PKCE をクライアントに要求することを 強く お勧めします。詳細については、 カスタムクライアント用のSnowflake OAuth の構成 をご参照ください。デフォルト:
FALSE
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
ユーザープロパティで設定されたデフォルトのセカンダリロールは、開かれているセッション内においてデフォルトでアクティブ化されます。
NONE
デフォルトのセカンダリロールは、開かれているセッションではサポートされていません。
デフォルト:
NONE
PRE_AUTHORIZED_ROLES_LIST = '(ロール名', 'ロール名')
ユーザーが認証後に使用することに明示的に同意する必要がないSnowflakeロールのコンマ区切りリスト(例:
'custom_role1', 'custom_role2'
)。 ACCOUNTADMIN および SECURITYADMIN のロールをこのリストに含めることはできません。注釈
このパラメーターは機密クライアントでのみサポートされています。
BLOCKED_ROLES_LIST = ( 'ロール名' [ , 'ロール名' , ... ] )
認証後に、ユーザーが使用に対して明示的に同意 できない Snowflakeロールのコンマ区切りリスト(例:
'custom_role1', 'custom_role2'
)。ACCOUNTADMIN および SECURITYADMIN ロールはデフォルトでこのリストに含まれます。ただし、これらのロールをアカウントから削除する必要がある場合は、アカウント管理者に依頼して、 Snowflakeサポート にリクエストを送信してください。
OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
現在のアクセストークンの有効期限が切れたときに、クライアントがアクセストークンの更新トークンを交換できるようにするかどうかを指定するブール値。
FALSE
に設定されている場合、更新トークンは発行されません。ユーザーの同意は取り消され、ユーザーは再度認証を確認する必要があります。デフォルト:
TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = 整数
更新トークンの有効期間を秒単位で指定する整数。これを使用して、更新トークンを定期的に失効させることができます。OAUTH_ISSUE_REFRESH_TOKENS を
TRUE
に設定する必要があることに注意してください。組織で最小値または最大値をそれぞれ増減する場合は、アカウント管理者に依頼して Snowflakeサポート にリクエストを送信してください。
- 値
86400
(1日)から7776000
(90日)- デフォルト
7776000
NETWORK_POLICY = 'ネットワークポリシー'
アカウントに対してアクティブな既存の ネットワークポリシー を指定します。ネットワークポリシーは、アクセストークンまたは更新トークンの認証コードを交換するとき、および更新トークンを使用して新しいアクセストークンを取得するとき、ユーザー IP アドレスのリストを制限します。このパラメーターが設定されていない場合は、アカウントのネットワークポリシー(存在する場合)が代わりに使用されます。
OAUTH_CLIENT_RSA_PUBLIC_KEY = 公開キー1
RSA パブリックキーを指定します。詳細については、 OAuth をご参照ください。
OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = パブリックキー2
2番目の RSA パブリックキーを指定します。キーのローテーションに使用されます。
COMMENT = '文字列リテラル'
統合のコメントを指定する文字列(リテラル)。
デフォルト: 値なし
アクセス制御の要件¶
この 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サービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
外部 OAuth¶
外部 OAuth Microsoft Azure AD の例¶
次の例では、Microsoft Azure AD OAuth 2.0認証サーバーの外部 OAuth セキュリティ統合を作成します。
create security integration external_oauth_azure_1 type = external_oauth enabled = true external_oauth_type = azure external_oauth_issuer = '<AZURE_AD_ISSUER>' external_oauth_jws_keys_url = '<AZURE_AD_JWS_KEY_ENDPOINT>' external_oauth_token_user_mapping_claim = 'upn' external_oauth_snowflake_user_mapping_attribute = 'login_name';DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION external_oauth_azure_1;
外部 OAuth およびOktaの例¶
次の例では、Okta OAuth 2.0認証サーバー用の外部 OAuth セキュリティ統合を作成します。
create security integration external_oauth_okta_1 type = external_oauth enabled = true external_oauth_type = okta external_oauth_issuer = '<OKTA_ISSUER>' external_oauth_jws_keys_url = '<OKTA_JWS_KEY_ENDPOINT>' external_oauth_token_user_mapping_claim = 'sub' external_oauth_snowflake_user_mapping_attribute = 'login_name';
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION external_oauth_okta_1;
SAML2¶
SAML2 の例¶
次の例では、2つのオプション設定を使用してMicrosoft Active Directoryフェデレーションサービス(ADFS)のセキュリティ統合を作成します。
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;
SCIM¶
SCIM およびMicrosoft Azure AD の例¶
次の例では、デフォルト設定でMicrosoft Azure ADSCIM 統合を作成します。
create or replace security integration okta_provisioning
type=scim
scim_client='azure'
run_as_role='AAD_PROVISIONER';
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION aad_provisioning;
SCIM およびOktaの例¶
次の例では、デフォルト設定でOkta SCIM 統合を作成します。
create or replace security integration okta_provisioning
type=scim
scim_client='okta'
run_as_role='OKTA_PROVISIONER';
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION okta_provisioning;
Snowflake OAuth¶
Snowflake OAuth Tableau Desktopの例¶
次の例では、デフォルト設定で OAuth 統合を作成します。
CREATE SECURITY INTEGRATION td_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_DESKTOP;
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION td_oauth_int1;
次の例では、10時間(36000秒)後に期限切れになる更新トークンを使用して OAuth 統合を作成します。統合により、ユーザーは SYSADMIN をアクティブロールとしてセッションを開始できなくなります。
CREATE SECURITY INTEGRATION td_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 36000 BLOCKED_ROLES_LIST = ('SYSADMIN');
Snowflake OAuth Tableau OnlineまたはTableau Serverの例¶
次の例では、デフォルト設定で OAuth 統合を作成します。
CREATE SECURITY INTEGRATION ts_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER;
DESCRIBE INTEGRATION を使用して統合設定を表示します。
DESC SECURITY INTEGRATION ts_oauth_int1;
次の例では、1日(86400秒)後に期限切れになる更新トークンを使用して OAuth 統合を作成します。統合により、ユーザーは SYSADMIN をアクティブロールとしてセッションを開始できなくなります。
CREATE SECURITY INTEGRATION ts_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER OAUTH_REFRESH_TOKEN_VALIDITY = 86400 BLOCKED_ROLES_LIST = ('SYSADMIN');
Snowflake OAuth カスタムクライアントの例¶
次の例では、キーペア認証を使用する OAuth 統合を作成します。統合では、1日(86400秒)後に期限切れになる更新トークンが許可されます。統合により、ユーザーはアクティブロールとして SYSADMIN のセッション開始ができなくなります。
CREATE SECURITY INTEGRATION oauth_kp_int TYPE=OAUTH ENABLED=TRUE OAUTH_CLIENT = CUSTOM OAUTH_CLIENT_TYPE='CONFIDENTIAL' OAUTH_REDIRECT_URI='https://localhost.com' OAUTH_ISSUE_REFRESH_TOKENS = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 86400 PRE_AUTHORIZED_ROLES_LIST = 'MYROLE' BLOCKED_ROLES_LIST = ('SYSADMIN') OAUTH_CLIENT_RSA_PUBLIC_KEY=' MIIBI ... ';