Esiste un modo per configurare Keycloak come provider di autenticazione per Discourse? Ho bisogno che funzioni in modalità SSO, in modo che gli utenti che hanno un account gestito da Keycloak abbiano automaticamente accesso e siano già loggati anche nell’istanza di Discourse.
Ho letto della configurazione OpenID e alcune fonti dicono che con questa impostazione gli utenti devono effettuare il login separatamente e creare un account distinto su Discourse. Non è esattamente ciò che cerco.
C’è qualcosa che potrei o dovrei leggere sull’argomento?
Il mio obiettivo è avere Discourse e Keycloak configurati in container Docker separati e orchestrati, con un’autenticazione fluida tra di loro, in modo da poter creare post su Discourse tramite il mio backend API a nome dell’utente loggato nella mia app frontend JS, con i dati utente gestiti da Keycloak.
La soluzione più semplice che ho implementato per gli utenti con Keycloak come IAM aziendale è configurare Discourse SAML
La configurazione di Keycloak SAML è abbastanza semplice
In alternativa, puoi anche connetterti tramite OpenID Connect
Per consentire agli utenti di accedere automaticamente con SAML, dovrai disabilitare tutti gli altri metodi di autenticazione, incluso l’accesso locale. Assicurati che il tuo account amministrativo abbia già un account corrispondente su Keycloak, altrimenti rimarrai bloccato fuori dall’amministrazione.
Interessante, grazie.
Disabilitare tutti gli altri metodi di accesso non è davvero un’opzione. Voglio continuare a usare Keycloak come metodo principale di autenticazione nella mia app, ma, in aggiunta, permettere agli utenti di accedere anche a Discourse.
Ciò significherebbe che i miei utenti dovrebbero poter registrarsi con username/password o tramite qualsiasi rete sociale desiderino, ottenendo un account che funzioni sia per la mia app che per Discourse.
È possibile qualcosa del genere?
PS. Leggendo di nuovo, intendi disabilitare i metodi di autenticazione su Keycloak o su Discourse?
L’autenticazione tramite social o tramite nome utente/password dovrebbe essere gestita tramite Keycloak. Inoltre, mi sono appena reso conto che non effettua l’accesso automatico degli utenti. Ciò che farebbe è permettere agli utenti di autenticarsi direttamente su Keycloak se cliccano sul pulsante di accesso.
Quindi, supponiamo che inizialmente voglia accedere a tutto tramite API. Potrò ancora farlo?
Il login fa parte dell’interfaccia utente di Discourse.
Immaginiamo che un nuovo utente si registri sul mio server Keycloak e che io abbia questa integrazione SAML. L’utente è loggato nella mia web-app JS e ho il suo token. Sarò in grado di chiamare l’API di Discourse utilizzando solo questo token?
Cioè, se volessi avere un’interfaccia utente personalizzata per creare post dalla mia web-app.