본문으로 건너뛰기

권한 및 리소스 관리

조직을 리소스로 사용하고 조직 템플릿을 적용하여 보호하세요. 예를 들어, 각 조직은 테넌트 내에 자체 문서를 가지고 있습니다. 올바른 역할을 가진 사용자만 해당 문서를 수정하거나 삭제할 수 있습니다.

자세한 내용은 조직 권한을 참고하세요.

조직 역할 기반 접근 제어 (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',
    });

    위 코드는 동의 화면으로 이동을 트리거하고, 사용자의 조직 토큰에 업데이트된 스코프와 함께 앱으로 자동 리디렉션됩니다.