カテゴリ:

ユーザーとセキュリティ DDL (サードパーティのサービス統合)

CREATE SECURITY INTEGRATION

アカウントに新しいセキュリティ統合を作成するか、既存の統合を置き換えます。統合は、Snowflakeとサードパーティサービス間のインターフェイスを提供するSnowflakeオブジェクトです。

セキュリティ統合により、 OAuth をサポートするクライアントは、ユーザーを認証ページにリダイレクトし、Snowflakeへのアクセス用のアクセストークン(およびオプションで更新トークン)を生成できます。

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

ALTER SECURITY INTEGRATIONDROP INTEGRATIONSHOW 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>'
  EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
  [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ]
  [ 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 ]

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>' ]

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>'

パートナーアプリケーション用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> ]
  [ 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 ]
  [ 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_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_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つ以上のロールに対して付与および取り消しができます。例:

    grant USE_ANY_ROLE on integration external_oauth_1 to role1;
    
    revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
    

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

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_PROVISIONERAAD_PROVISIONER、および GENERIC_SCIM_PROVISIONER は大文字と小文字が区別されるため、常に大文字にする必要があります。

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

NETWORK_POLICY = 'ネットワークポリシー'

アカウントに対してアクティブな既存の ネットワークポリシー を指定します。ネットワークポリシーは、アクセストークンまたは更新トークンの認証コードを交換するとき、および更新トークンを使用して新しいアクセストークンを取得するとき、ユーザー IP アドレスのリストを制限します。このパラメーターが設定されていない場合、アカウントのネットワークポリシー(存在する場合)が代わりに使用されます。

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ビジネスインテリジェンスツール。

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サポート にリクエストを送信してください。

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

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 コマンドを実行できるのは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)またはグローバル CREATE INTEGRATION 権限を持つロールのみです。

外部 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 統合を作成します。

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

DESC SECURITY INTEGRATION aad_provisioning;

SCIM およびOktaの例

次の例では、デフォルト設定でOkta SCIM 統合を作成します。

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
  ..
  ';