본문으로 건너뛰기

조직 템플릿 구성

Logto Console을 통해 조직 템플릿 기능을 구성하는 과정을 살펴보겠습니다.

먼저, Console > Organization template로 이동하세요. 조직 템플릿은 두 부분으로 구성되어 있습니다: 조직 역할과 조직 권한. 조직 템플릿은 여러 조직에 대한 공유 접근 제어 정책 (권한 및 역할)을 정의합니다.

Logto Console을 통한 구성​

조직 권한 생성​

조직 권한은 조직 템플릿의 핵심 부분입니다. 이러한 권한은 제품 내의 조직을 위해 특별히 설계되었습니다. 이를 관리하는 방법은 다음과 같습니다:

  • 조직 권한 탭 찾기: "조직 권한" 탭으로 이동하여 기존 권한을 확인하세요.
  • 추가, 삭제 및 편집: 새로운 조직 권한을 쉽게 추가하고, 필요 없는 권한을 삭제하며, 기존 권한을 필요에 따라 편집할 수 있습니다.

조직 역할 생성​

Logto는 사용자 / 시스템 수준의 RBAC와 동일하게 두 가지 유형의 조직 역할을 지원합니다:


Logto는 시스템의 구조에 맞게 다양한 방식으로 조직 역할을 정의할 수 있습니다:

옵션 1: 조직 권한만 포함된 조직 역할

  • 사용 시기: 사용자 / 시스템 엔드포인트와 조직 엔드포인트가 분리되어 있는 경우.
  • 설명: 제품의 기술 아키텍처와 API 설계가 사용자 / 시스템 수준 리소스와 조직 리소스를 명확히 구분하는 경우 가장 간단한 접근 방식입니다. 조직 역할에는 조직을 위해 정의한 권한만 포함됩니다.

옵션 2: API 권한만 포함된 조직 역할

  • 사용 시기: 사용자 / 시스템 수준과 조직 수준의 접근 제어가 동일한 엔드포인트에서 처리되는 경우.
  • 설명: 모든 권한을 통합된 API 리소스로 관리하고자 할 때 선택하세요.

옵션 3: 조직 역할에 혼합된 API 및 조직 권한

  • 사용 시기: 사용자 / 시스템 수준과 조직 수준을 위한 별도의 엔드포인트가 정의되어 있지만, 일부 사용자 역할이 사용자 수준 및 조직 수준 권한의 혼합을 필요로 하는 경우.
  • 설명: 가장 유연한 옵션을 제공하지만 관리하기 가장 복잡할 수 있습니다.

Logto Management API를 통한 구성​

Console에서 할 수 있는 모든 작업은 Management API를 통해서도 수행할 수 있습니다. 여기에는 조직 템플릿을 관리하여 조직 권한 및 역할을 생성, 삭제 또는 편집하는 것이 포함됩니다.

전체 기능 목록은 API 참조를 참조하세요:

Logto Management API - 조직 역할

Logto Management API - 조직 권한

Logto Management API를 사용하면 조직 관리자가 스스로 조직을 생성할 수 있는 등 맞춤형 조직 경험을 만들 수 있습니다. 더 많은 조직 수준 기능 및 관리를 활성화하려면 이 섹션을 확인하세요.

멤버 권한 변경 처리​

API RBAC와 유사하게, 멤버 권한은 세션 중에 변경될 수 있습니다. 예를 들어, 새로운 역할이 할당되거나 기존 역할 권한이 수정될 수 있습니다.

멤버 권한이 변경되면 어떻게 될까요? 두 가지 경우가 있습니다.

시스템에 새로운 권한이 도입되지 않은 경우​

현재 조직 액세스 토큰 (즉, 조직 토큰)은 사용자의 조직 권한이 변경된 후에도 만료될 때까지 유효합니다. 그러나 새로운 권한은 이후의 조직 토큰에 반영되며, 취소된 권한은 생략됩니다.

노트:

조직 토큰은 일반 액세스 토큰과 달리 변경할 수 없는 고정된 만료 시간을 가집니다.

주기적으로 Logto Management API 엔드포인트를 호출하거나 장기 연결 (예: WebSocket 사용)을 설정하여 사용자의 조직 권한을 동적으로 가져오세요. 변경 사항을 감지하면 기존 조직 토큰을 지우고 새로 발급된 토큰에 조직 권한 스코프 변경 사항이 자동으로 반영됩니다.

curl \
-X GET https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/scopes \
-H "Authorization: Bearer $ORGANIZATION_TOKEN"

권한 변경이 감지되면 먼저 저장소에서 조직 토큰을 지우고, SDK 메서드 getOrganizationToken(organizationId)를 호출하여 새 토큰을 획득하세요. 새로 발급된 조직 토큰에는 권한 변경 사항이 반영되어야 합니다.

시스템에 새로운 권한이 도입되고 멤버에게 할당된 경우​

이 경우, 조직 템플릿에 새로운 권한이 도입됩니다. 이 경우, Logto 클라이언트를 초기화할 때 새로 도입된 권한 스코프를 포함해야 합니다. 예:

new LogtoClient({
appId: 'your-app-id',
endpoint: 'your-logto-endpoint',
scopes: [
'urn:logto:scope:organizations',
// ... 기존 조직 권한 스코프,
'new-organization-permission-scope',
],
});

둘째, 각 클라이언트 애플리케이션은 사용자에게 다시 동의하거나 다시 로그인하여 새로운 권한 변경을 수신해야 합니다. 그러면 새로운 권한 스코프가 새로운 조직 토큰에 반영됩니다.

다시 동의하는 코드 예제:

signIn({ redirectUri: 'your-redirect-url', prompt: 'consent' });