CREATE SECURITY INTEGRATION (SAML2)

Cria uma nova integração de segurança SAML2 na conta ou substitui uma integração existente. Uma integração de segurança SAML2 fornece fluxos de trabalho de login único (SSO) criando uma interface entre o Snowflake e um provedor de identidade de terceiros (IdP).

Para obter mais informações sobre a criação de outros tipos de integrações de segurança (por exemplo, SCIM), consulte CREATE SECURITY INTEGRATION.

Consulte também:

ALTER SECURITY INTEGRATION (SAML2) , DROP INTEGRATION , SHOW INTEGRATIONS

Sintaxe

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

Parâmetros obrigatórios

name

Cadeia de caracteres que especifica o identificador (ou seja, nome) para a integração; deve ser única em sua conta.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

TYPE = SAML2

Especifique o tipo de integração:

  • SAML2: cria uma interface de segurança entre o Snowflake e o provedor da identidade.

ENABLED = { TRUE | FALSE }

O booleano que especifica se deve iniciar a operação da integração ou suspendê-la.

  • TRUE permite que a integração funcione com base nos parâmetros especificados na definição do canal.

  • FALSE suspende a integração para manutenção. Qualquer integração entre o Snowflake e um serviço de terceiro não funciona.

SAML2_ISSUER = 'string_literal'

cadeia de caracteres que contém o EntityID/emissor do IdP.

SAML2_SSO_URL = 'string_literal'

A cadeia de caracteres contendo o IdP SSO URL, onde o usuário deve ser redirecionado pelo Snowflake (o provedor de serviço) com uma mensagem SAML AuthnRequest.

SAML2_PROVIDER = 'string_literal'

A cadeia de caracteres que descreve o IdP.

Uma das seguintes opções: OKTA, ADFS, personalizado.

SAML2_X509_CERT = 'string_literal'

O certificado de assinatura IdP com codificação Base64 em uma linha única sem os marcadores -----BEGIN CERTIFICATE----- iniciais e -----END CERTIFICATE----- finais.

Parâmetros opcionais

ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )

Uma lista de domínios de e-mail que podem ser autenticados com uma integração de segurança SAML2. Por exemplo, 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 Uso de vários provedores de identidade para autenticação federada.

ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )

Uma lista de expressões regulares com as quais os endereços de e-mail são comparados para autenticação com uma integração de segurança SAML2. Por exemplo, 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 Uso de vários provedores de identidade para autenticação federada.

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'

A cadeia de caracteres contendo a tag a ser exibida após o botão Log In With na página de login.

SAML2_ENABLE_SP_INITIATED = { TRUE | FALSE }

Booleano indicando se o botão Log In With será mostrado na página de login.

  • TRUE exibe o botão Log in With na página de login.

  • FALSE não exibe o botão Log in With na página de login.

SAML2_SNOWFLAKE_X509_CERT = 'string_literal'

O certificado de autoassinatura codificado Base64 gerado pelo Snowflake usado para criptografar asserções SAML e enviar solicitações de SAML assinadas.

Você deve ter pelo menos um destes recursos (asserções SAML codificadas ou respostas assinadas SAML) habilitado em sua conta Snowflake para acessar o valor do certificado.

SAML2_SIGN_REQUEST = { TRUE | FALSE }

O booleano indicando se as solicitações SAML são assinadas.

  • TRUE permite que as solicitações SAML sejam assinadas.

  • FALSE não permite que as solicitações SAML sejam assinadas.

SAML2_REQUESTED_NAMEID_FORMAT = 'string_literal'

O formato SAML NameID permite ao Snowflake definir uma expectativa do atributo de identificação do usuário (isto é, o assunto SAML) na asserção SAML do IdP para assegurar uma autenticação válida para o Snowflake. Se um valor não for especificado, o Snowflake enviará o valor urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress na solicitação de autenticação para o IdP.

Opcional.

Se você optar por especificar o formato SAML NameID, use um dos seguintes valores:

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

O ponto de extremidade para o qual Snowflake redireciona os usuários após clicar no botão Log Out no Classic Console.

O Snowflake encerra a sessão do Snowflake ao ser redirecionado para o ponto de extremidade especificado.

SAML2_FORCE_AUTHN = { TRUE | FALSE }

O booleano indica se os usuários, durante o fluxo inicial de autenticação, são forçados a se autenticar novamente para acessar o Snowflake. Quando ajustado para TRUE, o Snowflake define o parâmetro ForceAuthn SAML como TRUE na solicitação de saída do Snowflake para o provedor de identidade.

  • TRUE força os usuários a se autenticarem novamente para acessar o Snowflake, mesmo que exista uma sessão válida com o provedor da identidade.

  • FALSE não força os usuários a se autenticarem novamente para acessar o Snowflake.

Padrão: FALSE.

SAML2_SNOWFLAKE_ISSUER_URL = 'string_literal'

A cadeia de caracteres contendo o EntityID / Issuer do provedor de serviços Snowflake.

Se um valor incorreto for especificado, o Snowflake retorna uma mensagem de erro indicando os valores aceitáveis a serem usados.

O valor dessa propriedade deve corresponder à conta Snowflake URL especificada no IdP. Seu valor padrão é a URL de legado. Portanto, se você definir um formato de URL diferente no IdP, certifique-se de definir essa propriedade adequadamente ao criar a integração de segurança. Para obter mais detalhes, consulte Criação de uma integração de segurança SAML2.

SAML2_SNOWFLAKE_ACS_URL = 'string_literal'

A cadeia de caracteres contendo o URL do Snowflake Assertion Consumer Service para o qual o IdP enviará sua resposta de autenticação SAML de volta ao Snowflake. Esta propriedade será definida na solicitação de autenticação de SAML gerada pelo Snowflake ao iniciar uma operação SAML SSO com o IdP.

Se um valor incorreto for especificado, o Snowflake retorna uma mensagem de erro indicando os valores aceitáveis a serem usados.

O valor dessa propriedade deve corresponder à conta Snowflake URL especificada no IdP. Seu valor padrão é a URL de legado. Portanto, se você definir um formato de URL diferente no IdP, certifique-se de definir essa propriedade adequadamente ao criar a integração de segurança. Para obter mais detalhes, consulte Criação de uma integração de segurança SAML2.

Padrão: https://<localizador_conta>.<região>.snowflakecomputing.com/fed/login

COMMENT = 'string_literal'

Especifica um comentário para a integração.

Padrão: sem valor

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE INTEGRATION

Conta

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

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplo

O exemplo a seguir cria uma integração de segurança do Microsoft Active Directory Federation Services (AD FS) com as duas configurações opcionais:

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

Ver as configurações de integração usando DESCRIBE INTEGRATION:

DESC SECURITY INTEGRATION my_idp;
Copy