• management-api
  • api
  • logto
  • maskin-till-maskin
  • jwt

Använd Logto Management API: En steg-för-steg-guide

Lär dig hur du använder Logto Management API för din applikation i olika scenarier.

Gao
Gao
Founder

Medan Logto ger en webbaserad konsol för att hantera identiteter, är användning av Management API ett kraftfullt alternativ när du vill automatisera ditt arbetsflöde eller få åtkomst till Logto programmatiskt. Denna guide kommer att leda dig genom stegen för att använda Logto Management API i olika scenarier.

Översikt

Du kanske lägger märke till att det finns en inbyggd API-ressurs "Logto Management API" i Logto Console. Det kommer att vara en nyckelroll i denna guide.

I jämförelse med andra API-resurser tillåter för närvarande Logto Management API inte direkt åtkomst från slutanvändare eftersom det är designat för maskin-till-maskin-kommunikation, och det är så kraftfullt att det kan användas för att hantera ditt Logto-konto och resurser.

Här är några typiska scenarier där du kan vilja använda Logto Management API:

CI/CD

Tjänstekommunikation

Ensidig app

Webbserver som renderar HTML

Arkitektur

Oavsett scenarier, finns det två mönster som du kan använda för att få åtkomst till Logto Management API.

Mönster 1: Direkt åtkomst

I detta mönster kommer din klient eller tjänst att direkt få åtkomst till Logto Management API. I Logto kallas klienten eller tjänsten för en "maskin-till-maskin"-app.

Ett exempel på att använda bakgrundstjänst:

Mönster 2: Indirekt åtkomst

I detta mönster kommer din klient eller tjänst att få åtkomst till Logto Management API genom en bakgrundstjänst. Mönster 2 är byggt på toppen av mönster 1, vilket involverar en annan app. Den nya appen kan vara en traditionell webb, inbyggd eller ensidig app som kommer att få åtkomst till bakgrundstjänsten.

Ett exempel på att använda ensidig app:

Detta mönster är användbart när du vill ha anpassad logik för att kontrollera åtkomst till Logto Management API. Till exempel, du kanske vill returnera alla ordrar för en konsument och bifoga säljarens information till varje order. I det här fallet kan du använda den ensidiga appen för att begära bakgrundstjänsten för att hämta ordrarna, och i bakgrundstjänsten kan du använda Logto Management API för att få säljarens information.

Få åtkomst till Logto Management API

Skapa en maskin-till-maskin-app

Först behöver du skapa en maskin-till-maskin-app i Logto Console. Gå till fliken "Applikationer" och klicka på "Skapa applikation"-knappen. Klicka sedan på "Börja bygga" i kortet "Maskin-till-maskin".

Ställ in en maskin-till-maskin-roll

För att få åtkomst till Logto Management API behöver du skapa en maskin-till-maskin-roll med rätt behörigheter. I Logto Console, gå till fliken "Roller" och klicka på "Skapa roll"-knappen. Klicka på "Visa fler alternativ" och välj "Maskin-till-maskin-app-roll" i avsnittet "Rolltyp".

Nu kan du se att "Logto Management API" dyker upp i avsnittet "Tilldela behörigheter". Markera API-resursen för alla behörigheter och klicka på "Skapa roll"-knappen.

När rollen är skapad, kan du tilldela den till maskin-till-maskin-appen du skapade i föregående steg.

Få åtkomsttoken

Du kan följa stegen i denna artikel för att få en åtkomsttoken via klientreferenser för din maskin-till-maskin-app. Testa åtkomsttoken genom att skicka en begäran till en endpoint i Logto Management API.

Nu är du redo för mönster 1. Notera att åtkomsttoken är giltig under en kort tid, så du kan vilja uppdatera den periodiskt om du vill cacha den.

Lägg till ett annat lager

Även om åtkomst till Logto Management API inte är tillåten för slutanvändare, kan du lägga till ett annat lager för att utnyttja kraften i Logto Management API och låta det stärka din tjänst.

Till exempel, du bygger ett online-community med en ensidig app och en bakgrundstjänst. Du kanske vill ha en funktion som tillåter inloggade användare att se de 10 bästa användarna som har flest följare. En endpoint GET /api/top-users kommer att skapas:

För att säkerställa att endpointen endast är tillgänglig för inloggade användare, kan du skapa en "ensidig app" i Logto Console, och integrera Logto SDK i den appen. Sedan kan du använda SDK för att få åtkomsttoken och skicka begäran till endpointen:

I bakgrundstjänsten kan du först fråga topp 10 användare från databasen och sedan använda Logto Management API för att få användarens information:

Slutligen kan du returnera svaret till den ensidiga appen:

En komplett sekvensdiagram:

I denna flöde involveras två typer av åtkomsttoken: en för bakgrundstjänsten för att komma åt Logto Management API och den andra för den ensidiga appen för att komma åt bakgrundstjänsten.

Den förstnämnda åtkomsttoken är den du fick i föregående avsnitt. Den sistnämnda åtkomsttoken är den du kan få från Logto SDK.

Min åtkomsttoken i den ensidiga appen är inte en JSON Web Token (JWT)

Om du inte specificerar resursen när du anropar getAccessToken-metoden i Logto SDKs, kommer åtkomsttoken att vara en ogenomskinlig sträng som är avsedd att användas för userinfo endpoint. För att få en JWT:

  1. Definiera en API-resurs i Logto Console, t.ex. https://api.example.com.
  2. Lägg till API-resursen till resources-konfigurationen av Logto SDK, t.ex. resources: ['https://api.example.com'].
  3. Anropa getAccessToken-metoden med API-resursen, t.ex. getAccessToken('https://api.example.com').

För att validera JWT i din bakgrundstjänst, se Validera API-begärans auktorisationstoken.

Vad innebär JWT i den ensidiga appen?

JWT betyder endast att användaren har loggat in och försöker få åtkomst till API-resursen. Det innebär inte att användaren har specifika behörigheter för API-resursen. Det är upp till dig att bestämma om du vill ge användaren åtkomst till API-resursen.

Om du behöver mer detaljerad åtkomstkontroll, kan du också tillämpa rollbaserad åtkomstkontroll (RBAC) på användaren. Se 🔐 Rollbaserad åtkomstkontroll (RBAC) för detaljer.

Avslutande anteckningar

Logto Management API är kraftfullt och flexibelt för flera scenarier. Med hjälp av standardprotokoll kan du enkelt integrera Logto Management API i din applikation och bygga ett säkert och skalbart system. Om du har några frågor, tveka inte att kontakta oss.