본문으로 건너뛰기

조직 토큰에서 스코프 업데이트 처리하기

위의 설정을 통해 이메일로 초대장을 보낼 수 있으며, 초대받은 사용자는 할당된 역할로 조직에 가입할 수 있습니다.

서로 다른 조직 역할을 가진 사용자는 조직 토큰에서 서로 다른 스코프(권한)를 갖게 됩니다. 클라이언트 앱과 백엔드 서비스 모두 이러한 스코프를 확인하여 표시할 기능과 허용된 작업을 결정해야 합니다.

앞서 언급했듯이, 조직 템플릿은 조직 권한 또는 조직 수준 API를 보호하는 핵심 접근 제어 계층 역할을 합니다. 인가 (Authorization) 섹션을 반드시 검토하고, 제품에 가장 적합한 인가 모델을 선택하세요.

이 챕터에서는 Logto 조직 토큰에서 권한 관리스코프 변경과 권한 처리에 대한 모범 사례에 중점을 둡니다.

조직 토큰에서 스코프 업데이트 처리하기

조직 토큰에서 스코프 업데이트를 관리하는 방법은 다음과 같습니다:

기존 스코프 해제하기

예를 들어, 관리자를 일반 멤버로 강등하는 경우 해당 사용자의 스코프를 제거해야 합니다. 이럴 때는 캐시된 조직 토큰을 삭제하고 리프레시 토큰으로 새 토큰을 받아오세요. 축소된 스코프는 새로 발급된 조직 토큰에 즉시 반영됩니다.

새로운 스코프 부여하기

이 경우는 두 가지 시나리오로 나눌 수 있습니다:

인증 시스템에 이미 정의된 새로운 스코프 부여하기

스코프 해제와 유사하게, 새로 부여된 스코프가 이미 인증 서버에 등록되어 있다면, 새 조직 토큰을 발급하면 새로운 스코프가 즉시 반영됩니다.

인증 시스템에 새로 도입된 스코프 부여하기

이 경우, 사용자의 조직 토큰을 업데이트하기 위해 재로그인 또는 재동의 과정을 트리거해야 합니다. 예를 들어, 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',
    });

    위 코드는 동의 화면으로 이동을 트리거하며, 사용자의 조직 토큰에 업데이트된 스코프가 반영된 상태로 앱으로 자동 리디렉션됩니다.