Visão geral da autenticação federada e SSO¶
Este tópico descreve os componentes que compõem um ambiente federado para autenticar usuários, e os fluxos de trabalho SSO (login único) suportados pelo Snowflake.
Neste tópico:
O que é um ambiente federado?¶
Em um ambiente federado, a autenticação do usuário é separada do acesso do usuário por meio do uso de uma ou mais entidades externas que fornecem autenticação independente das credenciais do usuário. A autenticação é então passada para um ou mais serviços, permitindo aos usuários acessar os serviços por meio do SSO. Um ambiente federado consiste nos seguintes componentes:
- Provedor de serviços (SP):
Em um ambiente federado do Snowflake, o Snowflake serve como o SP.
- Provedor de identidade (IdP):
A entidade externa e independente responsável pela prestação dos seguintes serviços ao SP:
Criação e manutenção de credenciais de usuário e outras informações de perfil.
Autenticação de usuários para acesso SSO ao SP.
O Snowflake oferece suporte para a maioria dos fornecedores compatíveis com SAML 2.0 como um IdP; entretanto, alguns fornecedores incluem suporte nativo para o Snowflake (consulte abaixo para obter mais detalhes).
Provedores de identidade compatíveis¶
Os seguintes fornecedores oferecem suporte Snowflake nativo para autenticação federada e SSO:
Okta — serviço hospedado
Microsoft AD FS (Active Directory Federation Services) — software no local (instalado no Windows Server)
Além do suporte Snowflake nativo fornecido pelo Okta e AD FS, o Snowflake oferece suporte à utilização, como IdP, da maioria dos fornecedores compatíveis com SAML 2.0, incluindo:
Nota
Para utilizar um IdP que não seja do Okta ou AD FS, é necessário definir um aplicativo personalizado para o Snowflake no IdP.
Para obter mais detalhes sobre como configurar Okta, AD FS ou outro fornecedor compatível com SAML 2.0 como IdP para o Snowflake, consulte Configuração de um provedor de identidade (IdP) para o Snowflake.
Uso de vários provedores de identidade¶
Você pode configurar o Snowflake para que diferentes usuários sejam autenticados usando diferentes provedores de identidade.
Depois de configurar todos os provedores de identidade, siga as orientações em Uso de vários provedores de identidade para autenticação federada.
Nota
Atualmente, apenas um subconjunto de drivers Snowflake dá suporte ao uso de vários provedores de identidade. Esses drivers incluem JDBC, ODBC e Python.
Fluxos de trabalho SSO suportados¶
A autenticação federada permite os seguintes fluxos de trabalho SSO:
Login no Snowflake.
Sair do Snowflake.
Tempo limite do sistema devido a inatividade.
O comportamento para cada fluxo de trabalho é determinado se a ação é iniciada dentro do Snowflake ou dentro de seu IdP.
Fluxo de trabalho de login¶
Quando um usuário faz login, o comportamento do sistema é determinado se o login é iniciado por meio do Snowflake ou do IdP:
- Login iniciado pelo Snowflake:
Para fazer login pelo Snowflake:
O usuário vai para a interface da Web do Snowflake.
O usuário escolhe fazer login usando o IdP configurado para sua conta (Okta, AD FS ou um IdP personalizado).
O usuário se autentica com o IdP usando suas credenciais IdP (por exemplo, endereço de e-mail e senha).
Se a autenticação for bem-sucedida, o IdP envia uma resposta SAML ao Snowflake para iniciar uma sessão e exibe a interface da Web do Snowflake.
Nota
Para login iniciado pelo Snowflake, a página de login do Snowflake oferece duas opções de autenticação (IdP ou Snowflake). Para usar a autenticação federada, os usuários devem escolher a opção IdP e então inserir suas credenciais quando solicitados. A escolha da opção Snowflake evita a autenticação federada e registra o usuário no uso da autenticação nativa do Snowflake.
- Login iniciado pelo IdP:
Para fazer login em sua conta por meio do IdP:
O usuário acessa o site/aplicativo IdP e se autentica usando suas credenciais IdP (por exemplo, endereço de e-mail e senha).
No IdP, o usuário clica no aplicativo Snowflake (se estiver usando Okta ou AD FS) ou no aplicativo personalizado que foi definido no IdP (se estiver usando outro IdP).
O IdP envia uma resposta SAML ao Snowflake para iniciar uma sessão e então exibe a interface da Web do Snowflake.
Fluxo de trabalho de logout¶
Quando um usuário faz logout, as opções disponíveis são ditadas pelo fato de o IdP oferecer suporte para logout global ou apenas para logout padrão:
- Padrão:
Exige que os usuários façam logout explícito tanto do IdP quanto do Snowflake para se desconectar completamente. Todos os IdPs oferecem suporte ao logout padrão.
- Global:
Permite que um usuário saia do IdP e posteriormente de todas as suas sessões do Snowflake. O suporte para logout global depende do IdP.
Além disso, o comportamento do sistema é determinado se o logout é iniciado por meio do Snowflake ou do IdP:
- Logout iniciado pelo Snowflake:
O logout global não é compatível com o Snowflake, independentemente do suporte do IdP. Quando um usuário sai de uma sessão do Snowflake, ele é desconectado somente daquela sessão. Todas as outras sessões atuais do Snowflake permanecem abertas, assim como a sessão do IdP. Como resultado, os usuários podem continuar trabalhando em suas outras sessões ou podem iniciar sessões adicionais sem ter que se autenticar novamente por meio do IdP.
Para desconectar-se completamente, os usuários devem sair explicitamente do Snowflake e do IdP.
- Logout iniciado pelo IdP:
Quando um usuário faz logout por meio de um IdP, o comportamento depende do fato de o IdP oferecer suporte somente ao logout padrão ou também ao logout global:
AD FS é compatível tanto com o logout padrão quanto com o logout global. Se o logout global estiver ativado, a página de login do FS IdP do AD fornece uma opção para sair de todos os sites que o usuário acessou. Selecionar esta opção e clicar em Sign Out faz com que o usuário saia do AD FS e de todas as suas sessões do Snowflake. Para acessar o Snowflake novamente, eles devem se reautenticar usando o AD FS.
O Okta oferece suporte apenas ao logout padrão. Quando um usuário sai do Okta, ele não é automaticamente desconectado de nenhuma de suas sessões ativas do Snowflake e pode continuar trabalhando. Entretanto, para iniciar qualquer nova sessão do Snowflake, o usuário deve se autenticar novamente por meio do Okta.
Todos os provedores personalizados oferecem suporte ao logout padrão; o suporte para logout global varia de acordo com o provedor.
Nota
Para um IdP baseado na Web (por exemplo, Okta), fechar a guia/janela do navegador não encerra necessariamente a sessão do IdP. Se a sessão do IdP de um usuário ainda estiver ativa, ele ainda poderá acessar o Snowflake até que a sessão do IdP expire.
Fluxo de trabalho de tempo limite¶
Quando a sessão de um usuário atinge o tempo limite, o comportamento é determinado pelo tempo limite da sessão do Snowflake ou do IdP:
- Tempo limite do Snowflake:
Se um usuário fizer login no Snowflake usando SSO e sua sessão do Snowflake expirar devido a inatividade, a interface da Web do Snowflake é desativada e o prompt para a autenticação IdP é exibido:
Para continuar usando a sessão do Snowflake expirada, o usuário deve se autenticar novamente por meio do IdP.
O usuário pode sair da sessão clicando no botão Cancel.
O usuário também pode ir diretamente ao site/aplicativo do IdP e reiniciar o Snowflake, mas isso inicia uma nova sessão do Snowflake.
- Tempo limite do IdP:
Após um período especificado (definido pelo IdP), a sessão de um usuário no IdP se encerra automaticamente, mas isso não afeta suas sessões do Snowflake. Qualquer sessão do Snowflake que esteja ativa no momento permanece aberta e não requer reautenticação. Entretanto, para iniciar qualquer nova sessão do Snowflake, o usuário deve fazer o login novamente no IdP.
SSO com conectividade privada¶
O Snowflake oferece suporte ao SSO com conectividade privada ao serviço Snowflake para contas Snowflake na Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP).
Por padrão, as contas Snowflake suportam SSO com um URL de conta por vez. Especifique o URL da conta pública ou URL associado ao serviço de conectividade privada no AWS, Microsoft Azure ou Google Cloud Platform.
Se você tiver ativado o fluxo de login do primeiro identificador, poderá configurar duas integrações de segurança SAML2, uma integração usando o URL de conta pública e uma integração usando o URL associado ao serviço de conectividade privada no AWS, Microsoft Azure ou Google Cloud Platform.
O Snowflake oferece suporte ao uso de SSO com organizações e você pode usar o URL correspondente na integração de segurança SAML2. Para obter mais informações, consulte Configuração do Snowflake para usar a autenticação federada.
Para usar o SSO com conectividade privada ao Snowflake, configure a conectividade privada antes de configurar o SSO:
Se sua conta Snowflake estiver na AWS ou Azure, siga as instruções de autoatendimento listadas em AWS PrivateLink e Snowflake e Azure Private Link e Snowflake.
Se sua conta Snowflake estiver no GCP, você deve entrar em contato com o suporte Snowflake e fornecer a URL da conta Snowflake para uso com Google Cloud Private Service Connect e Snowflake.
Para determinar o URL correto a ser usado, chame a função SYSTEM$GET_PRIVATELINK_CONFIG em sua conta Snowflake no GCP.
Replicação da configuração de SSO¶
O Snowflake oferece suporte à replicação e failover/failback da integração de segurança SAML2 a partir da conta de origem para a conta de destino.
Para obter mais detalhes, consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas.