SSO mit SAML, Keycloak und Nextcloud
Ich bin versucht, setup-Keycloak als IdP (Identity Provider) und Nextcloud as a service. Ich möchte setup Keycloak als eine SSO (single-sign-on) Seite.
Läuft bei mir ein Linux-Server mit einer Intel-kompatiblen CPU. Was ist die richtige Konfiguration?
- Keycloak ausgeführt werden, wird als https://kc.domain.com
- Nextcloud ausgeführt werden, wird als https://nc.domain.com
InformationsquelleAutor MadMike | 2018-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Prerequisit
Zur Nutzung dieser Antwort, die Sie benötigen, zu ersetzen
domain.com
mit einem tatsächlichen domain, die Sie eigenen. Auch ersetzen[email protected]
mit Ihrer funktionierende e-mail-Adresse.Es wird angenommen, Sie haben Hafenarbeiter und docker-verfassen installiert und ausgeführt.
Setup, Ihre Dienstleistungen mit Docker
Neben keycloak und nextcloud ich benutze:
Ich bin einrichten alle notwendigen service-mit dem Hafenarbeiter und docker-Komponieren. Dies ist, wie die
docker-compose.yml
sieht wie folgt aus:Legte ich meine Andockfenster-Dateien in einem Ordner
docker
und in diesem Ordner einen projektspezifischen Ordner. Hierkeycloak
. Erstellen Sie mit:Erstellen der
docker-compose.yml
-Datei mit Ihrem bevorzugten editor in diesem Ordner. Starten Sie die Dienste mit:Einen moment warten zu lassen, die Dienste herunterzuladen und zu starten. Prüfen, ob alles läuft mit:
Wenn ein Dienst nicht ausgeführt wird. Erstellung einer zweiten
docker-compose up -d
und prüfen Sie erneut.Konfigurieren Keycloak, fügen Sie ein neues Reich
Öffnen Sie einen browser und gehen Sie zu https://kc.domain.com . Klicken Sie auf Administration Console. Wie angegeben in Ihrem
docker-compose.yml
Benutzername und Passwort istadmin
.In der oberen linken Ecke der Seite, die Sie brauchen, um eine neue zu erstellen Reich. Klicken Sie auf
Add
. Geben Sie mein-Reich als Namen. Klicken Sie aufSave
.Klicken Sie auf die
Keys
-tab. Blick auf dieRSA
-Eintrag. Wir müssen, kopieren Sie das Zertifikat. Klicken Sie aufCertificate
- und copy-paste den Inhalt in einen text-editor für die spätere Verwendung.Bereiten Sie einen Privaten Schlüssel und das Zertifikat für Nextcloud
Öffnen Sie ein terminal und Ausgabe:
Diese zwei Dateien erstellt:
private.key
undpublic.cert
die brauchen wir später für die nextcloud service.Konfigurieren Nextcloud
Öffnen Sie einen browser und gehen Sie zu https://nc.domain.com . Wie angegeben in Ihrem
docker-compose.yml
Benutzername und Passwort istadmin
.Müssen Sie zum aktivieren der
SSO & Saml Authenticate
die standardmäßig deaktiviert ist.Wichtig von hier Aus auf nicht in der Nähe Ihre aktuellen browser-Fenster, bis das setup ist getestet und läuft. Wenn Sie den browser schließen, bevor alles funktioniert, werden Sie wahrscheinlich nicht in der Lage sein, um Ihre Einstellungen zu ändern in nextcloud mehr. In einem solchen Fall müssen Sie stoppen die nextcloud - und nextcloud-db-container, löschen Sie den entsprechenden Ordner, neu erstellen Sie und starten Sie alle immer wieder.
Klicken Sie auf oben rechts auf ZAHNRAD-symbol und dann auf die
+ Apps
-Zeichen. Auf der linken Seite sehen jetzt ein Menü mit dem EintragSecurity
. Klicken Sie auf es. Sie sehen jetzt alle Sicherheits-realted apps. Klicken Sie auf dieActivate
button dieSSO & SAML authentication
App.Klicken Sie auf oben rechts auf ZAHNRAD-symbol wieder und klicken Sie auf
Admin
. Klicken Sie aufSSO & SAML authentication
.Verwenden Sie die folgenden Werte:
public.cert
in der "X. 509 Zertifikat" -Feldprivate.key
in den 'Privaten Schlüssel Service Provider" -Feld.Keys
-Registerkartemy-realm
. Sie müssen hinzufügen '-----BEGIN CERTIFICATE-----' vor dem-Taste und '-----END CERTIFICATE-----' an das Ende.Klicken Sie auf
Download metadata XML
und speichern Sie die Datei für den nächsten Schritt.Metadata valid
neben derDownload metadata XML
-TasteDownload metadata XML
-Taste. Dieses erzeugen und senden einer XML-Datei. Speichern Sie es.Konfigurieren Keycloak, Client
Zugriff auf den Administror-Konsole wieder. Klicken Sie auf
Clients
und auf der rechten oberen Seite klicken Sie auf dieCreate
-Taste.Nächsten zu Importieren, Klicken Sie auf die
Select File
-Taste. Wählen Sie die XML-Datei, die Sie haben, erstellen Sie auf dem letzten Schritt in Nextcloud.Ändern:
und klicken Sie auf
Save
.Erscheint ein neuer Bildschirm. Ändern Sie die folgenden Felder:
Save
Auf der Registerkarte
Matters
:Delete
-Taste auf der vorbelegterole list
Create
Save
Create
Save
Konfigurieren Keycloak Benutzer Hinzufügen
Users
Add users
Save
Credentials
:Reset Password
Change Password
Testlauf
Öffnen Sie ein neues browser-Fenster im Inkognito - /Privatmodus. ZB. für google-chrome drücken
Ctrl-Shift-N
, in Firefox drücken SieCtrl-Shift-P
. Halten die anderen browser-Fenster mit dem nextcloud setup-Seite öffnen. Sonst könnten Sie sich aussperren.Zugang https://nc.domain.com mit der incognito - /privat-browser-Fenster. Sie sind mit den keycloak username/password-Seite. Geben Sie
user
als name und Passwort. Sie sollten begrüßt werden, um mit der nextcloud willkommen-Bildschirm.Bestätigung
Wir danken Ihr für dieses nette tutorial. Es ist eine Sache, zu erwähnen, obwohl: Wenn Sie die Zecke
"Enable "Use SAML auth for the Nextcloud desktop clients (requires user re-authentication)
, dann die Nextcloud desktop-client hat bei mir nicht funktioniert (fest auf "redirect" - Bildschirm). Mit dem ownCloud-client gelöst, aber verließ uns mit einem anderen problem: die Benutzer erneut authentifizieren jedesmal, wenn Sie beenden Sie den client, die ist wirklich ärgerlich. Passiert sowohl auf Windows und Ubuntu 18.04. Was löst das ist einfach nicht tickt.Leider habe ich aufgehört mit Keycloak mit SAML und zog zu nutzen OIDC statt. Mein test-setup für SAML ist Weg, also kann ich nicke nur schweigend auf mögliche Verbesserungen vorgeschlagen... trotzdem danke für das teilen Ihrer Erkenntnisse für zukünftige Besucher 🙂
wie hast du die Verbindung Nextcloud mit OIDC?
Ich nicht... noch nicht. Ich bin mit beiden Technologien, nextcloud und keycloak+oidc auf einer täglichen basis. Es ist nur dass ich nextcloud privatly und keycloak+oidc bei der Arbeit. Ich habe sowohl nextcloud+keycloak+saml hier ein komplettes lauffähiges Beispiel. Damals hatte ich mehr Zeit bei der Arbeit zu konzentrieren sich auf sso-Angelegenheiten. Leider kann dieser geändert hat. Es ist immer noch eine Priorität... zusammen mit einigen neuen priorites 😐 Wenn ich könnte, schlagen vor: Öffnen Sie eine neue Frage und die Liste Ihrer Anforderungen. Ich bin sicher, ich bin nicht der einzige mit Ideen und know-how über die Materie. Ich verspreche, ich werde haben Sie einen Blick auf es.
InformationsquelleAutor MadMike
Hier ist eine leicht aktualisierte version für nextcloud 15/16:
Öffnen Sie einen browser und gehen Sie zu https://kc.domain.com . Klicken Sie auf Administration Console. Wie angegeben in deinem Andockfenster-Komponieren.yml, den Benutzernamen und das Kennwort ist admin.
In der oberen linken Ecke der Seite, die Sie erstellen müssen, ein neues Reich. Klicken Sie Auf Hinzufügen. Geben Sie my-realm als name. Klicken Sie Auf Speichern.
Klicken Sie auf die Tasten, tab. Betrachten Sie die RSA-Eintrag. Wir müssen, kopieren Sie das Zertifikat. Klicken Sie auf Zertifikat und copy-paste den Inhalt in einen text-editor für die spätere Verwendung.
Bereiten Sie einen Privaten Schlüssel und das Zertifikat für Nextcloud
Öffnen Sie ein terminal und Ausgabe:
openssl req -nodes-new-x509 -keyout private.Schlüssel -aus der öffentlichkeit.cert
Diese zwei Dateien erstellt: private.Schlüssel und öffentlichkeit.cert, die brauchen wir später für die nextcloud service.
Konfigurieren Nextcloud
Öffnen Sie einen browser und gehen Sie zu https://nc.domain.com . Wie angegeben in deinem Andockfenster-Komponieren.yml, den Benutzernamen und das Kennwort ist admin.
Müssen Sie zum aktivieren der SSO - & Saml Authentifizieren, die standardmäßig deaktiviert ist.
Wichtig, Von hier nicht in der Nähe Ihrer aktuellen browser-Fenster, bis das setup ist getestet und läuft. Wenn Sie den browser schließen, bevor alles funktioniert, werden Sie wahrscheinlich nicht in der Lage sein, um Ihre Einstellungen zu ändern in nextcloud mehr. In einem solchen Fall müssen Sie stoppen die nextcloud - und nextcloud-db-container, löschen Sie den entsprechenden Ordner, neu erstellen Sie und starten Sie alle immer wieder.
Klicken Sie auf oben rechts auf ZAHNRAD-symbol und dann auf die + Apps-Zeichen. Auf der linken Seite sehen jetzt ein Menü mit dem Eintrag Sicherheit. Klicken Sie auf es. Sie sehen jetzt alle Sicherheits-realted apps. Klicken Sie auf die Schaltfläche "Aktivieren" unterhalb der SSO - & SAML-Authentifizierung App.
Klicken Sie auf oben rechts auf ZAHNRAD-symbol wieder und klicken Sie auf "Admin". Klicken Sie auf der SSO - & die SAML-Authentifizierung.
Verwenden Sie die folgenden Werte:
Konfigurieren Keycloak, Client
Zugriff auf den Administror-Konsole wieder. Klicken Sie auf Clients und auf der rechten oberen Seite klicken Sie auf den Erstellen-Button.
Nächsten zu Importieren, Klicken Sie auf den Datei Auswählen-Button. Wählen Sie die XML-Datei, die Sie haben, erstellen Sie auf dem letzten Schritt in Nextcloud.
Ändern:
und klicken Sie auf Speichern.
Erscheint ein neuer Bildschirm. Ändern Sie die folgenden Felder:
Auf die Registerkarte Fragen:
Klicken Sie Auf Erstellen
Klicken Sie Auf Erstellen
Konfigurieren Keycloak Benutzer Hinzufügen
InformationsquelleAutor Matthew Frost
Leider bin ich nicht in der Lage zu kommentieren an @MadMike Antwort (und nicht genug Ruf-Punkte), so dass ich nur eine Antwort geben. Mit seiner Lösung, die Sie kopieren Sie das private Zertifikat aus keycloak, das ist etwas, was man definitiv nicht tun sollte. Und am Ende hat man nicht einmal die Zertifikate nichts zu Unterschreiben...
Aber Sie haben vermutlich wollen die Identität bieten (keycloak) und der Service Provider (Nextcloud) zum signieren von Anfragen und Antworten. Werden Sie sicher, dass Sie sind, wer Sie behaupten zu sein, ich weiß nicht genug über SAML, um sicher zu sein, das Zeug sollte es wirklich unterzeichnet werden, und über welche Dinge wir don ' T care. Also ich lass es Unterschreiben, so viel wie möglich ;-).
Ich beschrieb den ganzen Vorgang hier. Sie sollten leicht in der Lage sein, um eine Anpassung an Ihre urls.
RMM, das kaufe ich nicht. MadMike erzeugt ein privates/öffentliches Schlüsselpaar für die keycloak client (d.h. nextcloud). Und er kopiert den öffentlichen Schlüssel des idp Reich an den client. IMHO, das sieht aus wie der Weg zu gehen, und ich kann nichts sehen", gemäßigt mit diesem Ansatz. Allerdings ist die Erstellung solcher ein private/public key pair-Mädchen scheint nicht zu Bedarf mit keycloak 4.0.0.Endgültig, wie schafft es solch ein paar, wenn Sie einen neuen Mandanten anlegen.
mittlerweile MadMike korrigiert seinen key pair generation. btw. auch Versionen vor keycloak 4 vorgesehen, die Möglichkeit zu schaffen, wie ein paar beim erstellen einer neuen client.
InformationsquelleAutor RMM