권한 및 리소스 관리
조직을 리소스로 사용하고 조직 템플릿을 적용하여 보호하세요. 예를 들어, 각 조직은 테넌트 내에 자체 문서를 가지고 있습니다. 올바른 역할을 가진 사용자만 해당 문서를 수정하거나 삭제할 수 있습니다.
자세한 내용은 조직 권한을 참고하세요.
조직 역할 기반 접근 제어 (RBAC)를 사용하여 사용자 권한 관리
위와 같이 설정하면 이메일을 통해 초대를 보낼 수 있으며, 초대받은 사용자는 할당된 역할로 조직에 가입할 수 있습니다.
서로 다른 조직 역할을 가진 사용자는 조직 토큰에 서로 다른 스코프(권한)를 가지게 됩니다. 클라이언트 앱과 백엔드 서비스 모두 이러한 스코프를 확인하여 표시할 기능과 허용된 작업을 결정해야 합니다.
조직 토큰의 스코프 업데이트 처리
이 섹션에서는 조직 템플릿 및 인가 (Authorization) 시나리오에 대한 고급 주제를 다룹니다. 이러한 개념에 익숙하지 않다면 먼저 인가 (Authorization) 및 조직 템플릿을 읽어보세요.
조직 토큰의 스코프 업데이트 관리는 다음과 같습니다:
기존 스코프 취소
예를 들어, 관리자를 일반 멤버로 강등하면 해당 사용자의 스코프가 제거되어야 합니다. 이 경우, 캐시된 조직 토큰을 삭제하고 리프레시 토큰으로 새 토큰을 받아오세요. 축소된 스코프는 새로 발급된 조직 토큰에 즉시 반영됩니다.
새로운 스코프 부여
이 경우는 두 가지 시나리오로 나눌 수 있습니다:
인증 시스템에 이미 정의된 새로운 스코프 부여
스코프 취소와 유사하게, 새로 부여된 스코프가 이미 인증 서버에 등록되어 있다면 새 조직 토큰을 발급하면 새로운 스코프가 즉시 반영됩니다.
인증 시스템에 새로 도입된 스코프 부여
이 경우, 사용자의 조직 토큰을 업데이트하기 위해 재로그인 또는 재동의 프로세스를 트리거해야 합니다. 예를 들어, Logto SDK의 signIn 메서드를 호출하세요.
실시간으로 권한 확인 및 조직 토큰 업데이트
Logto는 조직 내에서 실시간 사용자 권한을 가져올 수 있는 Management API를 제공합니다.
GET /api/organizations/{id}/users/{userId}/scopes(API 참조)
사용자의 조직 토큰에 있는 스코프와 실시간 권한을 비교하여 사용자가 승격되었는지 또는 강등되었는지 확인할 수 있습니다.
-
강등된 경우, 캐시된 조직 토큰을 삭제하면 SDK가 자동으로 업데이트된 스코프로 새 토큰을 발급합니다.
const { clearAccessToken } = useLogto();
...
// 실시간으로 가져온 스코프가 조직 토큰의 스코프보다 적을 경우
await clearAccessToken();이 과정에서는 재로그인 또는 재동의 프로세스가 필요하지 않습니다. Logto SDK가 자동으로 새 조직 토큰을 발급합니다.
-
인증 시스템에 새로운 스코프가 도입된 경우, 재로그인 또는 재동의 프로세스를 트리거하여 사용자의 조직 토큰을 업데이트해야 합니다. 예를 들어, React SDK에서는 다음과 같이 할 수 있습니다:
const { clearAllTokens, signIn } = useLogto();
...
// 실시간으로 가져온 스코프에 조직 토큰에 없는 새 스코프가 할당된 경우
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});위 코드는 동의 화면으로 이동을 트리거하고, 사용자의 조직 토큰에 업데이트된 스코프와 함께 앱으로 자동 리디렉션됩니다.