• management-api
  • api
  • logto
  • machine-to-machine
  • jwt

Używanie Logto Management API: Przewodnik krok po kroku

Dowiedz się, jak używać Logto Management API w swojej aplikacji w różnych scenariuszach.

Gao
Gao
Founder

Podczas gdy Logto oferuje internetowe Konsolę do zarządzania tożsamościami, użycie Management API jest potężną alternatywą, kiedy chcesz zautomatyzować przepływ pracy lub uzyskać dostęp do Logto programowo. Ten przewodnik przeprowadzi cię przez kroki korzystania z Logto Management API w różnych scenariuszach.

Przegląd

Możesz zauważyć, że w Logto Console jest wbudowane zasoby API "Logto Management API". Będzie ono kluczowe w tym przewodniku.

W porównaniu do innych zasobów API, obecnie Logto Management API nie pozwala na bezpośredni dostęp ze strony użytkowników końcowych, ponieważ jest zaprojektowane do komunikacji maszyna-do-maszyny, a jest tak potężne, że może być używane do zarządzania twoim kontem Logto i zasobami.

Oto kilka typowych scenariuszy, w których możesz chcieć używać Logto Management API:

CI/CD

Komunikacja serwisowa

Aplikacja jednowarstwowa

Serwer WWW renderujący HTML

Architektura

Niezależnie od scenariuszy, istnieją dwa wzorce, których możesz użyć, aby uzyskać dostęp do Logto Management API.

Wzorzec 1: Bezpośredni dostęp

W tym wzorcu twój klient lub usługa bezpośrednio uzyskuje dostęp do Logto Management API. W Logto klient lub usługa zwana jest aplikacją "maszyna-do-maszyny".

Przykład użycia usługi backend:

Wzorzec 2: Pośredni dostęp

W tym wzorcu twój klient lub usługa uzyskuje dostęp do Logto Management API za pośrednictwem usługi backend. Wzorzec 2 jest zbudowany na podstawie wzorca 1, który obejmuje inną aplikację. Nowa aplikacja może być tradycyjną stroną WWW, natywną aplikacją lub jednowarstwową aplikacją, która uzyska dostęp do usługi backend.

Przykład użycia aplikacji jednowarstwowej:

Ten wzorzec jest przydatny, gdy chcesz mieć niestandardową logikę kontrolowania dostępu do Logto Management API. Na przykład możesz chcieć zwrócić wszystkie zamówienia dla konsumenta i dołączyć informacje o sprzedawcy do każdego zamówienia. W tym przypadku możesz użyć aplikacji jednowarstwowej do zażądania usługi backendowej, aby pobrać zamówienia, a w usłudze backendowej możesz użyć Logto Management API, aby uzyskać informacje o sprzedawcy.

Uzyskanie dostępu do Logto Management API

Tworzenie aplikacji maszyna-do-maszyny

Najpierw musisz stworzyć aplikację maszyna-do-maszyny w Logto Console. Przejdź do zakładki "Aplikacje" i kliknij przycisk "Utwórz aplikację". Następnie kliknij "Rozpocznij budowanie" w karcie "Maszyna-do-maszyny".

Ustawienie roli maszyna-do-maszyny

Aby uzyskać dostęp do Logto Management API, musisz utworzyć rolę maszyna-do-maszyny z odpowiednimi uprawnieniami. W Logto Console przejdź do zakładki "Role" i kliknij przycisk "Utwórz rolę". Kliknij "Pokaż więcej opcji" i wybierz "Rola aplikacji maszyna-do-maszyny" w sekcji "Typ roli".

Teraz możesz zobaczyć "Logto Management API" pojawiające się w sekcji "Przypisywanie uprawnień". Zaznacz zasób API dla wszystkich uprawnień i kliknij przycisk "Utwórz rolę".

Po utworzeniu roli możesz przypisać ją do stworzonej wcześniej aplikacji maszyna-do-maszyny.

Pobieranie tokenu dostępu

Możesz śledzić kroki w tym artykule w celu uzyskania tokenu dostępu za pomocą mechanizmu przyznawania poświadczeń klienta dla twojej aplikacji maszyna-do-maszyny. Przetestuj token dostępu, wysyłając żądanie do punktu końcowego w Logto Management API.

Teraz jesteś gotów do wzorca 1. Uwaga, token dostępu jest ważny przez krótki okres czasu, więc możesz chcieć odnawiać go okresowo, jeśli chcesz go buforować.

Dodanie kolejnej warstwy

Chociaż dostęp do Logto Management API nie jest dozwolony dla użytkowników końcowych, możesz dodać kolejną warstwę, aby wykorzystać moc Logto Management API i pozwolić mu na wspieranie twojej usługi.

Na przykład, tworzysz społeczność online z aplikacją jednowarstwową i usługą backend. Możesz chcieć mieć funkcję, która pozwala zalogowanym użytkownikom zobaczyć top 10 użytkowników z największą liczbą obserwujących. Zostanie utworzony punkt końcowy GET /api/top-users:

Aby zapewnić, że punkt końcowy jest dostępny tylko dla zalogowanych użytkowników, możesz stworzyć "aplikację jednowarstwową" w Logto Console i integrować Logto SDK w tej aplikacji. Następnie możesz użyć SDK, aby uzyskać token dostępu i wysłać żądanie do punktu końcowego:

W usłudze backend możesz najpierw zapytać o top 10 użytkowników z bazy danych, a następnie użyć Logto Management API, aby uzyskać informacje o użytkownikach:

Na koniec możesz zwrócić odpowiedź do aplikacji jednowarstwowej:

Kompletny diagram sekwencji:

W tym prądzie zaangażowane są dwa rodzaje tokenów dostępu: jeden dla usługi backend do uzyskania dostępu do Logto Management API, a drugi dla aplikacji jednowarstwowej do uzyskania dostępu do usługi backend.

Pierwszy token dostępu to ten, który otrzymałeś w poprzedniej sekcji. Drugi token dostępu to ten, który możesz otrzymać z Logto SDK.

Mój token dostępu w aplikacji jednowarstwowej nie jest JSON Web Token (JWT)

Jeśli nie określisz zasobu podczas wywoływania metody getAccessToken w Logto SDK, token dostępu będzie nieprzezroczystym ciągiem, który ma być używany do endpoint użytkowników. Aby uzyskać JWT:

  1. Zdefiniuj zasób API w Logto Console, np. https://api.example.com.
  2. Dodaj zasób API do resources config Logto SDK, np. resources: ['https://api.example.com'].
  3. Wywołaj metodę getAccessToken z zasobem API, np. getAccessToken('https://api.example.com').

Aby zweryfikować JWT w swojej usłudze backend, zapoznaj się z artykułem Weryfikacja tokenu autoryzacyjnego żądania API.

Co oznacza JWT w aplikacji jednowarstwowej?

JWT sugeruje jedynie, że użytkownik zalogował się i próbuje uzyskać dostęp do zasobu API. Nie oznacza to, że użytkownik ma szczególne uprawnienia tego zasobu API. To ty decydujesz, czy użytkownikowi zostanie przyznany dostęp do zasobu API.

Jeśli potrzebujesz bardziej szczegółowej kontroli dostępu, możesz także zastosować controle dostępu oparte na rolach (RBAC) dla użytkownika. Zobacz 🔐 Kontrola dostępu oparta na rolach (RBAC) dla szczegółów.

Zakończenie

Logto Management API jest potężne i elastyczne w wielu scenariuszach. Z pomocą standardowych protokołów, możesz łatwo zintegrować Logto Management API ze swoją aplikacją i zbudować bezpieczny i skalowalny system. Jeśli masz jakiekolwiek pytania, skontaktuj się z nami.