Effektivisera OAuth och OIDC-autentisering med Logto
Vår community har uttryckt intresse för att använda Logto som en identitetsleverantör för vissa produkter, såsom Outline eller ChatGPT-plugins. Teoretiskt sett kan Logto fungera som en OAuth- eller OIDC-leverantör (OpenID Connect) så länge produkten du vill integrera stöder något av dessa protokoll.
Logto är en lättanvänd identitetslösning som erbjuder alla nödvändiga funktioner. Den stöder olika inloggningsmetoder som användarnamn, e-postadresser, telefonnummer och populära sociala inloggningar som Google och GitHub. Oavsett om du är en individ eller ett företag av vilken storlek som helst, erbjuder Logto den perfekta Customer Identity and Access Management (CIAM)-lösningen anpassad till ditt projekts specifika behov.
Introduktion
Vår community har uttryckt intresse för att använda Logto som en identitetsleverantör för vissa produkter, såsom Outline eller ChatGPT-plugins. Teoretiskt sett kan Logto fungera som en OAuth 2.0 (OAuth) eller OpenID Connect (OIDC) leverantör så länge produkten du vill integrera stöder något av dessa protokoll.
I den här artikeln erbjuder vi en allmän handledning för OAuth- eller OIDC-integreringar med hjälp av Logto som en identitetsleverantör. Dessutom tillhandahåller vi dedikerade handledningar för specifika integreringar, inklusive:
- Implementera ChatGPT-plugins användarautentisering med Logto
- Förenkla Outline-autentisering med Logto
Även om vissa detaljer kan skilja sig åt mellan produkter, förblir den grundläggande konfigurationen generisk. Om du har några frågor eller behöver ytterligare hjälp uppmuntrar vi dig att gå med i vår Discord-server för vidare diskussion.
Låt oss börja!
Förutsättningar
Innan vi börjar, se till att du har följande:
- En körande Logto-instans eller tillgång till ett Logto Cloud-konto.
- En produkt som stöder en tredje parts OAuth- eller OIDC-identitetsleverantör (kallas "produkten").
Konfigurera Logto
Om du själv hostar Logto, hänvisa till Logtos "Kom igång"-dokumentation för att sätta upp din Logto-instans.
Öppna Logto-konsolen genom att komma åt URL:en https://cloud.logto.io/
om du använder Logto Cloud, eller använd den endpoint du har satt upp för självhostning.
Skapa applikation
Gå till fliken "Applikationer" och klicka på "Skapa applikation".
I modalen som dyker upp väljer du "Traditionell webb" och anger ett applikationsnamn, såsom "Min App". Klicka på "Skapa applikation".
Du kommer att dirigeras till en handledningssida i Logto. Klicka på "Hoppa över" uppe i högra hörnet för att fortsätta till sidan med applikationsdetaljer.
Konfigurera Redirect URI
I sektionen "Redirect URIs" anger du värdet som anges i produktdokumentationen. Vanligtvis är det dynamiskt baserat på din ID- eller endpoint-konfiguration i produkten. Till exempel, i ChatGPT-plugins, är Redirect URI:
https://chat.openai.com/aip/[your-plugin-id]/oauth/callback
Om ditt plugin-ID är foo123
, bör värdet vara:
https://chat.openai.com/aip/foo123/oauth/callback
Alternativt kan det kallas "Redirect URL", "Callback URI" eller "Callback URL".
Valfritt: Se till att Logto utfärdar Refresh Token
Vissa produkter kan kräva en Refresh Token vid sändning av tokenbytesförfrågningar till Logto. För OAuth behöver du bara se till att offline_access
scope är inkluderad. Enligt OIDC-protokollet måste produkten som standard också lägga till prompt=consent
-parametern i den initiala autoriseringsförfrågan för Authorization Code-flödet; annars kommer ingen Refresh Token att utfärdas.
Om produkten använder OAuth eller inte lägger till prompt=consent
-parametern eller offline_access
scope men kräver en Refresh Token (t.ex. ChatGPT-plugins), scrolla ned till sektionen "Avancerade inställningar" och aktivera "Alltid utfärda Refresh Token".
Klart!
Klicka på "Spara ändringar"-knappen längst ner. Håll denna sida öppen då den kommer att vara användbar för ytterligare konfiguration.
Konfigurera produkten
Följ stegen i produktens dokumentation för konfiguration av OAuth eller OIDC.
Grundläggande konfiguration
De flesta av de nödvändiga konfigurationsvärdena kan hittas på Logto-applikationens detaljsida. Vissa namn kan ha alias, så hänvisa till tabellen nedan för referens:
Logto-namn | Alias | Användning |
---|---|---|
App-ID | Applikations-ID, Klient-ID | |
App-hemlighet | Applikationshemlighet, Klienthemlighet | |
Redirect URI | Redirect URL, Callback URI, Callback URL | Redirect efter inloggning |
Post Sign-out Redirect URIs | Post Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL | Redirect efter utloggning |
Autorisationsendpoint | Autorisations-URI, Autorisations-URL, Auth-endpoint, Auth-URL, Auth-URI | Initial autentisering |
Tokenendpoint | Token-URL, Token-URI | Begäran om tokenbeviljning |
Userinfo Endpoint | Userinfo URL, Userinfo URI, User Info Endpoint, User Info URL, User Info URI | Hämta nuvarande användarinformation |
För moderna produkter kan en "upptäckts-endpoint" vara tillräcklig. I sådana fall, ersätt auth
med .well-known/openid-configuration
i authorization endpointen. Till exempel, om autorisationsendpointen är https://default.logto.app/oidc/auth
, skulle upptäckts-endpointen vara https://default.logto.app/oidc/.well-known/openid-configuration
.
Valfritt: Scope-konfiguration
Om produkten stöder OIDC eller kräver att en ID-token utfärdas, lägg till openid profile
i scope-konfigurationen. Hänvisa till anspråks-scope tabellen nedan:
Anspråk | Typ | Krävs scope |
---|---|---|
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 |
Kontrollpunkt: Testa Logto-integrering
Klicka på inloggningsknappen i produkten, du kommer att dirigeras till Logtos inloggningsupplevelse.
Om allt är korrekt konfigurerat, när du har slutfört inloggningen eller registreringsprocessen i Logto, kommer du att omdirigeras tillbaka till produkten utan några fel.
Och det avslutar vår guide om att effektivisera OAuth och OIDC-autentisering med Logto. Om du stöter på några problem under integreringen, tveka inte att kontakta oss via e-post på [email protected] eller gå med i vår Discord-server!