Ottimizza l'autenticazione OAuth e OIDC con Logto
La nostra comunità ha espresso interesse nell'utilizzo di Logto come Identity Provider per alcuni prodotti, come i plugin Outline o ChatGPT. In teoria, Logto può fungere da provider OAuth o OIDC (OpenID Connect) a patto che il prodotto che si desidera integrare supporti uno di questi protocolli.
Logto è una soluzione di identità facile da usare che offre tutte le funzionalità necessarie. Supporta vari metodi di accesso come nomi utente, email, numeri di telefono e popolari accessi social come Google e GitHub. Che tu sia un individuo o un'azienda di qualsiasi dimensione, Logto fornisce la perfetta soluzione di Customer Identity and Access Management (CIAM) adatta alle esigenze specifiche del tuo progetto.
Introduzione
La nostra comunità ha espresso interesse nell'utilizzo di Logto come Identity Provider per alcuni prodotti, come i plugin Outline o ChatGPT. In teoria, Logto può fungere da provider OAuth 2.0 (OAuth) o OpenID Connect (OIDC) a patto che il prodotto che si desidera integrare supporti uno di questi protocolli.
In questo articolo, offriamo un tutorial generale per le integrazioni OAuth o OIDC utilizzando Logto come Identity Provider. Inoltre, forniamo tutorial dedicati per integrazioni specifiche, inclusi:
- Implementa l'autenticazione utente dei plugin ChatGPT con Logto
- Semplifica l'autenticazione di Outline con Logto
Sebbene alcuni dettagli possano variare tra i prodotti, la configurazione fondamentale rimane generica. Se hai domande o hai bisogno di ulteriore assistenza, ti invitiamo a unirti al nostro server Discord per ulteriori discussioni.
Iniziamo!
Prerequisiti
Prima di iniziare, assicurati di avere quanto segue:
- Un'istanza Logto operativa o l'accesso a un account Logto Cloud.
- Un prodotto che supporti un provider di identità OAuth o OIDC di terze parti (indicato come "il prodotto").
Configura Logto
Se stai ospitando Logto autonomamente, fai riferimento alla documentazione "Inizia" di Logto per configurare la tua istanza Logto.
Apri Logto Console accedendo all'URL https://cloud.logto.io/
se stai utilizzando Logto Cloud, o usa l'endpoint che hai configurato per l'hosting autonomo.
Crea applicazione
Vai alla scheda "Applications" e clicca su "Create application".
Nella finestra modale che appare, scegli "Traditional Web" e fornisci un nome per l'applicazione, come "My App". Clicca su "Create application".
Verrai indirizzato a una pagina di tutorial in Logto. Clicca su "Skip" nell'angolo in alto a destra per avanzare alla pagina dei dettagli dell'applicazione.
Configura Redirect URI
Nella sezione "Redirect URIs", inserisci il valore fornito nella documentazione del prodotto. Di solito, è dinamico in base alla tua configurazione ID o endpoint nel prodotto. Ad esempio, nei plugin ChatGPT, il Redirect URI è:
https://chat.openai.com/aip/[your-plugin-id]/oauth/callback
Se il tuo plugin ID è foo123
, il valore dovrebbe essere:
https://chat.openai.com/aip/foo123/oauth/callback
Alternativamente, potrebbe essere riferito come "Redirect URL," "Callback URI," o "Callback URL."
Opzionale: Assicurati che Logto emetta il Refresh Token
Alcuni prodotti potrebbero richiedere un Refresh Token quando inviano richieste di scambio token a Logto. Per OAuth, devi solo assicurarti che lo scope offline_access
sia incluso. Secondo il protocollo OIDC, per impostazione predefinita, il prodotto deve anche aggiungere il parametro di ricerca prompt=consent
nella richiesta iniziale di autorizzazione per il flusso Authorization Code; altrimenti non verrà emesso alcun Refresh Token.
Se il prodotto usa OAuth o non aggiunge il parametro prompt=consent
o lo scope offline_access
ma richiede un Refresh Token (ad esempio, i plugin ChatGPT), scorri fino alla sezione "Advanced settings" ed abilita "Always issue Refresh Token."
Fatto!
Clicca sul pulsante "Save Changes" in fondo. Tieni aperta questa pagina poiché sarà utile per ulteriori configurazioni.
Configura il prodotto
Segui i passaggi indicati nella documentazione del prodotto per la configurazione OAuth o OIDC.
Configurazione di base
La maggior parte dei valori di configurazione richiesti possono essere trovati nella pagina dei dettagli dell'applicazione Logto. Alcuni nomi potrebbero avere alias, quindi fai riferimento alla tabella sotto per riferimento:
Nome Logto | Alias | Uso |
---|---|---|
App ID | Application ID, Client ID | |
App Secret | Application Secret, Client Secret | |
Redirect URI | Redirect URL, Callback URI, Callback URL | Reindirizzamento post-sign-in |
Post Sign-out Redirect URIs | Post Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL | Reindirizzamento post-sign-out |
Authorization Endpoint | Authorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URI | Autenticazione iniziale |
Token Endpoint | Token URL, Token URI | Richiesta di rilascio token |
Userinfo Endpoint | Userinfo URL, Userinfo URI, User Info Endpoint, User Info URL, User Info URI | Ottieni informazioni utente |
Per i prodotti moderni, un "discovery endpoint" potrebbe essere sufficiente. In tali casi, sostituisci auth
con .well-known/openid-configuration
nell'Authorization Endpoint. Ad esempio, se l'Authorization Endpoint è https://default.logto.app/oidc/auth
, l'endpoint di discovery sarebbe https://default.logto.app/oidc/.well-known/openid-configuration
.
Opzionale: Configurazione degli scope
Se il prodotto supporta OIDC o richiede che venga emesso un ID Token, aggiungi openid profile
alla configurazione degli scope. Consulta la tabella degli scope-claim sotto:
Claim | Tipo | Scope Richiesto |
---|---|---|
sub | string | openid |
name | string | profile |
username | string | profile |
picture | string | profile |
string | ||
email_verified | boolean | |
phone_number | string | phone |
phone_number_verified | boolean | phone |
Punto di controllo: Testa l'integrazione con Logto
Clicca sul pulsante di accesso nel prodotto, verrai indirizzato all'esperienza di accesso di Logto.
Se tutto è configurato correttamente, una volta completato il processo di accesso o registrazione in Logto, verrai reindirizzato di nuovo al prodotto senza errori.
E questo conclude la nostra guida sull'ottimizzazione dell'autenticazione OAuth e OIDC con Logto. Se riscontri problemi durante l'integrazione, non esitare a contattarci via email a [email protected] o unirti al nostro server Discord!