본문으로 건너뛰기

조직 템플릿 구성

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' });