No cenário em evolução da segurança digital, a integração do Couchbase com um provedor de identidade (IdP) SAML (Security Assertion Markup Language) é a base para mecanismos de autenticação robustos.

Por que você deve implementar o SSO com o Couchbase Server?

A integração do Single Sign-On (SSO) com o Couchbase Server oferece várias vantagens atraentes que o tornam uma adição valiosa à sua estratégia de gerenciamento de banco de dados:

    • Gerenciamento centralizado de usuários: O SSO simplifica o provisionamento e o desprovisionamento de usuários centralizando as contas de usuários no seu provedor de identidade (IdP). Isso significa que você pode gerenciar sem esforço o acesso do usuário ao Couchbase Server e a outros aplicativos em um único local, aumentando a eficiência e a segurança.
    • Autenticação multifator (MFA): Os servidores SSO geralmente incluem suporte para MFA, um recurso de segurança essencial. Ao exigir várias formas de autenticação, como uma senha e um código de uso único enviado a um dispositivo móvel, você aumenta significativamente a proteção da interface do usuário do Couchbase Server.
    • Redução do gerenciamento de credenciais: A implementação do SSO elimina a necessidade de os usuários se lembrarem de vários nomes de usuário e senhas. Isso não apenas simplifica a experiência dos usuários, mas também reduz o risco de violações de segurança relacionadas a senhas.

Em resumo, o SSO com o Couchbase Server oferece uma solução avançada para o gerenciamento centralizado de usuários, segurança aprimorada por meio de MFA e uma experiência de usuário simplificada com menos credenciais para gerenciar. Esses benefícios se combinam para simplificar o controle de acesso e aprimorar a postura geral de segurança do seu ambiente do Couchbase Server.

Este artigo serve como um guia introdutório para os fundamentos do SAML e sua função de possibilitar experiências seguras de logon único (SSO). Embora este artigo se concentre nos princípios gerais da integração SAML, um próximo artigo abordará as especificidades da integração de vários IdPs com o servidor Couchbase, oferecendo um guia mais personalizado para implementação.

Visão geral da autenticação SAML

Antes de nos aprofundarmos nos detalhes da configuração de um servidor de identidade com o Couchbase Server, é fundamental entender o mecanismo subjacente da autenticação baseada em SAML. Isso não apenas o ajudará a compreender as etapas envolvidas, mas também o auxiliará na solução de problemas.

Termos-chave

Antes de começarmos, vamos esclarecer alguns termos-chave que usaremos ao longo deste guia:

    • SAML (Security Assertion Markup Language): Um padrão baseado em XML para troca de dados de autenticação e autorização entre as partes, especialmente entre um provedor de identidade e um provedor de serviços.
    • IdP (Provedor de identidade): Um serviço que autentica usuários e envia informações de identidade para o provedor de serviços. Exemplos de IdPs incluem Okta, Auth0, MS Entra ID (Azure AD).
    • SP (Provedor de serviços): O serviço que o usuário deseja acessar, que confia no IdP para autenticar os usuários. O Coucbase atuará como o SP nessa configuração.
    • SSO (Single Sign-On): Um processo de autenticação de usuário que permite que um usuário acesse vários serviços com um único conjunto de credenciais.
    • Postagem SAML: Uma ligação SAML que permite a transferência de afirmações SAML dentro do corpo de uma solicitação HTTP POST.
    • Redirecionamento SAML: Uma associação SAML que permite a transferência de asserções SAML dentro da url de uma solicitação HTTP GET.

O que é SAML?

A SAML (Security Assertion Markup Language) é um padrão baseado em XML para troca de dados de autenticação e autorização entre as partes. No contexto do nosso artigo, essas partes são um provedor de identidade (como Okta ou MS Entra ID (Azure AD)) e um provedor de serviços (Couchbase).

Como o SAML funciona?

Veja a seguir um fluxo simplificado de SSO baseado em SAML:

    1. Solicitação do usuário: O usuário tenta acessar a interface do usuário do Couchbase (provedor de serviços).
    2. Redirecionamento: Se o usuário ainda não estiver autenticado, o SP (Couchbase Server) redireciona o usuário para o IdP para autenticação usando uma solicitação Saml (XML).
    3. Autenticação: O IdP desafia o usuário a fornecer credenciais (como nome de usuário e senha). Uma vez verificadas, o IdP gera uma asserção SAML para o usuário.
    4. Transferência de asserção: O IdP envia essa asserção SAML de volta ao SP (Couchbase Server) por meio de um HTTP POST ou um Redirect (SAML Response)
    5. Verificação de SP: O SP verifica a afirmação SAML e, se for válida, concede ao usuário acesso à interface do usuário do Couchbase Server usando as afirmações encontradas na resposta SAML que recebeu do IdP.

Componentes de uma solicitação SAML

Abaixo está um exemplo simplificado de uma solicitação de autenticação SAML 2.0 (SAML AuthnRequest) que o Couchbase pode enviar a um provedor de identidade:

 

    • ID: Um identificador exclusivo para a solicitação. É usado para rastrear o fluxo SAML e para evitar ataques de repetição.
    • Versão: Especifica a versão do protocolo SAML que está sendo usada, que é 2.0 neste caso.
    • IssueInstant: O registro de data e hora em que a solicitação foi emitida. Geralmente é em UTC e está em conformidade com o padrão ISO 8601.
    • Destino: O URL do serviço de logon único do provedor de identidade. É aqui que o AuthnRequest será enviado.
    • AssertionConsumerServiceURL: O URL para o qual o provedor de identidade deve enviar sua resposta. Esse é um ponto de extremidade no Couchbase.
    • ProtocolBinding: Especifica como a asserção SAML deve ser enviada de volta ao provedor de serviços. Neste exemplo, ela está definida para usar a ligação HTTP POST.
    • Emissor: Especifica a entidade que gerou o AuthnRequest. Geralmente corresponde ao ID da entidade do provedor de serviços e, por padrão, é um URL em que os metadados SAML do Couchbase podem ser encontrados.
    • Formato NameIDPolicy: Especifica o formato do NomeID a ser retornado. Isso é opcional e, se for omitido, o IdP usará seu padrão NomeID formato.
    • SignatureMethod: Especifica o algoritmo usado para a assinatura digital.
    • X509Certificate: Esses elementos contêm o certificado público X.509 que o destinatário pode usar para validar a assinatura.

Componentes de uma resposta SAML

Abaixo está um exemplo simplificado de uma resposta SAML 2.0 (SAML AuthnRequest) que um provedor de identidade (IdP) pode enviar de volta ao Couchbase após a autenticação:

 

    • ID, Versão, IssueInstant, Destino: Esses atributos têm a mesma finalidade que no AuthnRequestmas eles são específicos para isso Resposta mensagem.
    • Emissor: Especifica a entidade que gerou a resposta SAML, neste caso, o IDP.
    • StatusCode: Sucesso significa que a autenticação foi bem-sucedida.
    • Assunto: Descreve o usuário autenticado.
    • Condições: Especifica as condições sob as quais a afirmação é válida.
    • Declarações de atributos: Atributos adicionais do usuário definidos pelo IdP ou SP.
    • Assinatura: Uma assinatura digital para verificar a integridade da afirmação.

Ao compreender esses conceitos fundamentais, você estará mais bem equipado para configurar a autenticação baseada em SAML entre um provedor de identidade e o Couchbase.

Solução de problemas e problemas comuns

Etapas gerais de solução de problemas

    1. Verifique os registros: Tanto o provedor de identidade quanto o Couchbase fornecem logs detalhados que podem oferecer insights sobre o que pode estar errado. Comece sempre verificando esses registros.
    2. Usar ferramentas de depuração: Baseado em navegador Ferramentas de depuração de SAML pode capturar solicitações e respostas SAML, facilitando a identificação de problemas.
    3. Teste com um único usuário: Antes de implementar qualquer alteração em todos os usuários, teste os processos de SSO SAML com uma única conta de usuário conhecida para minimizar o impacto.
    4. Verifique o SAMLRequest: também é importante testar o Solicitação SAML que o Couchbase envia para o provedor de identidade (IdP). Isso garante que a solicitação inicial de autenticação seja formatada corretamente e inclua todas as informações necessárias.

      O que verificar na mensagem SAML:

        • Emissor: The <saml:Issuer> deve corresponder ao ID da entidade do Couchbase. Isso confirma que a solicitação está vindo do SP esperado.
        • AssertionConsumerServiceURL: Esse atributo especifica para onde o IdP deve enviar a asserção SAML após a autenticação bem-sucedida. Certifique-se de que ele corresponda ao URL do Assertion Consumer Service (ACS) que você configurou no provedor de identidade e no Couchbase.
        • NameIDPolicy: O <samlp:NameIDPolicy> especifica o formato do NameID a ser retornado. Isso deve estar alinhado com o que você configurou no seu provedor de identidade e no Couchbase.
        • ID e IssueInstant: o atributo ID é um identificador exclusivo da solicitação, e IssueInstant especifica quando a solicitação foi emitida. Esses atributos são usados com frequência para registro e depuração.
    5. Verificar o SAMLResponse: Declaração SAML que você recebe em uma solicitação HTTP POST após a autenticação bem-sucedida.

      O que verificar na mensagem SAML:

      • Emissor: O <saml:Issuer> deve corresponder ao definido pelo seu IDP. Isso confirma que a afirmação está vindo do IdP esperado.
      • NomeID: O <saml:NameID> contém o nome de usuário ou o e-mail do usuário autenticado. Verifique se isso corresponde ao que você espera e ao que foi configurado em seu IdP.
      • Condições: O <saml:Conditions> especifica a janela de tempo em que a asserção é válida. Certifique-se de que os atributos NotBefore e NotOnOrAfter estejam definidos corretamente.
      • Declaração de atributo: O <saml:AttributeStatement> contém os atributos do usuário. Verifique se eles correspondem aos atributos que você configurou em seu provedor de identidade e no Couchbase.
      • e-mail: Verifique se o atributo email foi passado corretamente e se corresponde ao email do usuário.
      • Assinatura: Embora não seja mostrada na amostra, uma asserção SAML válida também deve incluir uma assinatura digital que o Couchbase possa usar para verificar a integridade da mensagem. Certifique-se de que o Couchbase esteja configurado para verificar essa assinatura em relação ao certificado público fornecido pelo seu provedor de identidade.

Problemas e soluções comuns

    1. Resposta SAML inválida ou Asserção
      • Sintoma: os usuários não conseguem fazer login, e uma mensagem de erro indica uma resposta ou asserção SAML inválida.
      • Solução: Verifique se a resposta SAML está assinada corretamente e se o certificado usado para verificação está atualizado nos lados do IdP e do SP.
    2. Incompatibilidade de atributos
      • Sintoma: Os atributos do usuário não são exibidos ou usados corretamente no Couchbase.
      • Solução: Verifique novamente as configurações de mapeamento de atributos em seu IdP e no Couchbase. Certifique-se de que os nomes dos atributos sejam exatamente iguais.
    3. O nome de usuário não pode ser extraído
      • Sintoma: Não é possível extrair o nome de usuário da asserção SAML
      • Solução: Certifique-se de que o formato de nome do atributo SAML seja Unspecified para o atributo Username
    4. Usuário não encontrado
      • Sintoma: Acesso negado para o usuário: Insufficient Permissions (Permissões insuficientes)
      • Solução: Crie um usuário externo no Couchbase, pois o usuário que está tentando fazer login por meio do IdP não pode ser encontrado no sistema Couchbase.
    5. Variação de tempo
      • Sintoma: As asserções SAML são consideradas inválidas, embora todo o resto pareça estar configurado corretamente.
      • Solução: Certifique-se de que os relógios do sistema nos servidores IdP e SP estejam sincronizados. A variação de tempo pode invalidar afirmações perfeitamente válidas.
    6. Problemas de logout
      • Sintoma: os usuários não são desconectados do SP ou do IdP durante uma operação de logout único (SLO).
      • Solução: Verifique se os URLs do serviço de logout único (SLS) estão configurados corretamente no IdP e no Couchbase. Além disso, verifique se ambos estão configurados para usar HTTP POST.

Em resumo, compreender as complexidades do SAML é essencial para quem deseja reforçar a segurança da interface do usuário do Couchbase Server. Este artigo serve como um guia básico, examinando os elementos principais do SAML e as nuances técnicas da elaboração e interpretação de mensagens SAML. Os próximos artigos se concentrarão especificamente nos aspectos práticos da integração do Couchbase Server com vários provedores de identidade, incluindo um guia detalhado sobre a integração com o Okta, Microsoft Entra ID (Azure AD).

Saiba mais sobre o Couchbase

Autor

A ordem da postagem em relação a outras postagens. Istvan Orban

Istvan Orban é o principal gerente de produtos da Couchbase e mora no Reino Unido. Istvan tem uma ampla experiência como engenheiro de software de pilha completa, líder de equipe e engenheiro de Devops. Seu foco principal é a segurança e o Single Sign On. Istvan liderou vários projetos de grande escala em seus 20 anos de carreira profissional.

Posição vertical a partir do topo para iniciar o corte como uma porcentagem da altura da imagem.