API 만들기
API 만들기액세스 제어 정의

액세스 제어 정의

액세스 제어 목록을 통해 스키마의 모든 필드와 디렉티브에 액세스할 수 있는 사용자를 관리할 수 있습니다.

Gato GraphQL에는 다음과 같은 액세스 제어 규칙이 포함되어 있습니다:

  • 액세스 비활성화
  • 사용자가 로그인 또는 로그아웃 상태인 경우 액세스 허용
  • 사용자가 특정 역할을 보유한 경우 액세스 허용
  • 사용자가 특정 기능을 보유한 경우 액세스 허용
  • 방문자가 허용된 IP 주소에서 접속하는 경우 액세스 허용

요청된 쿼리(커스텀 엔드포인트를 통해 실행되거나 퍼시스티드 쿼리로 실행되는 경우 모두)에 액세스 제어 목록에 추가된 필드 또는 디렉티브가 하나 이상 포함된 경우, 해당 규칙이 평가됩니다. 규칙 중 하나라도 충족되지 않으면 해당 필드 또는 디렉티브에 대한 액세스가 거부됩니다.

설정은 액세스 제어 목록(ACL)을 통해 생성되며, 스키마 설정을 통해 커스텀 엔드포인트 및 퍼시스티드 쿼리에 적용됩니다.

모든 액세스 제어 목록 접근

플러그인 메뉴에서 "Access Control Lists"를 클릭하면 생성된 모든 액세스 제어 목록이 표시됩니다:

관리자 화면의 액세스 제어 목록
관리자 화면의 액세스 제어 목록

새 액세스 제어 목록 만들기

"Add New Access Control List" 버튼을 클릭하여 WordPress 편집기를 엽니다:

액세스 제어 목록 만들기

액세스 제어 목록에 제목을 지정하고, 작업·필드·디렉티브가 포함된 항목을 추가하고, 적용할 규칙을 설정한 다음 공개 여부(공개 또는 비공개)를 정의합니다:

액세스 제어 목록 만들기

준비가 되면 Publish 버튼을 클릭하세요. 그러면 새 액세스 제어 목록이 스키마 설정에서 사용 가능해집니다.

액세스 제어 항목

모든 액세스 제어 목록에는 하나 이상의 항목이 포함되며, 각 항목에는 다음 요소가 있습니다:

  • 액세스를 허용하거나 거부할 작업
  • 액세스를 허용하거나 거부할 필드
  • 액세스를 허용하거나 거부할 디렉티브
  • 검증할 규칙 목록

액세스 제어 항목

인터페이스에서 필드 선택

타입의 필드 외에도 인터페이스에서 필드를 선택할 수 있습니다. 이 경우 액세스 제어 검증은 해당 인터페이스를 구현하는 모든 타입에 대해 수행됩니다.

인터페이스에서 필드 선택
인터페이스에서 필드 선택

공개/비공개 모드

"Public/Private Schema" 모듈이 활성화된 경우, 특정 필드 또는 디렉티브에 대한 액세스가 거부될 때 API가 동작하는 방식이 2가지 있습니다:

  • 공개 모드: 액세스가 거부된 이유를 나타내는 오류 메시지를 사용자에게 제공
  • 비공개 모드: 필드 또는 디렉티브가 존재하지 않음을 나타내는 오류 메시지 표시

이 모듈이 활성화되지 않은 경우 기본 동작은 공개입니다.

세분화된 공개/비공개 모드

"Public/Private Schema" 모듈의 "Enable granular control?" 옵션on으로 설정된 경우, 항목에 추가 요소가 생깁니다:

  • Public/Private Schema: 액세스 거부 시 동작
개별 Public/Private 스키마 모드
개별 Public/Private 스키마 모드

액세스 제어 목록 설명

문서 설정 패널의 "Excerpt" 필드를 사용하여 액세스 제어 목록에 설명을 추가하세요.

자세한 내용은 가이드 "API에 설명 추가"를 참조하세요.

액세스 제어 목록 사용

ACL을 만든 후, 해당 스키마 설정을 편집하고 "Access Control Lists" 블록 아래 목록에서 ACL을 선택하여 커스텀 엔드포인트 또는 퍼시스티드 쿼리에서 사용할 수 있습니다.

스키마 설정에서 액세스 제어 목록 선택
스키마 설정에서 액세스 제어 목록 선택

설정을 커스터마이즈하지 않는 경우, 설정 페이지의 "Access Control" 탭에서 정의된 기본 액세스 제어 목록이 사용됩니다:

설정 페이지에서 기본 액세스 제어 목록 선택