Startseite
» Gewusst wie
»
Verbinden Sie ownCloud Infinite Scale mit Keycloak über OIDC.
Verbinden Sie ownCloud Infinite Scale mit Keycloak über OIDC.
Häufig gelangen Nutzer zur Keycloak-Anmeldeseite, authentifizieren sich und landen dann wieder auf der ownCloud Infinite Scale-Anmeldeseite – oder erhalten die Fehlermeldung „Unbekannter Benutzer“. Die üblichen Ursachen sind ein nicht übereinstimmender Realm-Aussteller, ein Webclient, der aus einer anderen Beispielversion kopiert wurde, oder ein Identitätsanspruch, der nicht mit einem oCIS-Konto übereinstimmt. Konfigurieren Sie Keycloak als externen OpenID Connect-Anbieter (OIDC) von oCIS, gleichen Sie diese drei Werte an und überprüfen Sie, ob Browser und Clients den Anbieter über HTTPS erreichen können.
Diese Anleitung verwendet fiktive Hosts cloud.example.comfür oCIS und sso.example.comKeycloak. Die Konfiguration basiert auf der ownCloud Infinite Scale 8.2-Dokumentation; vergleichen Sie die Namen mit der Dokumentation Ihrer installierten Version, bevor Sie sie anwenden. Diese Anleitung gilt für Infinite Scale (oCIS), nicht für ownCloud Server 10.
1. Überprüfen Sie den Realm und den Discovery-Endpunkt.
Ein Identitätsanbieter (IdP) authentifiziert Benutzer für einen anderen Dienst. OpenID Connect ist das Anmeldeprotokoll, das es oCIS ermöglicht, den Anmelde- und Identitätsinformationen von Keycloak zu vertrauen. Ein Realm ist ein separater Bereich von Benutzern, Clients und Einstellungen in Keycloak. Wählen Sie den Realm aus, der oCIS bedienen soll, und ermitteln Sie anschließend dessen Aussteller-URL: Für den Beispiel-Realm ocislautet diese https://sso.example.com/realms/ocis: .
Öffnen Sie oCIS vor der Bearbeitung https://sso.example.com/realms/ocis/.well-known/openid-configurationin einem Browser. Dieses OpenID Connect-Discovery-Dokument beschreibt die Endpunkte des Anbieters. Stellen Sie sicher, dass der issuerWert exakt mit der Realm-URL übereinstimmt, einschließlich Schema, Host, Groß-/Kleinschreibung und Pfad. Der Aussteller darf nicht die Administrationsseite oder die längere Discovery-URL sein. Das TLS-Zertifikat des Anbieters muss von den Browsern der Benutzer und vom oCIS-Server/Container als vertrauenswürdig eingestuft werden.
Das Discovery-Dokument sollte den exakten Realm Issuer angeben, der in oCIS konfiguriert ist.
Lädt die Discovery-URL nicht, beheben Sie zunächst DNS-, Reverse-Proxy-, Firewall- oder Zertifikatsprobleme. Eine erfolgreiche Browserantwort allein beweist nicht, dass der oCIS-Container Keycloak erreichen kann; prüfen Sie daher auch den Netzwerkzugriff aus dem Bereitstellungsnetzwerk des Servers. Die OpenID Connect Discovery-Regeln erfordern, dass der zurückgegebene Aussteller denselben Provider identifiziert. Siehe die OpenID Connect Discovery-Spezifikation .
2. Ordnen Sie den Keycloak-Client der oCIS-Webanwendung zu.
Verwenden Sie das bereitgestellte ownCloud Keycloak-Bereitstellungsbeispiel als Ausgangspunkt und passen Sie dessen Realm-Datei an Ihre oCIS-Version an. Verwenden Sie keine unterschiedlichen Versionen: Das aktuelle Compose-Beispiel verwendet die Web-Client-ID web, während ältere Setup-Hinweise die Client-ID angeben ocis-web. Keycloak und oCIS müssen dieselbe Client-ID verwenden.
Öffnen Sie in Keycloak den ausgewählten Realm und Webclient. Passen Sie den Anmeldevorgang und die Client-ID an das ownCloud-Beispiel an. Legen Sie gültige Redirect-URIs für die exakten Callback-Adressen fest, die für diesen Realm erforderlich sind, und verwenden Sie dabei den öffentlichen HTTPS-Host. Konfigurieren Sie die Web-Ursprünge nur gemäß der Vorlage. Der unten stehende Platzhalter dient lediglich der Veranschaulichung und ist keine Empfehlung für den Produktiveinsatz: Zu allgemeine Redirect-Muster können zu unerwünschten Zielen führen. Die Bezeichnungen variieren je nach Keycloak-Version.
Verwenden Sie die Redirect-URI und die Client-ID aus der Realm-Vorlage, die zu Ihrer oCIS-Version passt; die angezeigten Werte sind Beispiele.
Halten Sie den öffentlichen Hostnamen von Keycloak stabil. Wenn die TLS-Verschlüsselung an einem Reverse-Proxy endet, konfigurieren Sie dessen öffentlichen Hostnamen und die vertrauenswürdigen Proxy-Header, da Weiterleitungen sonst möglicherweise das falsche Schema oder den falschen Host verwenden. Beachten Sie die Hinweise zum Keycloak-Reverse-Proxy . Ersetzen Sie die Demo-Administratoranmeldeinformationen, bevor Sie Keycloak veröffentlichen.
3. Richten Sie oCIS auf denselben Aussteller und Kunden aus.
Fügen Sie diese Variablen in Ihrer Bereitstellungskonfiguration zum oCIS-Dienst hinzu und behalten Sie dabei die übrigen Einstellungen und Geheimnisse bei. Das Beispiel verwendet fiktive URLs und die aktuelle Beispiel-Client-ID:
OCIS_URLDies ist die öffentliche oCIS-Adresse; Aussteller- und Client-ID müssen exakt mit Keycloak übereinstimmen. Die Umschreibung ermöglicht den Discovery-Pfad, der von Desktop-, Android- und iOS-Clients verwendet wird. Das Ausschließen idpdeaktiviert den integrierten Provider in Umgebungen mit externem IdP; lassen Sie ihn weg, wenn Ihre Konfiguration diesen Dienst bewusst nutzt.
Diese oCIS-Einstellungen verweisen auf Keycloak für die Authentifizierung und leiten die OIDC-Erkennung an den externen Anbieter weiter.
Wenden Sie die Änderungen im Rahmen des normalen Neustartprozesses Ihrer Bereitstellung an. Führen Sie mit Docker Compose docker compose up -dim Compose-Verzeichnis den Befehl aus, um die geänderten Dienste neu zu erstellen, und überprüfen Sie anschließend die oCIS-Protokolle. Verwenden Sie in der Produktion vertrauenswürdige TLS-Zertifikate. Das ownCloud-Beispiel kennzeichnet INSECURE=trueeine Option für ein lokales selbstsigniertes Zertifikat; entfernen Sie diese oder setzen Sie sie auf einem Server mit Internetzugang auf „false“. ownCloud rät ebenfalls von der Verwendung PROXY_OIDC_INSECUREin der Produktion ab.
4. Entscheiden Sie, wie oCIS Benutzer identifizieren soll.
Ein Claim ist ein OIDC-Identitätsfeld, z. B. subBenutzername , E-Mail-Adresse preferred_usernameoder emailBenutzer-ID. oCIS verwendet ihn, um ein Konto zu finden. Für bestehende Benutzer ordnen Sie ihn dem Attribut zu, das sie bereits verwenden – Benutzername, E-Mail-Adresse oder Benutzer-ID. Eine Nichtübereinstimmung kann nach der Anmeldung durch Keycloak die Fehlermeldung „Benutzer nicht gefunden“ erzeugen.
Um Konten beim ersten Login zu erstellen, aktivieren Sie diese Option PROXY_AUTOPROVISION_ACCOUNTS=truenur, wenn dies gewünscht ist und nachdem Sie Schreibvorgänge im oCIS Graph-Benutzer-Backend freigegeben haben. Die Kennung muss eindeutig, stabil und darf nicht neu vergeben werden. ownCloud erkennt sie subals geeignet; verwenden Sie E-Mail-Adresse oder bevorzugten Benutzernamen nur, wenn dieser nicht geändert werden kann. Achten Sie darauf, dass die Ansprüche für Kontoerstellung und -abfrage übereinstimmen.
Prüfen Sie, ob Keycloak den gewählten Anspruch in der Token- oder Benutzerinformationsantwort zurückgibt. Wenn die automatische Bereitstellung deaktiviert ist, wird beim Anmelden kein neuer Benutzer erstellt; bei einem schreibgeschützten Graph-Backend kann die Bereitstellung fehlschlagen. Fügen Sie Gruppen- oder Rollenzuordnungen erst hinzu, nachdem die Anmeldung funktioniert. Lesen Sie die Dokumentation zu ownCloud 8.2 (Proxy und automatische Bereitstellung), bevor Sie Schreibzugriff aktivieren oder Identitätszuordnungen ändern.
Überprüfen Sie den gesamten Anmeldevorgang.
Öffnen Sie oCIS in einem privaten Browserfenster und melden Sie sich an. Sie sollten die Keycloak-Domäne erreichen, sich authentifizieren und anschließend zum selben oCIS-Host zurückkehren, auf dem das Konto erwartet wird. Testen Sie zunächst ein bestehendes Konto. Wenn die Bereitstellung aktiviert ist, testen Sie einen genehmigten neuen Benutzer und vergewissern Sie sich, dass dieser einmalig mit dem gewünschten Benutzernamen erstellt wurde. Melden Sie sich ab und wiederholen Sie die Anmeldung.
Nach erfolgreicher Authentifizierung sollte der Browser zur Cloud-Datei-Oberfläche zurückkehren.
Für die Erkennung auf Desktop- oder Mobilgeräten öffnen Sie die entsprechende URL https://cloud.example.com/.well-known/openid-configuration; die Umschreibung sollte die Anbieterinformationen von Keycloak offenlegen. Eine Anmeldeschleife deutet auf einen Fehler im Weiterleitungshost oder im Schema hin. Ein abgelehnter Benutzer nach erfolgreicher Anmeldung deutet auf einen fehlenden Anspruch oder eine Diskrepanz zwischen PROXY_USER_OIDC_CLAIMden Parametern hin PROXY_USER_CS3_CLAIM.