그룹 정책 또는 master_preferences를 통해 Chrome 확장 프로그램 설치

이 도움말은 컴퓨터 및 OS 사용자 정책을 통해 회사에서 관리하는 Windows 기기에 Chrome 확장 프로그램을 강제로 설치하려는 IT 관리자를 위해 작성되었습니다.

Chrome 확장 프로그램은 Chrome의 기능을 수정하고 개선할 수 있는 소규모 소프트웨어 프로그램입니다.

확장 프로그램 갤러리에서 Chrome 확장 프로그램을 다운로드할 수 있습니다. 또는 확장 프로그램을 만드는 방법에 대해 알아보려면 Chrome 확장 프로그램을 참조하세요.

확장 프로그램 강제 설치는 그룹 정책 또는 master_preferences를 사용하는 두 가지 방법 중 한 가지를 선택하여 수행할 수 있습니다.

그룹 정책을 사용하여 강제 설치

정책을 사용하여 확장 프로그램이나 Chrome 웹 앱을 배포하는 것은 가장 쉽고 확장 가능한 방법입니다. 또한 컴퓨터에 CRX 파일이 없어도 되므로 확장 프로그램을 푸시하는 데 권장되는 방법으로, 지정된 URL에서 간단히 사용할 수 있어야 합니다.

이 방법을 사용하려면 여기에 설명된 대로 확장 프로그램을 '강제 설치'하도록 정책을 설정하세요.

master_preferences를 사용하여 강제 설치

강제 설치된 확장 프로그램은 chrome.exe와 같은 디렉토리에 있는 master_preferences 파일에 추가됩니다. 이렇게 되면 CRX 파일이 어느 곳에나 있을 수 있으며 비트가 대상 사용자 시스템에 있지 않아도 되어 설치 스크립트로 패키징할 필요가 없습니다.

master_preferences 파일에 익숙하지 않거나 작동 방법을 모르면 환경설정 구성을 참조하세요.

이 방법을 사용하기 위한 몇 가지 요구사항은 다음과 같습니다.

  • 이 방법은 사용자가 공개 확장 프로그램 갤러리 또는 CRX 파일이 보관되어 있는 다른 URL에 액세스할 수 있는 경우에만 사용할 수 있습니다. 따라서 이 방법은 회사 방화벽 또는 프록시로 인해 갤러리에 대한 사용자의 액세스가 제한되는 경우에는 작동하지 않습니다.

  • 이 방법은 일반적으로 새로 설치하는 경우에만 작동합니다. 기존 설치에 대해 작동하도록 하는 일은 번거로우며 여러 번의 정리 단계가 필요합니다.

master_preferences를 통해 확장 프로그램을 강제 설치하려면 다음 단계를 따르세요.

  1. 설치하려는 CRX 파일을 찾습니다. 갤러리에서 파일을 다운로드하거나 본인이 직접 파일을 만들어서 패키징합니다.

  2. zip 프로그램으로 CRX를 열고 manifest.json 파일(단순한 텍스트 파일임)을 찾습니다. 이 파일에 사용자가 필요로 하는 여러 값이 들어 있습니다.

  3. manifest.json 파일의 값으로 master_preferences를 설정합니다.

다음은 Chrome 원격 데스크톱 확장 프로그램을 강제 설치하는 master_preferences의 예입니다.


{
 "homepage" : "http://dev.chromium.org",
 "homepage_is_newtabpage" : true,
 "extensions": {
    "settings": {
       "gbchcmhmhahfdphkhkmpfmihenigjmpp": {
          "location": 1,
          "manifest": {
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
              oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+
              X97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYx
              saPVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Chrome Remote Desktop",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "gbchcmhmhahfdphkhkmpfmihenigjmpp\\0.0",
          "state": 1
       }
    }
  }
}

이 master_preferences 파일의 각 행에 대한 분석은 다음과 같습니다.

  • 설정에서 첫 번째 값은 확장 프로그램의 해시('apflmjolhbonpkbkooiamcnenbmbjcbf')입니다. 이 값은 CRX 파일을 패키징해서 얻게 되며 갤러리에서 확장 프로그램의 식별자이기도 합니다.
  • ''location''은 항상 1이어야 합니다.
  • 'manifest' 섹션은 'key', 'name', 'permissions', 'update_url' 및 'version'을 포함해야 하며, 확장 프로그램의 매니페스트에서 가져올 수 있습니다.
  • 'key' 값은 해시와 마찬가지로 패키징된 확장 프로그램에 있습니다. 압축 해제된 CRX 파일을 보면 manifest.json에서 'key'를 찾을 수 있습니다.
  • 'name'은 무엇이든 될 수 있으며 '(Installing...)'이라는 임시 태그를 사용하면 확장 프로그램이 로드될 때 추가 시간이 걸리는 이유를 파악하는 데 도움이 됩니다.
  • 'permissions'는 'update_url'의 확장 프로그램 CRX 파일의 사용 권한과 같아야 합니다. 그렇지 않은 경우 경고가 여러 번 표시되며 로드되지 않습니다. 따라서 권한 배열을 지정하고 비울 수 없으며 실제 확장 프로그램은 많은 사용 권한을 필요로 하는데 이 경우 에스컬레이션 권한이 숨겨집니다.
  • 'update_url'은 CRX가 있는 URL이며, manifest.json 파일 내에 있습니다.
  • 'version'은 항상 '0.0'이어야 합니다.
  • 'path'는 항상 '\\0.0'이 뒤에 따라오는 확장 프로그램의 해시여야 합니다.
  • 'state'는 항상 1이어야 합니다.
  • 이러한 규칙이 지켜지지 않으면 확장 프로그램이 로드되지 않거나 사용자에게 경고가 표시될 수 있습니다.

중요: 사용 권한이 필요한 콘텐츠 스크립트가 확장 프로그램에 포함된 경우, 스크립트가 master_preferences에도 나열되어야 합니다. 다음을 예로 들어 보겠습니다.


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
              "content_scripts": [ {
                "all_frames": true,
                "js": [ "script.js" ],
                "matches": [ "http://*/*", "https://*/*" ],
                "run_at": "document_start"
              } ],
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
             oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+X
             97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYxsa
             PVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (Installing...)",
              ...
확장 프로그램에 사용 권한/액세스가 필요한 콘텐츠 스크립트가 있는데 여기에서 이를 지정하지 않는 경우 확장 프로그램이 로드되지 않습니다.

다양한 확장 프로그램을 미리 로드할 수 있습니다. 'settings' 아래에 블록을 추가하기만 하면 부가 확장 프로그램을 간단히 추가할 수 있습니다.


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {  <-- extension one
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": {  <-- extension two
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

확장 프로그램에 사용자 승인이 필요한 권한이 있는 경우 다음과 같이 granted_permissions 섹션도 포함해야 합니다.


{
  "extensions": {
    "settings": {
      "mihcahmgecmbnbcchbopgniflfhgnkff": {
        "location": 1,
        "manifest": {
          ...
        },
        "granted_permissions": {
          "api": [ "tabs" ],
          "explicit_host": [ "http://*.google.com/*", "https://*.google.com/" ],
          "scriptable_host": [ "http://example.com/" ]
        },
        ...
      },
      ...
    }
  }
}

granted_permissions 섹션을 포함하지 않으면 Chrome이 즉시 확장 프로그램의 사용을 중지합니다. granted_permissions 필드에는 다음과 같은 하위 필드가 있습니다.

  • 'api'는 매니페스트 'permissions' 키에 API 권한을 포함합니다.
  • 'explicit_host'는 매니페스트 'permissions' 키에 임의의 호스트 권한을 포함합니다.
  • 'scriptable_host'는 확장 프로그램 콘텐츠 스크립트에서 모든 호스트로 설정되어야 합니다.

granted_permissions 필드를 생성하는 가장 쉬운 방법은 로컬로 확장 프로그램을 설치한 다음 Chrome 프로필의 환경설정 파일에서 확장 프로그램의 granted_permissions를 복사하는 것입니다.

이 도움말이 도움이 되었나요?
어떻게 하면 개선할 수 있을까요?