권한 선언

대부분의 확장 프로그램 API 및 기능을 사용하려면 매니페스트의 권한 입력란에 확장 프로그램의 인텐트를 선언해야 합니다. 확장 프로그램은 각 매니페스트 키를 사용하여 지정된 다음 권한 카테고리를 요청할 수 있습니다.

"permissions"
알려진 문자열 목록의 항목을 포함합니다. 변경 시 경고가 트리거될 수 있습니다.
"optional_permissions"
설치 시점이 아닌 런타임에 사용자가 부여합니다.
"content_scripts.matches"
콘텐츠 스크립트가 하나 이상의 호스트에 삽입할 수 있는 일치 패턴을 하나 이상 포함합니다. 변경 시 경고가 트리거될 수 있습니다.
"host_permissions"
하나 이상의 호스트에 액세스 권한을 부여하는 하나 이상의 일치 패턴을 포함합니다. 변경 시 경고가 트리거될 수 있습니다.
"optional_host_permissions"
설치 시점이 아닌 런타임 시 사용자가 부여합니다.

권한을 사용하면 확장 프로그램이 멀웨어에 의해 손상된 경우 피해를 줄이는 데 도움이 됩니다. 경고가 있는 권한에 설명된 대로 일부 권한 경고는 설치 전 또는 런타임에 사용자의 동의를 위해 표시됩니다.

확장 프로그램의 기능이 허용하는 모든 범위에서 선택적 권한을 사용하여 사용자에게 리소스 및 데이터 액세스에 대한 정보에 입각한 제어를 제공하는 것이 좋습니다.

API에 권한이 필요한 경우 해당 문서에서 권한을 선언하는 방법이 설명되어 있습니다. 예를 보려면 Storage API를 참조하세요.

매니페스트

다음은 매니페스트 파일의 권한 섹션 예입니다.

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

호스트 권한

호스트 권한은 확장 프로그램이 URL의 일치 패턴과 상호작용하도록 허용합니다. 일부 Chrome API에는 자체 API 권한 외에 호스트 권한도 필요하며 각 참조 페이지에 설명되어 있습니다. 예를 들면 다음과 같습니다.

경고가 있는 권한

확장 프로그램에서 여러 권한을 요청하고 권한 중 다수가 설치 시 경고를 표시하면 다음 예와 같이 사용자에게 경고 목록이 표시됩니다.

설치 시 확장 프로그램 권한 경고

사용자는 경고가 제한적으로 제공되거나 권한이 설명되었을 때 확장 프로그램을 신뢰할 가능성이 높습니다. 경고가 표시되지 않도록 하려면 선택적 권한이나 덜 강력한 API를 구현하는 것이 좋습니다. 경고에 관한 권장사항은 권한 경고 가이드라인을 참고하세요. 권한 참조 목록에는 특정 경고가 적용되는 권한과 함께 나열됩니다.

매니페스트 파일의 "host_permissions""content_scripts.matches" 필드에서 일치 패턴을 추가하거나 변경하면 경고도 트리거됩니다. 자세한 내용은 권한 업데이트를 참고하세요.

액세스 허용

확장 프로그램이 file:// URL에서 실행되거나 시크릿 모드로 작동해야 하는 경우 사용자가 세부정보 페이지에서 확장 프로그램에 액세스 권한을 부여해야 합니다. 확장 프로그램 관리에서 세부정보 페이지를 여는 방법을 확인할 수 있습니다.

파일 URL 및 시크릿 모드 페이지에 대한 액세스 허용

  1. Chrome에서 확장 프로그램 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
  2. 확장 프로그램 관리를 선택합니다.

    확장 프로그램 컨텍스트 메뉴
    확장 프로그램 메뉴
  3. 파일 URL 또는 시크릿 모드에 대한 액세스를 사용 설정하려면 아래로 스크롤합니다.

    확장 프로그램 세부정보 페이지에서 파일 URL 및 시크릿 모드 허용
    파일 URL 및 시크릿 모드에 대한 액세스가 사용 설정되었습니다.

사용자가 액세스를 허용했는지 확인하려면 extension.isAllowedIncognitoAccess() 또는 extension.isAllowedFileSchemeAccess()를 호출하면 됩니다.