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

Logto 관리 API 사용: 단계별 가이드

다양한 상황에서 애플리케이션에 Logto 관리 API를 사용하는 방법을 배워보세요.

Gao
Gao
Founder

Logto는 웹 기반 콘솔을 제공하여 ID를 관리할 수 있지만, 워크플로우 자동화나 프로그래밍 방식으로 Logto에 액세스하려는 경우 관리 API를 사용하는 것이 강력한 대안입니다. 이 가이드는 다양한 상황에서 Logto 관리 API를 사용하는 단계를 안내합니다.

개요

Logto 콘솔에는 "Logto 관리 API"라는 내장 API 리소스가 있다는 것을 알 수 있습니다. 이는 이 가이드에서 핵심 역할을 할 것입니다.

다른 API 리소스와 비교할 때 현재 Logto 관리 API는 기계 간 통신을 위해 설계되어 있으며 사용자가 직접 액세스할 수 없습니다. 이는 Logto 계정과 리소스를 관리할 수 있을 만큼 강력합니다.

Logto 관리 API를 사용하고자 하는 몇 가지 일반적인 시나리오가 있습니다:

CI/CD

서비스 간 통신

싱글 페이지 앱

HTML을 렌더링하는 웹 서버

아키텍처

시나리오와 관계없이 Logto 관리 API에 액세스할 수 있는 두 가지 패턴이 있습니다.

패턴 1: 직접 액세스

이 패턴에서는 클라이언트나 서비스가 Logto 관리 API에 직접 액세스합니다. Logto에서는 이를 "기계 간" 앱이라고 부릅니다.

백엔드 서비스를 사용하는 예:

패턴 2: 간접 액세스

이 패턴에서는 클라이언트나 서비스가 백엔드 서비스를 통해 Logto 관리 API에 액세스합니다. 패턴 2는 패턴 1 위에 구축되며, 다른 앱이 여기에 관여합니다. 새로운 앱은 전통적인 웹, 네이티브, 또는 백엔드 서비스에 접근할 싱글 페이지 앱일 수 있습니다.

싱글 페이지 앱을 사용하는 예:

이 패턴은 Logto 관리 API에 대한 접근을 제어할 커스텀 로직을 원할 때 유용합니다. 예를 들어, 소비자를 위한 모든 주문을 반환하고 각 주문에 판매자 정보를 첨부하려는 경우, 싱글 페이지 앱을 사용하여 백엔드 서비스에서 주문을 요청하고, 백엔드 서비스에서 Logto 관리 API를 사용하여 판매자 정보를 얻을 수 있습니다.

Logto 관리 API에 액세스하기

기계 간 앱 만들기

먼저 Logto 콘솔에서 기계 간 앱을 만들어야 합니다. "애플리케이션" 탭으로 이동하여 "애플리케이션 생성" 버튼을 클릭합니다. 그런 다음 "기계 간" 카드에서 "시작하기"를 클릭합니다.

기계 간 역할 설정

Logto 관리 API에 액세스하려면 적절한 권한을 가진 기계 간 역할을 만들어야 합니다. Logto 콘솔에서 "역할" 탭으로 이동하고 "역할 생성" 버튼을 클릭합니다. "더 많은 옵션 보기"를 클릭하고 "역할 유형" 섹션에서 "기계 간 앱 역할"을 선택합니다.

이제 "권한 할당" 섹션에 "Logto 관리 API"가 표시됩니다. 모든 권한에 대해 API 리소스를 선택하고 "역할 생성" 버튼을 클릭합니다.

역할이 생성되면 이전 단계에서 만든 기계 간 앱에 할당할 수 있습니다.

액세스 토큰 얻기

이 기사의 단계를 따라 기계 간 앱에 대해 클라이언트 자격 증명 부여를 통해 액세스 토큰을 얻을 수 있습니다. Logto 관리 API의 엔드포인트에 요청을 보내어 액세스 토큰을 테스트하세요.

이제 패턴 1을 사용할 준비가 되었습니다. 액세스 토큰은 짧은 시간 동안만 유효하므로 저장하려는 경우 주기적으로 갱신해야 할 수 있습니다.

또 다른 레이어 추가

사용자가 Logto 관리 API에 직접 접근할 수 없더라도, Logto 관리 API의 힘을 활용하여 서비스에 이를 접목시킬 수 있는 또 다른 레이어를 추가할 수 있습니다.

예를 들어, 싱글 페이지 앱과 백엔드 서비스로 온라인 커뮤니티를 구축하고 있습니다. 팔로워가 가장 많은 상위 10명의 사용자를 로그인한 사용자가 볼 수 있는 기능을 원할 수 있습니다. 이러한 기능을 갖춘 GET /api/top-users 엔드포인트를 만들 것입니다:

엔드포인트가 로그인한 사용자만 접근할 수 있도록 하기 위해 Logto 콘솔에서 "싱글 페이지 앱"을 생성하고 해당 앱에 Logto SDK를 통합할 수 있습니다. 그런 다음 SDK를 사용하여 액세스 토큰을 얻고 엔드포인트에 요청을 보낼 수 있습니다:

백엔드 서비스에서는 먼저 데이터베이스에서 상위 10명의 사용자를 쿼리한 다음 Logto 관리 API를 사용하여 사용자의 정보를 얻을 수 있습니다:

마지막으로 응답을 싱글 페이지 앱에 반환할 수 있습니다:

완전한 시퀀스 다이어그램:

이 흐름에서는 두 유형의 액세스 토큰이 활성화됩니다: 백엔드 서비스가 Logto 관리 API에 액세스하기 위한 것과 싱글 페이지 앱이 백엔드 서비스에 액세스하기 위한 것.

전자는 이전 섹션에서 얻은 액세스 토큰입니다. 후자는 Logto SDK에서 얻을 수 있는 액세스 토큰입니다.

내 싱글 페이지 앱의 액세스 토큰이 JSON Web Token(JWT)이 아닙니다

Logto SDK의 getAccessToken 메서드를 호출할 때 리소스를 지정하지 않으면 액세스 토큰은 userinfo 엔드포인트에서 사용하도록 설계된 불투명한 문자열입니다. JWT를 얻으려면:

  1. Logto 콘솔에서 API 리소스를 정의하세요, 예: https://api.example.com.
  2. Logto SDK의 resources 구성에 API 리소스를 추가하세요, 예: resources: ['https://api.example.com'].
  3. API 리소스를 사용하여 getAccessToken 메서드를 호출하세요, 예: getAccessToken('https://api.example.com').

백엔드 서비스에서 JWT를 유효성 검사하려면 API 요청의 인가 토큰 유효성 검사를 참조하세요.

싱글 페이지 앱에서 JWT는 무엇을 의미합니까?

JWT는 사용자가 로그인하고 API 리소스에 접근하려고 한다는 것을 의미할 뿐입니다. 사용자가 API 리소스에 대한 특정 권한을 가지고 있다는 것을 의미하지는 않습니다. 사용자가 API 리소스에 접근할 것인지 여부는 결정을 내리셔야 합니다.

더 세분화된 접근 제어가 필요하다면 역할 기반 접근 제어 (RBAC)를 사용자에게 적용할 수도 있습니다. 자세한 내용은 🔐 역할 기반 접근 제어 (RBAC)를 참조하세요.

마무리 노트

Logto 관리 API는 여러 시나리오에서 강력하고 유연합니다. 표준 프로토콜의 도움으로 Logto 관리 API를 애플리케이션에 쉽게 통합하여 안전하고 확장 가능한 시스템을 구축할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.