Home
» Hoe
»
Verbind ownCloud Infinite Scale met Keycloak via OIDC.
Verbind ownCloud Infinite Scale met Keycloak via OIDC.
Gebruikers komen vaak op de Keycloak-aanmeldingspagina terecht, authenticeren zich, maar belanden vervolgens weer op het ownCloud Infinite Scale-aanmeldingsscherm of krijgen een foutmelding 'onbekende gebruiker'. De gebruikelijke oorzaken zijn een realm issuer die niet overeenkomt, een webclient die is gekopieerd van een andere voorbeeldversie, of een identiteitsclaim die niet overeenkomt met een oCIS-account. Configureer Keycloak als de externe OpenID Connect-provider (OIDC) van oCIS, zorg ervoor dat deze drie waarden overeenkomen en controleer of de browser en clients de provider via HTTPS kunnen bereiken.
Deze handleiding maakt gebruik van fictieve hosts: cloud.example.comvoor oCIS en sso.example.comvoor Keycloak. De configuratie verwijst naar de documentatie van ownCloud Infinite Scale 8.2; vergelijk de namen met de documentatie van uw geïnstalleerde versie voordat u ze toepast. Dit is voor Infinite Scale (oCIS), niet voor ownCloud Server 10.
1. Controleer het domein en het ontdekkings-eindpunt.
Een identiteitsprovider (IdP) authenticeert gebruikers voor een andere service. OpenID Connect is het aanmeldingsprotocol waarmee oCIS de aanmeldings- en identiteitsgegevens van Keycloak kan vertrouwen. Een realm is de afzonderlijke set gebruikers, clients en instellingen van Keycloak. Kies de realm die oCIS zal bedienen en identificeer vervolgens de URL van de uitgever: voor de voorbeeldrealm ocisis dit https://sso.example.com/realms/ocis.
Voordat u oCIS bewerkt, opent u het https://sso.example.com/realms/ocis/.well-known/openid-configurationin een browser. Dit OpenID Connect-ontdekkingsdocument beschrijft de eindpunten van de provider. Controleer of de issuerwaarde exact overeenkomt met de realm-URL, inclusief schema, host, hoofdlettergebruik en pad. De uitgever mag niet de beheerderspagina of de langere ontdekkings-URL zijn. Het TLS-certificaat van de provider moet worden vertrouwd door de browsers van de gebruikers en door de oCIS-server/container.
Het ontdekkingsdocument moet de exacte realm-uitgever vermelden die in oCIS is geconfigureerd.
Als de ontdekkings-URL niet laadt, los dan eerst problemen met DNS, reverse-proxy-routering, firewall of certificaten op. Een succesvolle browserrespons alleen bewijst niet dat de oCIS-container Keycloak kan bereiken; controleer ook de netwerktoegang vanuit het implementatienetwerk van de server. De OpenID Connect-ontdekkingsregels vereisen dat de geretourneerde uitgever dezelfde provider identificeert. Zie de OpenID Connect Discovery-specificatie .
2. Koppel de Keycloak-client aan de oCIS-webapp.
Gebruik het bijgewerkte ownCloud Keycloak-implementatievoorbeeld als uitgangspunt en stem het realm-bestand af op uw oCIS-release. Gebruik geen verschillende versies: het huidige compose-voorbeeld gebruikt de webclient-ID web, terwijl oudere installatie-instructies vermelden ocis-web. Keycloak en oCIS moeten dezelfde client-ID gebruiken.
Open in Keycloak het geselecteerde domein en de webclient. Stem de aanmeldingsprocedure en client-ID af op het ownCloud-voorbeeld. Stel geldige redirect-URI's in naar de exacte callback-adressen die vereist zijn voor dat domein, met behulp van de openbare HTTPS-host. Stel web-origins alleen in zoals de sjabloon vereist. De onderstaande wildcard is slechts een voorbeeld en geen aanbeveling voor productieomgevingen: brede redirect-patronen kunnen leiden tot onbedoelde bestemmingen. Labels kunnen variëren per Keycloak-release.
Gebruik de omleidings-URI en client-ID uit de realm-sjabloon die overeenkomt met uw oCIS-versie; de weergegeven waarden zijn voorbeelden.
Zorg ervoor dat de openbare hostnaam van Keycloak stabiel blijft. Als TLS eindigt bij een reverse proxy, configureer dan de openbare hostnaam en de headers voor vertrouwde proxy's, anders kunnen redirects het verkeerde schema of de verkeerde host gebruiken; volg de richtlijnen voor reverse proxy's van Keycloak . Vervang de beheerdersgegevens van de demo voordat u Keycloak beschikbaar maakt.
3. Koppel oCIS aan dezelfde uitgever en klant.
Voeg deze variabelen toe aan de oCIS-service in uw implementatieconfiguratie, waarbij de overige instellingen en geheimen behouden blijven. Het voorbeeld maakt gebruik van fictieve URL's en de huidige voorbeeldclient-ID:
OCIS_URLis het openbare oCIS-adres; de uitgever en client-ID moeten exact overeenkomen met Keycloak. De herschrijving maakt het ontdekkingspad mogelijk dat wordt gebruikt door desktop-, Android- en iOS-clients. Uitsluiting idpschakelt de ingebouwde provider uit in implementaties met externe IdP's; laat deze optie weg als uw configuratie deze service bewust gebruikt.
Deze oCIS-instellingen verwijzen authenticatie naar Keycloak en routeren OIDC-ontdekking naar de externe provider.
Voer de wijzigingen door via het normale herstartproces van uw implementatie. Gebruik Docker Compose docker compose up -dvanuit de compose-directory om de gewijzigde services opnieuw aan te maken en controleer vervolgens de oCIS-logboeken. Gebruik vertrouwde TLS-certificaten in productie. Het ownCloud-voorbeeld markeert dit INSECURE=trueals een lokale optie voor zelfondertekende certificaten; verwijder deze of stel deze in op 'false' op een server die toegankelijk is via internet. ownCloud geeft ook aan dat dit niet PROXY_OIDC_INSECUREin productie gebruikt moet worden.
4. Bepaal hoe oCIS gebruikers moet identificeren.
Een claim is een OIDC-identiteitsveld, zoals sub<username>, preferred_username<mailname> of <user-ID> email. oCIS gebruikt dit om een account te vinden. Voor bestaande gebruikers koppelt u het aan het attribuut dat ze al gebruiken: gebruikersnaam, e-mailadres of gebruikers-ID. Een onjuiste koppeling kan leiden tot de melding "gebruiker niet gevonden" nadat Keycloak de aanmelding heeft geaccepteerd.
Om accounts aan te maken bij de eerste aanmelding, moet u dit PROXY_AUTOPROVISION_ACCOUNTS=truealleen instellen wanneer dit de bedoeling is en nadat u schrijfrechten hebt ingeschakeld in de oCIS Graph-gebruikersbackend. De identificatiecode moet uniek, stabiel en nooit opnieuw toegewezen zijn. ownCloud identificeert deze subals geschikt; gebruik alleen het e-mailadres of de gewenste gebruikersnaam als deze niet kan worden gewijzigd. Zorg ervoor dat de claims voor het aanmaken en opzoeken van accounts op elkaar zijn afgestemd:
Controleer of Keycloak de gekozen claim retourneert in het token of de gebruikersinformatie. Als automatische provisioning is uitgeschakeld, wordt er bij het inloggen geen nieuwe gebruiker aangemaakt; met een alleen-lezen Graph-backend kan provisioning mislukken. Voeg groeps- of roltoewijzingen pas toe nadat het inloggen is gelukt. Raadpleeg de documentatie van ownCloud 8.2 over proxy's en automatische provisioning voordat u schrijftoegang inschakelt of identiteitstoewijzingen wijzigt.
Controleer het volledige aanmeldproces.
Open oCIS in een privévenster van uw browser en meld u aan. U zou de Keycloak-realm moeten bereiken, authenticeren en terugkeren naar dezelfde oCIS-host als het verwachte account. Test eerst een bestaand account. Als provisioning is ingeschakeld, test dan een goedgekeurde nieuwe gebruiker en controleer of deze eenmaal is aangemaakt met de beoogde gebruikersnaam. Meld u af en herhaal het inlogproces.
Na een succesvolle authenticatie zou de browser terug moeten keren naar de interface voor cloudbestanden.
Voor desktop- of mobiele detectie, open https://cloud.example.com/.well-known/openid-configuration; de herschrijving moet de providerinformatie van Keycloak weergeven. Een inloglus wijst op een redirect-host of een mismatch in het schema. Een geweigerde gebruiker na een succesvolle login wijst op een ontbrekende claim of een mismatch tussen PROXY_USER_OIDC_CLAIMen PROXY_USER_CS3_CLAIM.