Na era do rápido avanço da tecnologia em nuvem, onde a infraestrutura como serviço (IaaS) e a plataforma como serviço (PaaS) são essenciais para vários projetos, a demanda por integração perfeita de diversos serviços em nuvem é inegável. A Microsoft, um importante player neste cenário, investiu um tempo considerável na criação do serviço Microsoft Entra ID de fácil utilização. No entanto, apesar das instruções meticulosamente definidas pelos fornecedores, os especialistas muitas vezes encontram problemas ao configurar integrações com plataformas como Slack, Salesforce ou Datadog. A documentação é insuficiente para fornecer respostas a perguntas específicas.
A equipe do Social Discovery Group também enfrentou esses desafios e, neste artigo, ofereceremos insights sobre como navegar e resolvê-los.
Em seu portfólio de mais de 50 plataformas de namoro, o Social Discovery Group utiliza diversas tecnologias e serviços em nuvem para garantir sua segurança e confiabilidade. Temos vasta experiência na integração e configuração de diferentes sistemas, incluindo conexões peer-to-peer entre diversas nuvens.
O Microsoft Entra ID é uma solução em nuvem para gerenciamento de identidade e acesso, servindo como serviço de diretório e autenticação operando na nuvem. O Microsoft Entra ID oferece serviços de autenticação e autorização para vários serviços Microsoft e não Microsoft. Neste artigo, exploraremos a integração dos seguintes sistemas em nuvem: Slack, MongoAtlas, ElasticCloud, Salesforce e Datadog.
Devido à ausência de um guia preciso, decidimos criar o nosso próprio, detalhando todas as dores de cabeça que surgiram ao longo do caminho. Então, vamos navegar até a seção “Aplicativo Corporativo” no Azure.
É necessário criar uma nova aplicação corporativa (isso pode ser feito em poucos cliques). Em seguida, acesse a aplicação que acabamos de criar e configure o Single Sign-On – SAML. Faça alterações de cima para baixo:
Crie uma função de “Membro” (ou escolha outro nome). A seguir, crie um usuário de teste no Microsoft Entra ID e adicione-o ao nosso aplicativo. Em seguida, vá para o Admin Center no Slack. Siga as etapas: Slack Admin - Autenticação - Configuração SAML - Configurar
A próxima etapa é configurar o SAML. Recomendamos prestar atenção à configuração "Nome para exibição". Além disso, nas configurações, desmarque "Atualizar perfil no login" e não permita a alteração do endereço de e-mail e do nome de exibição.
Também existe a opção de personalizar o texto do botão de login e proibir os usuários de fazer login usando qualquer outro método, exceto SSO. Depois disso, você poderá entrar no Slack usando sua conta da Microsoft. Se forem necessários campos ou configurações adicionais, isso poderá ser feito por meio do Azure AD Provision.
Para adicionar um novo atributo, acesse Atributos do usuário e selecione Adicionar novo mapeamento. Escolha o atributo de origem desejado que deseja exibir no Slack e associe-o ao atributo correspondente do Slack.
Depois de adicionar os atributos necessários e salvar as configurações, prossiga para o Provision on Demand para testar a funcionalidade. Após um resultado positivo, você receberá o seguinte:
Em seguida, você precisa ir ao Slack e especificar quais atributos exibir no perfil de usuário completo e onde recuperá-los. Acesse Perfis e escolha as informações a serem exibidas e de onde elas serão extraídas. Neste caso, o SCIM corresponde ao Azure AD.
A seguir, recomendamos adicionar os usuários necessários do Active Directory ao Slack para experimentar a integração perfeita. Também queremos chamar a atenção para um problema encontrado ao remover usuários: se um usuário for excluído manualmente do Slack (por meio do centro de administração do Slack), um erro persistirá, indicando que o usuário não pode ser transferido para o Slack devido a permissões insuficientes. Isso ocorre porque o Entra ID retém informações sobre os usuários dentro do escopo e atribui a eles um ID exclusivo. Excluir e adicionar novamente um usuário no Slack é percebido como um novo usuário pelo Entra ID, levando a problemas de permissão durante as atualizações.
Confira a documentação aqui .
Para o MongoAtlas, o processo segue um caminho semelhante. Você também precisará criar um novo aplicativo corporativo; para facilitar, digite "MongoDB Atlas — SSO" no campo de pesquisa. Instruções mais detalhadas podem ser encontradas aqui.
Em seguida, prossiga para as configurações de login único, onde você precisará inserir o seguinte:
No campo de texto "Identificador", insira o URL usando o seguinte modelo: https://www.okta.com/saml2/service-provider/<Customer_Unique>
No campo de texto "URL de resposta", insira o URL usando o modelo:
https://auth.mongodb.com/sso/saml2/<Customer_Unique>
No campo de texto "URL de login", insira a URL usando o modelo: https://cloud.mongodb.com/sso/<Customer_Unique>
Recomendamos prestar atenção na seção Atributos e configurá-la conforme mostrado na imagem abaixo (foi fundamental adicionar "memberOf").
Em seguida, na página "Configurando o logon único com SAML", vá para a seção "Certificado de assinatura SAML" e encontre os metadados XML para federação. Selecione "Download" para baixar o certificado e salvá-lo localmente (Federation Metadata XML). Precisaremos dele mais tarde no MongoDB Atlas.
Na seção "Configurando o MongoDB Atlas — SSO", copie os respectivos URLs. Em seguida, navegue até MongoDB Atlas -> Organization -> Settings -> Federated Authentication Settings .
Comece adicionando o provedor de credenciais Microsoft Entra ID no Atlas. Insira os respectivos URLs mencionados na etapa anterior do portal da Microsoft (URI do emissor, URL de login, URL de logon único) , carregue o certificado de assinatura do provedor de identidade e defina as configurações restantes conforme mostrado na captura de tela abaixo .
Clique em “Avançar” e salve o arquivo de metadados localmente, pois você precisará carregá-lo posteriormente no Azure na página de configuração do Logon Único.
Em seguida, adicione, mapeie e valide o domínio, por exemplo, usando os registros TXT correspondentes gerados no MongoDB Atlas. Depois disso, vincule seu domínio ao provedor de credenciais e passe para a parte mais interessante: configuração de funções.
Criamos as seguintes funções como exemplo, cada uma com permissões específicas concedidas aos projetos. Em seguida, você precisa mapear essas funções para funções do Azure. Vá para "Funções do aplicativo" do seu aplicativo, crie e adicione funções com valores que correspondam exatamente aos nomes que você acabou de atribuir a essas funções no MongoAtlas.
Depois, adicione usuários ao aplicativo no Microsoft Entra ID Enterprise Application e atribua a eles as funções apropriadas. Ative "Sign in with Azure SSO" na seção Federation Management no MongoDB Atlas e verifique o correto funcionamento das configurações configuradas.
Consulte a documentação aqui para obter instruções mais detalhadas.
Vamos passar para a integração com o Elastic Cloud. Os passos fundamentais para a criação de uma aplicação no Enterprise Application Entra ID são semelhantes aos anteriores. Lá você pode encontrar informações sobre onde obter o Identificador ou URL de Logout. No entanto, encontramos um problema com atributos, por isso forneceremos uma captura de tela de nossa configuração de trabalho.
Criamos duas funções – um leitor e um superusuário.
Aqui, você pode criar quantas funções precisar. As configurações de função no Elasticsearch são definidas em Mapeamentos de funções e têm a seguinte aparência:
Agora vem a parte interessante. Duas coisas precisam ser feitas: adicionar a configuração de SSO do Azure para Kibana e Elasticsearch. Para conseguir isso, siga estas etapas:
Navegue até a seção de edição da implantação do Elasticsearch Cloud para atualizar a configuração do elasticsearch.yml. Adicione as seguintes linhas:
“ xpack:
security:
authc:
realms:
saml:
saml-azure-ad:
order: 2
attributes.principal: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
attributes.groups: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role"
attributes.name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
attributes.mail: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
idp.metadata.path: "APP Federation metadata URL"
idp.entity_id: "Azure Entra ID Identifier"
sp.entity_id: "Kibana endpoint"
sp.acs: "Kibana endpoint/api/security/v1/saml"
sp.logout: "Kibana endpoint/logout" “
Após adicionar e modificar os valores destacados em vermelho para corresponder à sua configuração, clique em “Salvar”. O Elastic Cloud validará todas as alterações e iniciará a atualização do cluster. Este processo pode demorar alguns minutos.
“ xpack.security.authc.providers:
saml.saml1:
order: 0
realm: saml-azure-ad
description: "Log in with Azure Entra ID"
basic.basic1:
order: 1 ”
Depois de concluir as duas etapas anteriores, outra opção de login deverá estar disponível na página de login do Kibana. Em seguida, prossiga adicionando usuários ao aplicativo no Microsoft Entra ID Enterprise Application e atribuindo-lhes as funções necessárias.
Consulte a documentação aqui para obter mais informações.
A integração com Salesforce foi um pouco mais complexa que as anteriores. As etapas iniciais são semelhantes, mas atenção deve ser dada à seção Provisionamento. Existem nuances em relação à especificação de credenciais de administrador sob as quais a sincronização da conta ocorrerá, e é necessário ativar o mapeamento de atributos.
Aqui está um exemplo de nossas configurações na captura de tela. Não encontramos nenhum problema significativo com os atributos, mas também forneceremos uma captura de tela daqueles que usamos.
No próprio Salesforce, não havia nuances específicas e prosseguimos com as etapas a seguir, conforme descrito neste guia .
Durante a integração com o Datadog, também encontramos alguns problemas. A documentação principal que nos orientou pode ser encontrada aqui . Para nuances de solução de problemas, consultamos este guia.
Tudo começou bem e, inicialmente, parecia que não haveria problemas. Como de costume, criamos um novo aplicativo empresarial no Microsoft Entra ID.
Na seção “Configurar Single Sign-On com SAML”, preste atenção ao local que você selecionou para sua conta Datadog. No nosso caso, foi a região da Europa.
Conforme mencionado anteriormente, para MongoAtlasDB, adicionamos o atributo adicional “memberOf” para mapeamento de funções.
Salve todas as configurações e baixe o XML de metadados da federação. Carregue este arquivo nas configurações SAML no Datadog. Aqui está um link conveniente para referência. Configurações SAML do Datadog (substitua "EU" pela zona de domínio apropriada se sua localização for diferente). Deve ser semelhante à imagem abaixo.
Nas configurações de Métodos de Login da organização, mantenha apenas o necessário (no meu caso, desativei o login por senha e o Google Authenticate). Adicione funções no Azure no registro do aplicativo para Microsoft Entra ID.
Aí vem a parte mais interessante. Navegue até Mapeamentos de grupos SAML -> Mapeamentos de funções no Datadog e adicione a chave, o valor e a função. Parece simples. Veja a imagem abaixo.
Mas não funciona e continua dando o erro "Não há AuthNMappings para este usuário".
Por um bom tempo, tentamos entender o que estávamos fazendo de errado, revisando toda a documentação, logs e páginas de solução de problemas. Infelizmente, não houve menção a isso em lugar nenhum. No final das contas a solução é simples: siga a configuração mostrada na imagem abaixo.
No campo CHAVE, insira a string: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
Depois de fazer isso, tudo começou a funcionar com sucesso.
"Esta é apenas uma pequena parte dos sistemas que integramos ao Microsoft Entra ID. Esperamos que os insights compartilhados aqui sirvam como um recurso útil, agilizando seus processos de integração e economizando um tempo valioso. Concluindo, as seguintes vantagens de usar o Microsoft Destacam-se o Entra ID: Single Sign-On, que não requer digitação da senha diversas vezes; não requer componentes adicionais; facilidade de configuração e administração; políticas de grupo e grupos; registro de dispositivos; e segurança de alto nível.