Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
Rocket.Chat für Single Sign-On in Identitätsdomains integrieren
Einführung
Rocket.Chat ist eine sichere und hochgradig anpassbare Open-Source-Kommunikationsplattform für Unternehmen mit ausgefeilten Sicherheits- und Datenschutzbedenken. Rocket.Chat bietet vollständige Kontrolle über Benutzerdaten und Unterhaltungen. Die Plattform unterstützt native Apps, nahtlose Integration mit Anwendungen von Drittanbietern, kanalübergreifende Zusammenarbeit, Single Sign-On (SSO) auf Basis von Security Assertion Markup Language (SAML) und Konfigurationskontrolle mit APIs.
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) ist ein Container für die Verwaltung von Benutzern und Rollen, die Föderation und das Provisioning von Benutzern, die Sicherung der Anwendungsintegration durch Oracle SSO-Konfiguration und die Administration von SAML/OAuth-basierten Identitätsprovider (IdP).
In diesem Tutorial automatisieren wir die Installation von Rocket.Chat und integrieren OCI IAM als IdP für SSO.
Ziele
-
Verwenden Sie einen Terraform-basierten Stack, um die folgenden Ressourcen zu erstellen.
- Mit Keystore und Hardware Security Module (HSM) geschützter Schlüssel.
- Zertifikate und Certificate Authoritys (CA).
- Eine OCI Compute-Instanz zum Hosten von Rocket.Chat.
- Ein OCI Load Balancer, um sicher auf Rocket.Chat zuzugreifen.
-
Stellen Sie Rocket.Chat automatisch auf der Compute-Instanz bereit, und fügen Sie darüber einen erstellten Load Balancer hinzu.
-
Richten Sie Rocket.Chat ein, und erstellen Sie eine SAML-basierte IdP für OCI IAM.
-
Testen Sie den SSO-Ablauf zwischen OCI IAM und Rocket.Chat.
Voraussetzungen
-
Ein aktives OCI-Abonnement.
-
Identitätsdomain und ein Admin-Account darauf.
-
Mit OCI IAM und Terraform vertraut.
-
Ein vorhandenes VCN und ein öffentliches Subnetz.
-
Sicherheitsliste mit den folgenden Ports für Ingress-Traffic geöffnet.
Typ Quellport Quell-CIDR Zielport Protokoll Beschreibung Ingress Alle 0.0.0.0/0 22 TCP SSH Ingress Alle 0.0.0.0/0 3000 TCP Für Rocket.Chat Server Ingress Alle 0.0.0.0/0 443 TCP Standard-HTTPS-Port Ingress Alle 0.0.0.0/0 80 TCP TCP-Traffic für folgende Ports: 80
Aufgabe 1: Stack für die Installation von Rocket.Chat bereitstellen und SAML-Anwendung mit einem automatisierten Terraform-Stack erstellen
Rocket.Chat kann mit verschiedenen Methoden bereitgestellt werden. Für dieses Tutorial wurde die Option Mit Docker und Docker Compose bereitstellen verwendet. Weitere Informationen finden Sie unter Bereitstellen von Rocket.Chat.
Um die Installation von Rocket.Chat zu vereinfachen, haben wir einen Terraform-Automatisierungsstack erstellt. Dieser Stapel wird:
- Erstellen Sie eine Linux-Hostbox mit der Ausprägung VM.Standard.E2.1.
- Installieren Sie Rocket.Chat darauf.
- Erstellen Sie einen Keystore, einen HSM-geschützten Schlüssel, eine Certificate Authority und ein Zertifikat für die SSL-(Secure Sockets Layer-)Kommunikation über das Internet.
- Stellen Sie einen Load Balancer bereit, und konfigurieren Sie ihn für den Zugriff auf Rocket.Chat über SSL.
- Erstellen Sie eine SAML-Anwendung unter einer vorhandenen Identitätsdomain.
Hinweis: Prüfen Sie die Servicelimits für die zu erstellenden Ressourcen, bevor Sie den verknüpften Stack ausführen. Weitere Informationen finden Sie unter IAM mit Identitätsdomainlimits.
-
Laden Sie den vollständigen Stack Rocket.Chat von hier herunter: Full_Stack_Rocket.Chat.zip.
Nachdem die ZIP-Datei mit dem vollständigen Stack Rocket.Chat heruntergeladen wurde, dekomprimieren Sie die Datei, und ersetzen Sie den Inhalt der Datei
-rchat.pem
durch den jeweiligen Inhalt des Private Keys.Hinweis: Mit OCI Resource Manager in der OCI-Konsole können Sie den Stack bereitstellen, um Fehler zu vermeiden.
-
Melden Sie sich bei der OCI-Konsole als Admin-Benutzer an, navigieren Sie zu Entwicklerservices, und klicken Sie unter Resource Manager auf Stacks.
-
Wählen Sie das Compartment aus, und klicken Sie auf Stack erstellen. Wählen Sie im Abschnitt Stackkonfigurationen die in Schritt 1 heruntergeladene Stack-ZIP-Datei aus, um den Stack bereitzustellen, und klicken Sie auf Weiter.
-
Geben Sie auf der Seite Variablen konfigurieren die erforderlichen Details zum Erstellen einer Compute-Instanz und anderer Ressourcen ein, und klicken Sie auf Weiter.
Hinweis: Um Compute-Instanz und Load Balancer zu erstellen, benötigen Sie ein vorhandenes VCN mit öffentlicher Konnektivität.
-
Prüfen Sie auf der Seite Prüfen die angegebenen Details, und klicken Sie auf Erstellen.
-
Klicken Sie auf der Seite Stackdetails auf Planen. Die Ausgabe Erfolgreich wird angezeigt.
-
Klicken Sie auf der Seite Stackdetails auf Anwenden. Die Ausgabe Erfolgreich wird angezeigt.
-
Nach erfolgreicher Ausführung des Stacks finden Sie Load Balancer, die an die Compute-Instanz angehängt sind, die Rocket.Chat hostet, und eine SAML-Anwendung in Ihrer IAM-Domain.
Hinweis: Die Ausführung des Stacks kann etwa 40 Minuten dauern. Warten Sie, bis der Job erfolgreich ist.
Aufgabe 2: Admin-Account Rocket.Chat einrichten
In dieser Aufgabe aktualisieren wir die hosts-Datei auf dem lokalen System und validieren dann die bereitgestellten Ressourcen.
Für Windows: C:\Windows\System32\Drivers\etc\hosts
.
Für Linux: /etc/hosts
Public IP Address of Load Balancer your-domain-name.com
Greifen Sie unter https://your-domain-name.com:443
auf Rocket.Chat zu, und Sie werden zur Setupseite umgeleitet.
Hinweis: Halten Sie das Admin-Kennwort sicher. Dies wird beim Erstellen einer SAML-IdP in Rocket.Chat benötigt.
Aufgabe 3: Erstellen Sie eine SAML IdP in Rocket.Chat für Single Sign-On
-
Melden Sie sich bei der Rocket.Chat-Instanz an, und navigieren Sie zu Workspace und Einstellungen.
-
Geben Sie im Fenster Einstellungen die Option SAML ein, und klicken Sie auf Öffnen.
-
Wählen Sie auf der Seite Verbindung die Option Aktivieren aus. Geben Sie die folgenden Details ein, und klicken Sie auf Änderungen speichern. Geben Sie das Kennwort ein, wenn Sie zur Eingabe des Admin-Kennworts aufgefordert werden.
-
Benutzerdefinierter Provider: Geben Sie
idcs
ein. -
Benutzerdefinierten Einstiegspunkt aktualisieren: Geben Sie Ihren benutzerdefinierten Einstiegspunkt ein. Beispiel:
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso
. -
IDP SLO-Umleitungs-URL: Geben Sie Ihre SLO-Umleitungs-URL für IdP ein. Beispiel:
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
. -
Benutzerdefinierter Aussteller: Geben Sie einen benutzerdefinierten Aussteller ein. Beispiel:
https://your-domain-name.com/_saml/metadata/idcs
. -
Benutzerdefiniertes Zertifikat: Laden Sie das Signaturzertifikat aus der SAML-Anwendung herunter, die mit dem Stack erstellt wurde, und kopieren Sie den Inhalt.
Hinweis: Schließen Sie die Positionen ZERTIFIZIEREN UND ZERTIFIZIEREN aus.
-
Inhalt öffentlicher Zertifikate: Kopieren Sie den gesamten Inhalt des Zertifikats.
-
Signaturvalidierungstyp: Wählen Sie Assertion-Signatur validieren aus.
Hinweis: Verwenden Sie denselben statischen Wert für Benutzerdefinierter Provider. Andernfalls verläuft das SSO möglicherweise nicht erfolgreich, da es in der in Aufgabe 1 erstellten SAML-Anwendung referenziert wird.
-
-
Aktualisieren Sie auf der Seite Allgemein im Abschnitt Benutzeroberfläche den Schaltflächentext und andere Details, wenn Sie ihn ändern müssen, und klicken Sie auf Änderungen speichern.
Aufgabe 4: SSO für Rocket.Chat mit OCI IAM testen
-
Öffnen Sie Ihren Browser, und geben Sie die URL für Rocket.Chat
https://demo.rocketchat.com:443
ein. -
Die Anmeldeseite für OCI-IAM-Identitätsdomains wird angezeigt. Verwenden Sie den Benutzernamen und das Kennwort des zuvor erstellten Benutzers.
-
Nach erfolgreicher Authentifizierung wird der Benutzer zur Homepage Rocket.Chat umgeleitet.
Hinweis: Sie sollten einen allgemeinen Benutzer sowohl in OCI IAM als auch in Rocket.Chat mit derselben E-Mail-Adresse erstellen lassen.
Häufige Fehlerbehebungsszenarios für Rocket.Chat SSO mit OCI IAM
-
Stellen Sie sicher, dass unter Domains, Ihrer Domain, Einstellungen und Sessioneinstellungen die Option Cross-Origin Resource Sharing (CORS) zulassen aktiviert ist.
-
Wenn das Laden der Rocket.Chat-Instanz Zeit in Anspruch nimmt, können Sie mit den folgenden Befehlen versuchen, eine SSH-Verbindung zur Instanz herzustellen und den Docker-Compose neu zu starten.
docker compose down docker compose up -d
Verwandte Links
Danksagungen
- Autor - Chetan Soni (Cloud Solutions Engineer)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Integrate Rocket.Chat with Identity Domains for Single Sign-On
G12053-03
August 2024