Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Integra Rocket.Chat con i domini di Identity per Single Sign-On
Introduzione
Rocket.Chat è una piattaforma di comunicazione open source sicura e altamente personalizzabile per le organizzazioni con sofisticate preoccupazioni in materia di sicurezza e privacy. Rocket.Chat fornisce il pieno controllo sui dati e sulle conversazioni degli utenti. La piattaforma supporta applicazioni native, una perfetta integrazione con applicazioni di terze parti, collaborazione multicanale, Single Sign-On (SSO) basato su SAML (Security Assertion Markup Language) e controllo della configurazione utilizzando le API.
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) è un contenitore per la gestione di utenti e ruoli, la federazione e il provisioning degli utenti, l'integrazione sicura delle applicazioni tramite la configurazione Oracle SSO e l'amministrazione dei provider di identità (IdP) basata su SAML/OAuth.
In questa esercitazione, automatizzeremo l'installazione di Rocket.Chat e integreremo IAM OCI come IdP per SSO.
Obiettivi
-
Usare lo stack basato su Terraform per creare le risorse seguenti.
- Chiave protetta per keystore e modulo di sicurezza hardware (HSM).
- Certificati e autorità di certificazione (CA, Certificate Authority).
- Un'istanza di OCI Compute per ospitare Rocket.Chat.
- Un load balancer OCI per accedere a Rocket.Chat in modo sicuro.
-
Distribuire automaticamente Rocket.Chat nell'istanza di computazione e aggiungere un load balancer creato al suo posto.
-
Impostare Rocket.Chat e creare un IdP basato su SAML per IAM OCI.
-
Eseguire il test del flusso SSO tra IAM OCI e Rocket.Chat.
Prerequisiti
-
Sottoscrizione OCI attiva.
-
Dominio di Identity e un account amministratore.
-
Familiarità con IAM e Terraform OCI.
-
Una VCN esistente e una subnet pubblica.
-
Lista di sicurezza con le seguenti porte aperte per il traffico in entrata.
Type Porta di origine CIDR di origine Porta di destinazione Protocollo Descrizione Entrata Tutti 0.0.0.0/0 22 TCP SSH Entrata Tutti 0.0.0.0/0 3.000 TCP Per il server Rocket.Chat Entrata Tutti 0.0.0.0/0 443 TCP Porta HTTPS standard Entrata Tutti 0.0.0.0/0 80 TCP Traffico TCP per le porte: 80
Task 1: distribuire uno stack per installare Rocket.Chat e creare un'applicazione SAML utilizzando uno stack Terraform automatizzato
Rocket.Chat può essere distribuito utilizzando metodi diversi. Per questa esercitazione è stata utilizzata l'opzione Distribuisci con Docker e composizione Docker. Per ulteriori informazioni, vedere Distribuire Rocket.Chat.
Per semplificare l'installazione di Rocket.Chat, abbiamo creato uno stack di automazione Terraform. Questo stack:
- Creare una casella Linux host con forma VM.Standard.E2.1.
- Installare Rocket.Chat su di esso.
- Creare una chiave keystore, una chiave protetta HSM, un'autorità di certificazione e un certificato per la comunicazione SSL (Secure Sockets Layer) su Internet.
- Distribuire un load balancer e configurarlo per l'accesso a Rocket.Chat tramite SSL.
- Creare un'applicazione SAML in un dominio di Identity esistente.
Nota: prima di eseguire lo stack collegato, assicurarsi di controllare i limiti del servizio per le risorse da creare. Per ulteriori informazioni, vedere IAM con limiti dei domini di Identity.
-
Scaricare l'intero stack Rocket.Chat da qui: Full_Stack_Rocket.Chat.zip.
Una volta scaricato il file zip dell'intero stack Rocket.Chat, decomprimere il file e sostituire il contenuto del file
-rchat.pem
con il rispettivo contenuto della chiave privata.Nota: utilizzare OCI Resource Manager dalla console OCI per distribuire lo stack in modo da evitare errori.
-
Eseguire il login a OCI Console come utente amministratore, passare a Servizi sviluppatore e in Resource Manager fare clic su Stack.
-
Selezionare il compartimento e fare clic su Crea stack. Nella sezione Configurazioni stack selezionare il file zip dello stack scaricato nel Passo 1 per distribuire lo stack e fare clic su Successivo.
-
Nella pagina Configura variabili, immettere i dettagli richiesti per creare un'istanza di computazione e altre risorse, quindi fare clic su Successivo.
Nota: per creare un'istanza di computazione e un load balancer, sarà necessaria una VCN esistente con connettività pubblica.
-
Nella pagina Rivedi, rivedere i dettagli forniti e fare clic su Crea.
-
Nella pagina Dettagli stack fare clic su Piano. Si dovrebbe ottenere un output Operazione riuscita.
-
Nella pagina Dettagli stack fare clic su Applica. Si dovrebbe ottenere un output Operazione riuscita.
-
Dopo l'esecuzione riuscita dello stack, puoi trovare il load balancer collegato all'istanza di computazione che ospita Rocket.Chat e un'applicazione SAML nel dominio IAM.
Nota: l'esecuzione dello stack potrebbe richiedere circa 40 minuti. Attendere che il job abbia esito positivo.
Task 2: impostare l'account di amministrazione Rocket.Chat
In questo task, il file hosts verrà aggiornato nel sistema locale e le risorse distribuite verranno quindi convalidate.
Per Windows: C:\Windows\System32\Drivers\etc\hosts
.
Per Linux: /etc/hosts
Public IP Address of Load Balancer your-domain-name.com
Accedere a Rocket.Chat all'indirizzo https://your-domain-name.com:443
e si verrà reindirizzati alla pagina di impostazione.
Nota: mantenere protetta la password amministratore. Questa operazione sarà necessaria durante la creazione di un SAML IdP in Rocket.Chat.
Task 3: creare un SAML IdP in Rocket.Chat per Single Sign-On
-
Eseguire il login all'istanza Rocket.Chat, andare all'area di lavoro e alle impostazioni.
-
Nella finestra Impostazioni, immettere SAML e fare clic su Apri.
-
Nella pagina Connessione, selezionare Abilita. Immettere i dettagli riportati di seguito e fare clic su Salva modifiche. Se viene richiesta la password amministratore, immettere la password.
-
Provider personalizzato: immettere
idcs
. -
Aggiorna punto di inserimento personalizzato: immettere il punto di inserimento personalizzato. Ad esempio,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso
. -
URL di reindirizzamento SLO IDP: immettere l'URL di reindirizzamento SLO IdP. Ad esempio,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
. -
Emittente personalizzato: immettere l'emittente personalizzato. Ad esempio,
https://your-domain-name.com/_saml/metadata/idcs
. -
Certificato personalizzato: scaricare il certificato di firma dall'applicazione SAML creata utilizzando lo stack e copiare il contenuto.
Nota: escludere le righe BEGIN CERTIFICATE E END CERTIFICATE.
-
Contenuto dei certificati pubblici: copia l'intero contenuto del certificato.
-
Tipo di convalida della firma: selezionare Convalida firma asserzione.
Nota: utilizzare lo stesso valore statico del provider personalizzato, altrimenti l'SSO potrebbe non riuscire poiché viene fatto riferimento all'applicazione SAML creata nel task 1.
-
-
Nella pagina Generale, nella sezione Interfaccia utente, aggiornare il testo del pulsante e altri dettagli se è necessario modificarlo e fare clic su Salva modifiche.
Task 4: eseguire il test dell'SSO per Rocket.Chat utilizzando IAM OCI
-
Aprire il browser e immettere l'URL per Rocket.Chat
https://demo.rocketchat.com:443
. -
Viene visualizzata la pagina Connetti domini di Identity IAM OCI. Utilizzare il nome utente e la password dell'utente creato in precedenza.
-
Al termine dell'autenticazione, l'utente viene reindirizzato alla home page Rocket.Chat.
Nota: è necessario creare un utente comune sia in IAM OCI che in Rocket.Chat con lo stesso indirizzo di posta elettronica.
Scenari comuni di risoluzione dei problemi per SSO Rocket.Chat con IAM OCI
-
Assicurarsi di aver abilitato l'opzione Allow cross-origin resource sharing (CORS) in Domains, dominio, Settings e Session settings.
-
Se il caricamento dell'istanza Rocket.Chat richiede tempo, è possibile provare a eseguire l'accesso SSH all'istanza e riavviare la composizione Docker con i comandi seguenti.
docker compose down docker compose up -d
Collegamenti correlati
Conferme
- Autore - Chetan Soni (Cloud Solutions Engineer)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Integrate Rocket.Chat with Identity Domains for Single Sign-On
G12057-03
August 2024