본문으로 건너뛰기

Logto Management API로 앱 서비스 설정하기

Logto는 강력한 Management API를 제공하여, 앱 내에서 자체 조직 플로우를 생성하고 맞춤화할 수 있습니다. 이 API의 작동 방식을 이해하는 것은 맞춤형 설정을 설계하는 데 핵심적입니다. 아래는 Management API를 통합하여 조직 경험을 구현하는 기본 단계와 개요입니다.

기본 사항을 이미 알고 있다면 튜토리얼로 바로 넘어가도 됩니다. 설정에 익숙해진 후에는 추가 API를 탐색하여 나머지 플로우를 비즈니스 요구에 맞게 조정할 수 있습니다.

기계 간 연결(M2M) 설정하기

Logto는 **기계 간 (M2M) 인증 (Authentication)**을 사용하여 백엔드 서비스를 Logto Management API 엔드포인트에 안전하게 연결합니다. 백엔드 서비스는 Management API를 사용하여 조직 생성, 멤버 추가 또는 제거 등 조직 관련 작업을 처리할 수 있습니다.

이 과정은 다음과 같습니다:

  1. Logto 콘솔에서 기계 간 (M2M) 앱을 생성합니다.
M2M 앱 세부 정보
  1. Logto에서 **M2M 액세스 토큰 (Access token)**을 획득합니다. 자세히 알아보기.
  2. 백엔드 서비스에서 Logto Management API를 호출합니다. 예를 들어, 모든 조직을 나열하려면:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

앱 서버 보호하기

최종 사용자가 직접 일부 조직 작업을 수행할 수 있으므로, 최종 사용자와 앱 서버 사이에 인가 (Authorization) 계층을 추가하는 것이 중요합니다. 이 계층은 사용하는 Logto Management API 엔드포인트와 제품의 API 구조에 따라 전역 또는 조직 단위로 적용할 수 있습니다. 서버는 모든 요청을 중재하고, 사용자의 조직 토큰 (Organization token)과 필요한 스코프 (Scope)를 검증한 후에만 서버에 저장된 M2M 자격 증명을 사용하여 Management API를 호출해야 합니다.

사용자가 조직 토큰 (Organization token)을 제시하여 작업(예: 조직 생성)을 요청하면, 서버는 먼저 토큰의 스코프 (Scope)를 검증합니다. 토큰에 org:create와 같은 필요한 스코프가 포함되어 있다면 요청을 인가 (Authorize)하고, M2M 플로우를 통해 Logto Management API를 호출하여 조직을 생성합니다.

토큰에 필요한 스코프가 없다면 403 Forbidden을 반환하고 M2M 로직을 건너뜁니다. 이를 통해 적절한 권한이 없는 사용자가 조직을 생성하지 못하도록 보장할 수 있습니다.

아래는 일반적인 인가 (Authorization) 패턴입니다.

조직 권한 사용하기

먼저, 이전 섹션에서 조직 권한과 역할을 조직 템플릿에 정의했는지 확인하세요.

그런 다음, Logto 설정에 UserScope.Organizations (값: urn:logto:organization)이 포함되어 있는지 확인하세요. React SDK 예시는 다음과 같습니다:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Logto 엔드포인트
appId: '40fmibayagoo00lj26coc', // 앱 ID
resources: [
'https://my.company.com/api', // 글로벌 API 리소스 식별자
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // 조직 토큰 (Organization token) 요청
],
};

이렇게 하면 getOrganizationToken(organizationId)를 호출할 때, 클라이언트 SDK가 사용자에게 할당된 조직 권한이 포함된 조직 토큰 (Organization token)을 요청하게 됩니다. 백엔드 서비스는 이 토큰을 검증하고, 해당 권한에 따라 후속 요청을 인가 (Authorize)할 수 있습니다.

조직 단위(비 API) 권한 보호에 대한 자세한 내용은 전체 가이드를 참고하세요.

API 단위 권한 사용하기

API 리소스와 권한이 전역적으로 등록되어 있지만, 역할은 조직 단위로 정의된 경우에 해당합니다(조직 템플릿에서 조직 역할에 API 단위 권한을 할당할 수 있습니다).

구현 방식은 이전 섹션과 동일합니다. 항상 조직 ID를 제공하고 getOrganizationToken(organizationId)를 호출하여 조직 토큰 (Organization token)을 받아야 하며, 그렇지 않으면 조직 권한이 포함되지 않습니다.

조직 단위 API 권한 보호에 대한 자세한 내용은 전체 가이드를 참고하세요.

글로벌 RBAC 사용하기

이 경우, Logto Management API를 사용하여 시스템 수준 접근 제어를 구현할 수 있습니다.

멀티 테넌트 환경에서는 슈퍼유저 또는 슈퍼 관리자 역할을 두는 것이 일반적입니다. 예를 들어, Logto로 SaaS 플랫폼을 구축하는 경우, Logto 콘솔에 로그인하지 않고도 자체 앱 내에서 모든 클라이언트 조직을 직접 관리할 수 있는 슈퍼유저가 필요할 수 있습니다.

이 슈퍼유저는 단일 조직 범위를 넘어서는 시스템 전체 권한이 필요한 대량 조직 생성 또는 삭제와 같은 상위 작업을 수행할 수 있습니다. 이를 위해 Logto에 API 리소스를 등록하고, Logto Management API를 활용하며, 글로벌 RBAC로 이러한 권한을 관리하세요.

RBAC의 접근 제어 통합 및 관리에 대한 자세한 내용은 전체 가이드를 참고하세요.