Gebruik Logto Management API: Een stapsgewijze handleiding
Leer hoe je Logto Management API kunt gebruiken voor je applicatie in verschillende scenario's.
Hoewel Logto een webgebaseerde Console biedt voor identiteitsbeheer, is het gebruik van de Management API een krachtige alternatieve optie wanneer je je workflow wilt automatiseren of Logto programmatisch wilt benaderen. Deze handleiding leidt je door de stappen om de Logto Management API in verschillende scenario's te gebruiken.
Overzicht
Je hebt misschien gemerkt dat er een ingebouwde API-resource "Logto Management API" in de Logto Console is. Deze speelt een sleutelrol in deze handleiding.
In vergelijking met andere API-resources biedt de Logto Management API momenteel geen directe toegang tot eindgebruikers, omdat deze is ontworpen voor communicatie van machine naar machine, en zo krachtig is dat je er je Logto-account en -resources mee kunt beheren.
Hier zijn enkele typische scenario's waarin je de Logto Management API wilt gebruiken:
CI/CD
Servicecommunicatie
Single page app
Webserver die HTML rendert
Architectuur
Ongeacht de scenario's zijn er twee patronen die je kunt gebruiken om toegang te krijgen tot de Logto Management API.
Patroon 1: Directe toegang
In dit patroon krijgt je client of service direct toegang tot de Logto Management API. In Logto wordt de client of service een "machine-to-machine" app genoemd.
Een voorbeeld van het gebruik van backend service:
Patroon 2: Indirecte toegang
In dit patroon krijgt je client of service toegang tot de Logto Management API via een backend service. Patroon 2 is gebaseerd op patroon 1, waarbij een andere app betrokken is. De nieuwe app kan een traditionele web-, native- of single page app zijn die toegang krijgt tot de backend service.
Een voorbeeld van het gebruik van single page app:
Dit patroon is nuttig wanneer je aangepaste logica wilt hebben om de toegang tot de Logto Management API te controleren. Bijvoorbeeld, je wilt misschien alle bestellingen voor een consument retourneren en informatie van de verkoper aan elke bestelling toevoegen. In dit geval kun je de single page app gebruiken om de backend service te verzoeken de bestellingen op te halen, en in de backend service kun je de Logto Management API gebruiken om de informatie van de verkoper op te halen.
Toegang tot Logto Management API
Maak een machine-to-machine app
Eerst moet je een machine-to-machine app maken in de Logto Console. Ga naar het tabblad "Toepassingen" en klik op de knop "Applicatie maken". Klik vervolgens op "Begin met bouwen" in de "Machine-to-machine" kaart.
Stel een machine-to-machine rol in
Om toegang te krijgen tot de Logto Management API, moet je een machine-to-machine rol maken met de juiste permissies. In de Logto Console, ga naar het tabblad "Rollen" en klik op de knop "Rol maken". Klik op "Meer opties weergeven" en selecteer "Machine-to-machine app rol" in het gedeelte "Roltype".
Nu zie je in het gedeelte "Permissies toewijzen" dat de "Logto Management API" verschijnt. Vink de API-resource aan voor alle permissies en klik op de knop "Rol maken".
Zodra de rol is aangemaakt, kun je deze toewijzen aan de machine-to-machine app die je in de vorige stap hebt aangemaakt.
Verkrijg toegangstoken
Je kunt de stappen volgen in dit artikel om een toegangstoken te verkrijgen via clientreferenties voor je machine-to-machine app. Test het toegangstoken door een verzoek te sturen naar een eindpunt in de Logto Management API.
Nu ben je klaar voor patroon 1. Let op dat het toegangstoken slechts korte tijd geldig is, dus je wilt het misschien periodiek vernieuwen als je het wilt cachen.
Voeg een extra laag toe
Hoewel toegang tot de Logto Management API niet is toegestaan voor eindgebruikers, kun je een extra laag toevoegen om de kracht van de Logto Management API te benutten en je service meer mogelijkheden te geven.
Bijvoorbeeld, je bouwt een online gemeenschap met een single page app en een backend service. Je wilt misschien een functie toevoegen die ingelogde gebruikers de top 10 gebruikers met de meeste volgers laat zien. Een eindpunt GET /api/top-users
wordt aangemaakt:
Om ervoor te zorgen dat het eindpunt alleen toegankelijk is voor ingelogde gebruikers, kun je een "single page app" maken in de Logto Console en integreer je Logto SDK in die app. Vervolgens kun je de SDK gebruiken om het toegangstoken te verkrijgen en het verzoek naar het eindpunt te verzenden:
In de backend service kun je eerst de top 10 gebruikers uit de database opvragen en vervolgens de Logto Management API gebruiken om de informatie van de gebruiker op te halen:
Ten slotte kun je de respons naar de single page app retourneren:
Een volledige sequentiediagram:
In deze flow zijn er twee soorten toegangstokens: één voor de backend service om toegang te krijgen tot de Logto Management API, en de andere voor de single page app om toegang te krijgen tot de backend service.
Het eerste toegangstoken is dat wat je in het vorige gedeelte hebt gekregen. Het tweede toegangstoken is dat wat je kunt verkrijgen via de Logto SDK.
Mijn toegangstoken in de single page app is geen JSON Web Token (JWT)
Als je de resource niet specifieert bij het aanroepen van de getAccessToken
methode in de Logto SDK's, zal het toegangstoken een ondoorzichtig tekenreeks zijn die bedoeld is voor het userinfo eindpunt. Om een JWT te krijgen:
- Definieer een API-resource in de Logto Console, bijv.
https://api.example.com
. - Voeg de API-resource toe aan de
resources
configuratie van de Logto SDK, bijv.resources: ['https://api.example.com']
. - Roep de
getAccessToken
methode aan met de API-resource, bijv.getAccessToken('https://api.example.com')
.
Voor het valideren van de JWT in je backend service, raadpleeg Valideer het autorisatietoken van het API-verzoek.
Wat betekent de JWT in de single page app?
De JWT impliceert alleen dat de gebruiker is ingelogd en probeert toegang te krijgen tot de API-resource. Het impliceert niet dat de gebruiker specifieke rechten heeft voor de API-resource. Het is aan jou om te beslissen of je de gebruiker toegang verleent tot de API-resource.
Als je meer gedetailleerde toegangscontrole nodig hebt, kun je ook rolgebaseerde toegangscontrole (RBAC) toepassen op de gebruiker. Zie 🔐 Rolgebaseerde toegangscontrole (RBAC) voor details.
Afsluitende opmerkingen
De Logto Management API is krachtig en flexibel voor meerdere scenario's. Met de hulp van standaardprotocollen kun je de Logto Management API eenvoudig integreren in je applicatie en een veilig en schaalbaar systeem bouwen. Als je vragen hebt, neem dan gerust contact met ons op.