Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Integrar o Rocket.Chat com Domínios de Identidade para Sign-On Único
Introdução
Rocket.Chat é uma plataforma de comunicação de código aberto segura e altamente personalizável para organizações com preocupações sofisticadas de segurança e privacidade. O Rocket.Chat fornece controle total sobre dados e conversas do usuário. A plataforma suporta aplicativos nativos, integração perfeita com aplicativos de terceiros, colaboração entre canais, logon único (SSO) baseado em Security Assertion Markup Language (SAML) e controle de configuração usando APIs.
O Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) é um contêiner para gerenciamento de usuários e funções, federação e provisionamento de usuários, integração segura de aplicativos por meio da configuração do Oracle SSO e administração do Provedor de Identidades (IdP) baseada em SAML/OAuth.
Neste tutorial, automatizaremos a instalação do Rocket.Chat e integraremos o OCI IAM como seu IdP para SSO.
Objetivos
-
Use a pilha baseada no Terraform para criar os recursos a seguir.
- Chave protegida do Armazenamento de Chaves e do Módulo de Segurança de Hardware (HSM).
- Certificados e Autoridades de Certificação (CA).
- Uma instância do OCI Compute para hospedar Rocket.Chat.
- Um Balanceador de Carga do OCI para acessar Rocket.Chat com segurança.
-
Implante automaticamente o Rocket.Chat na instância de computação e adicione um balanceador de carga criado sobre ele.
-
Configure Rocket.Chat e crie um IdP baseado em SAML para o OCI IAM.
-
Teste o fluxo de SSO entre o OCI IAM e Rocket.Chat.
Pré-requisitos
-
Uma assinatura ativa do OCI.
-
Domínio de identidades e uma conta de administrador nele.
-
Familiarizado com OCI IAM e Terraform.
-
Uma VCN existente e uma sub-rede pública.
-
Lista de segurança com as portas a seguir abertas para tráfego de entrada.
Tipo Porta de Origem CIDR de Origem Porta de Destino Protocolo Descrição Entrada Tudo 0.0.0.0/0 22 TCP SSH Entrada Tudo 0.0.0.0/0 3.000 TCP Para o Servidor Rocket.Chat Entrada Tudo 0.0.0.0/0 443 TCP Porta HTTPS Padrão Entrada Tudo 0.0.0.0/0 80 TCP Tráfego TCP nas portas: 80
Tarefa 1: Implantar uma Pilha para Instalar o Rocket.Chat e Criar um Aplicativo SAML usando uma Pilha Automatizada do Terraform
Rocket.Chat pode ser implantado usando diferentes métodos. Para este tutorial, usamos a opção Implantar com Docker e Docker Compose. Para obter mais informações, consulte Disponibilizar Rocket.Chat.
Para facilitar a instalação do Rocket.Chat, criamos uma pilha de automação do Terraform. Esta pilha irá:
- Crie uma caixa Linux do host com a forma VM.Standard.E2.1.
- Instale Rocket.Chat nele.
- Crie um Armazenamento de Chaves, uma chave protegida por HSM, uma Autoridade de Certificação e um Certificado para comunicação SSL (Secure Sockets Layer) pela Internet.
- Implante um balanceador de carga e configure-o para acessar Rocket.Chat por SSL.
- Crie um aplicativo SAML em um domínio de identidades existente.
Observação: verifique os limites de serviço nos recursos a serem criados antes da execução da pilha vinculada. Para obter mais informações, consulte Serviço IAM com Limites de Domínios de Identidade
-
Faça download da pilha completa Rocket.Chat aqui: Full_Stack_Rocket.Chat.zip.
Depois que o arquivo zip de pilha completa Rocket.Chat for submetido a download, descompacte o arquivo e substitua o conteúdo do arquivo
-rchat.pem
pelo conteúdo respectivo da chave privada.Observação: Use o OCI Resource Manager na Console do OCI para implantar a pilha para evitar falhas.
-
Faça log-in na Console do OCI como usuário administrador, navegue até Developer Services e, em Resource Manager, clique em Pilhas.
-
Selecione o compartimento e clique em Criar Pilha. Na seção Configurações da pilha, selecione o arquivo zip da pilha baixado na Etapa 1 para implantar a pilha e clique em Próximo.
-
Na página Configurar variáveis, informe os detalhes necessários para criar uma instância de computação e outros recursos e clique em Próximo.
Observação: Para criar uma instância de computação e um balanceador de carga, você precisará de uma VCN existente com conectividade pública.
-
Na página Verificar, revise os detalhes fornecidos e clique em Criar.
-
Na página Detalhes da pilha, clique em Plano. Você deverá obter uma saída de Êxito.
-
Na página Detalhes da pilha, clique em Aplicar. Você deverá obter uma saída de Êxito.
-
Você pode encontrar o balanceador de carga anexado à instância de computação que hospeda Rocket.Chat e um aplicativo SAML no seu domínio do serviço IAM após a execução bem-sucedida da pilha.
Observação: A pilha pode levar cerca de 40 minutos para ser executada. Aguarde até que o job seja bem-sucedido.
Tarefa 2: Configurar conta de administração do Rocket.Chat
Nesta tarefa, atualizaremos o arquivo hosts em nosso sistema local e, em seguida, validaremos os recursos implantados.
Para Windows: C:\Windows\System32\Drivers\etc\hosts
.
Para Linux: /etc/hosts
Public IP Address of Load Balancer your-domain-name.com
Acesse Rocket.Chat em https://your-domain-name.com:443
e você será redirecionado para a página de configuração.
Observação: mantenha a senha de administrador protegida. Isso será necessário ao criar um SAML IdP em Rocket.Chat.
Tarefa 3: Criar um SAML IdP em Rocket.Chat para Sign-On Único
-
Faça log-in na sua instância Rocket.Chat, navegue até Workspace e Settings.
-
Na janela Definições, informe SAML e clique em Abrir.
-
Na página Conexão, selecione Ativar. Informe os detalhes a seguir e clique em Salvar alterações. Se for solicitada a senha de administrador, informe a senha.
-
Provedor Personalizado: Digite
idcs
. -
Atualizar Ponto de Entrada Personalizado: Informe seu ponto de entrada personalizado. Por exemplo,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso
. -
URL de Redirecionamento SLO IDP: Informe seu URL de redirecionamento SLO IdP. Por exemplo,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
. -
Emissor Personalizado: Informe o emissor personalizado. Por exemplo,
https://your-domain-name.com/_saml/metadata/idcs
. -
Certificado Personalizado: Faça download do Certificado de Assinatura no aplicativo SAML criado usando a pilha e copie o conteúdo.
Observação: exclua as linhas BEGIN CERTIFICATE E END CERTIFICATE.
-
Conteúdo do Certificado Público: Copie todo o conteúdo do certificado.
-
Tipo de Validação de Assinatura: Selecione Validar Assinatura de Asserção.
Observação: Use o mesmo valor estático do Provedor Personalizado; caso contrário, o SSO poderá falhar, pois ele é referenciado no aplicativo SAML criado na Tarefa 1.
-
-
Na página Geral, na seção Interface do Usuário, atualize o Texto do Botão e outros detalhes se precisar alterá-lo e clique em Salvar Alterações.
Tarefa 4: Testar o SSO para Rocket.Chat usando o OCI IAM
-
Abra o navegador e digite o URL para Rocket.Chat
https://demo.rocketchat.com:443
. -
A página de acesso aos domínios de identidades do OCI IAM é exibida. Use o Nome de Usuário e a Senha do usuário criado anteriormente.
-
Após a autenticação bem-sucedida, o usuário é redirecionado para a home page Rocket.Chat.
Observação: Você deve ter um usuário comum criado no OCI IAM e em Rocket.Chat com o mesmo endereço de e-mail.
Cenários comuns de solução de problemas para Rocket.Chat SSO com o OCI IAM
-
Certifique-se de ter a opção Permitir compartilhamento de recursos de origem cruzada (CORS) ativada em Domínios, seu domínio, Definições e Definições de sessão.
-
Se sua instância Rocket.Chat demorar para ser carregada, você poderá tentar usar SSH na instância e reiniciar a composição do Docker com os comandos a seguir.
docker compose down docker compose up -d
Links Relacionados
Agradecimentos
- Autor - Chetan Soni (Engenheiro de Soluções em Nuvem)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Integrate Rocket.Chat with Identity Domains for Single Sign-On
G12060-03
August 2024