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>' ]
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âmetroForceAuthn
SAML comoTRUE
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
;
Ver as configurações de integração usando DESCRIBE INTEGRATION:
DESC SECURITY INTEGRATION my_idp;