Home
» Come fare
»
Collega ownCloud Infinite Scale a Keycloak tramite OIDC.
Collega ownCloud Infinite Scale a Keycloak tramite OIDC.
Spesso gli utenti accedono alla pagina di login di Keycloak, si autenticano e poi vengono reindirizzati alla schermata di login di ownCloud Infinite Scale oppure visualizzano un errore "utente sconosciuto". Le cause più comuni sono un realm issuer non corrispondente, un client web copiato da una versione di esempio diversa o un'identità claim non corrispondente a un account oCIS. Configurate Keycloak come provider OpenID Connect (OIDC) esterno di oCIS, allineate questi tre valori e verificate che il browser e i client possano raggiungere il provider tramite HTTPS.
Questa procedura guidata utilizza host fittizi: cloud.example.comper oCIS e sso.example.comper Keycloak. La configurazione fa riferimento alla documentazione di ownCloud Infinite Scale 8.2; confrontare i nomi con la documentazione della versione installata prima di applicarli. Questa procedura è per Infinite Scale (oCIS), non per ownCloud Server 10.
1. Verifica il realm e l'endpoint di rilevamento
Un provider di identità (IdP) autentica gli utenti per un altro servizio. OpenID Connect è il protocollo di accesso che consente a oCIS di considerare attendibili le informazioni di login e di identità di Keycloak. Un realm è un insieme separato di utenti, client e impostazioni di Keycloak. Scegli il realm che servirà oCIS, quindi identifica il suo URL emittente: per il realm di esempio ocis, è https://sso.example.com/realms/ocis.
Prima di modificare oCIS, aprite il https://sso.example.com/realms/ocis/.well-known/openid-configurationdocumento in un browser. Questo documento di rilevamento OpenID Connect descrive gli endpoint del provider. Verificate che il suo issuervalore corrisponda esattamente all'URL del realm, inclusi schema, host, maiuscole/minuscole e percorso. L'emittente non deve essere la pagina di amministrazione o l'URL di rilevamento più lungo. Il certificato TLS del provider deve essere considerato attendibile dai browser degli utenti e dal server/container oCIS.
Il documento di rilevamento deve indicare l'esatto emittente del realm configurato in oCIS.
Se l'URL di rilevamento non si carica, risolvere prima eventuali problemi relativi a DNS, routing del proxy inverso, firewall o certificati. Una risposta positiva del browser da sola non dimostra che il container oCIS possa raggiungere Keycloak; verificare anche l'accesso alla rete dalla rete di distribuzione del server. Le regole di rilevamento di OpenID Connect richiedono che l'emittente restituito identifichi lo stesso provider. Consultare le specifiche di rilevamento di OpenID Connect .
2. Associare il client Keycloak all'applicazione web oCIS
Utilizza l' esempio di distribuzione di Keycloak ownCloud aggiornato come punto di partenza e adatta il suo file realm alla tua versione di oCIS. Non mescolare le versioni: l'esempio di composizione corrente utilizza l'ID client web web, mentre le note di configurazione precedenti indicano ocis-web. Keycloak e oCIS devono utilizzare lo stesso ID client.
In Keycloak, apri il realm e il client web selezionati. Fai corrispondere il flusso di accesso e l'ID client all'esempio di ownCloud. Imposta URI di reindirizzamento validi con gli indirizzi di callback esatti richiesti da quel realm, utilizzando l'host HTTPS pubblico. Imposta le origini web solo come richiesto dal modello. Il carattere jolly qui sotto è a scopo illustrativo e non rappresenta una raccomandazione per l'ambiente di produzione: modelli di reindirizzamento generici possono consentire destinazioni indesiderate. Le etichette variano a seconda della versione di Keycloak.
Utilizza l'URI di reindirizzamento e l'ID client dal modello di realm corrispondente alla tua versione di oCIS; i valori visualizzati sono solo esempi.
Mantieni stabile il nome host pubblico di Keycloak. Se la connessione TLS termina su un proxy inverso, configura il suo nome host pubblico e le intestazioni del proxy attendibile, altrimenti i reindirizzamenti potrebbero utilizzare lo schema o l'host sbagliato; segui le linee guida del proxy inverso di Keycloak . Sostituisci le credenziali dell'amministratore demo prima di esporre Keycloak.
3. Puntare oCIS allo stesso emittente e allo stesso cliente
Aggiungi queste variabili al servizio oCIS nella configurazione di distribuzione, mantenendo inalterate le altre impostazioni e i segreti. L'esempio utilizza URL fittizi e l'ID client di esempio corrente:
OCIS_URLè l'indirizzo oCIS pubblico; l'ID dell'emittente e dell'ID client devono corrispondere esattamente a Keycloak. La riscrittura abilita il percorso di rilevamento utilizzato dai client desktop, Android e iOS. L'esclusione idparresta il provider integrato nelle implementazioni IdP esterne; ometterla se la configurazione utilizza intenzionalmente tale servizio.
Queste impostazioni oCIS indirizzano l'autenticazione a Keycloak e il rilevamento OIDC al provider esterno.
Applica le modifiche con il normale processo di riavvio della tua distribuzione. Con Docker Compose, esegui il comando docker compose up -ddalla directory compose per ricreare i servizi modificati, quindi esamina i log di oCIS. Utilizza certificati TLS attendibili in produzione. L'esempio di ownCloud contrassegna INSECURE=truequesta opzione come un certificato autofirmato locale; rimuovila o impostala su false su un server esposto a Internet. ownCloud sconsiglia inoltre di utilizzarla PROXY_OIDC_INSECUREin produzione.
4. Decidere come oCIS deve identificare gli utenti
Un claim è un campo di identità OIDC, come sub, preferred_username, o email. oCIS lo utilizza per trovare un account. Per gli utenti esistenti, mappalo all'attributo che già utilizzano: nome utente, email o ID utente. Una mancata corrispondenza può generare il messaggio "utente non trovato" dopo che Keycloak ha accettato l'accesso.
Per creare account al primo accesso, impostarlo PROXY_AUTOPROVISION_ACCOUNTS=truesolo quando necessario e dopo aver abilitato le scritture nel backend utente di oCIS Graph. L'identificativo deve essere univoco, stabile e non deve mai essere riassegnato. ownCloud lo identifica subcome idoneo; utilizzare l'indirizzo email o il nome utente preferito solo se non può essere modificato. Mantenere allineate le attestazioni di creazione e di ricerca:
Conferma che Keycloak restituisca la rivendicazione selezionata nel token o nella risposta userinfo. Con il provisioning automatico disattivato, non viene creato un nuovo utente all'accesso; con un backend Graph di sola lettura, il provisioning potrebbe non riuscire. Aggiungi la mappatura di gruppi o ruoli solo dopo che l'accesso funziona. Consulta la documentazione di ownCloud 8.2 relativa al proxy e al provisioning automatico prima di abilitare l'accesso in scrittura o modificare le mappature delle identità.
Verifica il flusso di accesso completo
Apri oCIS in una finestra di navigazione in incognito ed effettua l'accesso. Dovresti raggiungere il realm di Keycloak, autenticarti e tornare allo stesso host oCIS dell'account previsto. Prima di procedere, testa un account esistente. Se il provisioning è abilitato, testa un nuovo utente approvato e verifica che venga creato correttamente con il nome utente desiderato. Disconnettiti e ripeti l'accesso.
Dopo l'autenticazione avvenuta con successo, il browser dovrebbe tornare all'interfaccia di archiviazione dei file nel cloud.
Per il rilevamento su desktop o dispositivi mobili, aprire https://cloud.example.com/.well-known/openid-configuration; la riscrittura dovrebbe esporre le informazioni del provider di Keycloak. Un ciclo di accesso indica un host di reindirizzamento o una mancata corrispondenza dello schema. Un utente rifiutato dopo un accesso riuscito indica una rivendicazione mancante o una mancata corrispondenza tra PROXY_USER_OIDC_CLAIMe PROXY_USER_CS3_CLAIM.