본문으로 건너뛰기

앱 수준 접근 제어 (App-level access control)

앱 수준 접근 제어를 사용하면 특정 애플리케이션에 로그인할 수 있는 사용자를 제한할 수 있습니다. Logto 테넌트에 등록된 모든 사용자가 모든 앱에 접근할 수 있도록 허용하는 대신, 각 애플리케이션에 대해 사용자, 사용자 역할, 조직 또는 조직 역할을 기반으로 허용 규칙을 만들 수 있습니다.

앱 수준 접근 제어를 사용해야 하는 경우:

  • 내부 앱을 직원 또는 관리자에게만 제공하고 싶을 때
  • 보호된 앱을 선택된 사용자 그룹으로 제한하고 싶을 때
  • 특정 고객 또는 파트너만 서드파티 OIDC / OAuth 애플리케이션에 접근할 수 있도록 허용하고 싶을 때
  • 새로운 애플리케이션을 전체 공개 전에 파일럿 그룹에 먼저 배포하고 싶을 때

작동 방식

앱 수준 접근 제어가 비활성화된 경우, Logto 테넌트에 등록된 모든 사용자가 해당 애플리케이션에 로그인할 수 있습니다.

활성화된 경우, 사용자는 최소 하나의 구성된 규칙과 일치해야만 애플리케이션에 접근할 수 있습니다. 사용자가 어떤 규칙과도 일치하지 않으면, Logto는 로그인 시도를 거부하고 애플리케이션이 토큰을 받기 전에 접근 거부 페이지를 표시합니다.

앱 수준 접근 제어는 인가 (Authorization) 플로우 및 토큰 갱신 시점에 평가됩니다. 즉:

  • 접근 권한이 없는 사용자는 애플리케이션에 로그인 완료 전에 차단됩니다.
  • 기존 앱 권한은 리프레시 토큰을 사용하여 새 토큰을 요청할 때 다시 확인됩니다.
  • 규칙을 업데이트하면 사용자의 글로벌 Logto 세션을 변경하지 않고, 향후 인가 및 토큰 갱신 검사에 영향을 줍니다.
노트:

앱 수준 접근 제어는 역할 기반 접근 제어 (RBAC)와 별개입니다. RBAC는 인증 (Authentication) 이후 사용자가 무엇을 할 수 있는지 액세스 토큰의 권한(스코프)으로 제어합니다. 앱 수준 접근 제어는 사용자가 특정 애플리케이션에 접근할 수 있는지 자체를 제어합니다.

규칙 유형

다음과 같은 허용 규칙을 구성할 수 있습니다:

규칙 유형허용 내용
사용자특정 사용자가 애플리케이션에 접근할 수 있습니다.
사용자 역할선택된 사용자 역할에 할당된 사용자가 애플리케이션에 접근할 수 있습니다.
조직선택된 조직의 현재 및 미래 모든 구성원이 애플리케이션에 접근할 수 있습니다.
조직 역할선택된 조직의 선택된 조직 역할을 가진 구성원이 애플리케이션에 접근할 수 있습니다.

규칙은 누적 적용됩니다. 사용자는 하나의 규칙만 일치해도 애플리케이션에 접근할 수 있습니다.

예를 들어, 한 애플리케이션에 "지원팀" 사용자 역할 규칙과 "BigTree - Admin" 조직 역할 규칙이 모두 있다면, 사용자가 지원팀 역할에 할당되어 있거나 BigTree 조직에서 Admin 역할을 가지고 있다면 애플리케이션에 접근할 수 있습니다.

앱 수준 접근 제어 구성하기

  1. 콘솔 > 애플리케이션으로 이동하세요.
  2. 접근을 제한할 애플리케이션을 엽니다.
  3. 규칙 탭으로 이동합니다.
  4. 사용자 지정 허용 규칙에서 규칙 추가를 클릭합니다.
  5. 규칙 유형을 선택하세요:
    • 사용자
    • 사용자 역할
    • 조직
    • 조직 역할
  6. 애플리케이션에 접근을 허용할 사용자, 역할, 조직 또는 조직 역할을 선택하세요.
  7. 접근 제어 활성화를 켜세요.
  8. 변경 사항 저장을 클릭하세요.
important:

접근 제어를 활성화하기 전에 최소 하나의 허용 규칙을 구성해야 합니다. 이는 실수로 아무도 애플리케이션에 접근할 수 없게 되는 것을 방지합니다.

규칙 수정 또는 제거하기

애플리케이션의 규칙 탭에서 허용 목록을 업데이트할 수 있습니다.

  • 규칙을 더 추가하려면 규칙 테이블 아래의 다른 규칙 추가를 클릭하세요.
  • 규칙을 제거하려면 해당 규칙 행의 삭제 버튼을 클릭하고 작업을 확인하세요.
  • 규칙을 추가하거나 제거한 후 변경 사항 저장을 클릭하여 업데이트를 적용하세요.

접근 제어가 활성화된 경우, Logto는 최소 하나의 규칙이 남아 있어야 합니다. 모든 규칙을 제거하려면 먼저 접근 제어 활성화를 끄고 변경 사항을 저장하세요.

규칙 변경이 사용자에게 미치는 영향

앱 수준 접근 제어는 사용자의 글로벌 Logto 세션을 종료하지 않습니다. 사용자는 여전히 Logto 및 다른 애플리케이션에 로그인된 상태일 수 있습니다.

제한되는 애플리케이션의 경우:

  • 더 이상 어떤 허용 규칙과도 일치하지 않는 사용자는 다음에 애플리케이션의 인가 (Authorization) 플로우를 진행할 때 차단됩니다.
  • 사용자가 이미 앱 관련 권한을 가지고 있다면, 애플리케이션이 리프레시 토큰을 사용하여 새 토큰을 요청할 때 Logto가 규칙을 다시 확인합니다. 사용자가 더 이상 접근 권한이 없으면 Logto는 토큰 요청을 거부합니다.

이 방식은 접근 결정을 애플리케이션에만 연결하면서, 관련 없는 애플리케이션에는 불필요한 영향을 주지 않습니다.

서드파티 앱 권한과의 관계

서드파티 애플리케이션의 경우, 앱 수준 접근 제어와 권한 관리는 서로 다른 문제를 해결합니다:

  • 앱 수준 접근 제어는 사용자가 서드파티 애플리케이션에 로그인할 수 있는지 결정합니다.
  • 권한 관리는 서드파티 애플리케이션이 동의 화면에서 요청할 수 있는 사용자 프로필 스코프, API 리소스 스코프, 조직 스코프를 결정합니다.

둘 다 구성된 경우, 사용자는 서드파티 애플리케이션을 인가하기 전에 앱 수준 접근 제어를 통과해야 합니다.

보호된 앱과의 관계

보호된 앱의 경우, 앱 수준 접근 제어는 Logto 인증 (Authentication) 레이어를 통과하여 보호된 오리진 서버에 도달할 수 있는 사용자를 제한합니다.

보호된 앱의 인증 (Authentication) 규칙은 어떤 경로가 인증 (Authentication)을 요구하는지 결정합니다. 앱 수준 접근 제어는 인증된 Logto 사용자 중에서 보호된 앱 애플리케이션에 접근할 수 있는 사용자를 결정합니다.

모범 사례

  • 가능하다면 사용자 역할 또는 조직 역할 규칙부터 시작하세요. 개별 사용자 목록보다 유지 관리가 쉽습니다.
  • 조직의 모든 구성원이 앱에 접근해야 한다면 조직 규칙을 사용하세요.
  • 조직 내 특정 구성원만 앱에 접근해야 한다면 조직 역할 규칙을 사용하세요.
  • 사용자의 역할 변경, 조직 가입 또는 탈퇴 시 접근 규칙을 검토하세요.
  • RBAC 권한과 앱 수준 접근 제어를 명확히 구분하세요: 앱 수준 접근 제어는 "이 사용자가 이 앱에 접근할 수 있는가?"에 답하고, RBAC는 "이 사용자가 API 또는 조직 기능에 접근한 후 무엇을 할 수 있는가?"에 답합니다.