API 키를 사용하면 Discourse를 다른 시스템과 통합하거나 다양한 작업을 자동화할 수 있습니다. 그러나 강력한 기능에는 그에 상응하는 책임이 따릅니다. 악의적인 사용자가 API 키에 접근할 경우 민감한 데이터에 접근하거나 사이트에 변경 사항을 적용할 수 있습니다. 이를 완화하고 추가적인 보안 계층을 제공하기 위해 이제 스코프를 사용하여 API 키가 수행할 수 있는 작업을 제한할 수 있습니다.
스코프 및 허용된 매개변수
새 API 키를 생성할 때 원하는 스코프를 선택할 수 있습니다. 아이콘에 마우스를 올리면 해당 스코프의 간단한 설명을 볼 수 있습니다. 버튼을 클릭하면 해당 스코프와 관련된 URL을 확인할 수 있습니다.
선택적으로 허용되는 매개변수를 지정할 수도 있습니다. 여러 값을 나열할 때는 쉼표(,)를 사용하세요.
기존 키 마이그레이션
이 기능이 추가되었을 때 기존 키는 “글로벌” 키로 전환되었습니다. 이를 스코프로 마이그레이션하려면 키를 철회하고 새로운 키를 생성해야 합니다.
사용자 정의 스코프 추가
플러그인은 add_api_key_scope 메서드를 호출하여 사용자 정의 스코프를 추가할 수 있습니다:
resource는 관련 스코프를 그룹화하는 데 사용되는 심볼이고, action은 다음 속성을 가진 해시입니다:
actions: 허용된 컨트롤러 작업을 포함하는 목록입니다. 형식은 controller_name#method_name입니다.
methods: 허용할 HTTP 메서드 목록입니다(예: %i[get]). 컨트롤러 작업 대신 HTTP 메서드로 일치시키려면 actions 대신 이 항목을 사용하세요.
저희 사이트의 API를 활용하고 싶은 것 중 하나는, 다른 사이트에서 이메일 주소로 사용자가 존재하는지 확인한 후, 존재한다면 특정 그룹에 추가하는 기능입니다. 해당 사이트(저희 모회사 산하의 다른 사이트)는 신뢰하지만, 가능하다면 필요한 기능에만 접근 권한을 제한하는 것이 현명하다고 생각합니다.