Chrome WebExtension - частный магазин и корпоративная среда


Я пытаюсь опубликовать расширение Chrome в частном магазине и распространить его с помощью групповой политики.
Для этого я использую следующие ссылки:

Я на 100% уверен, что объект групповой политики настроен правильно (если я использую тот же объект групповой политики для распространения расширения, опубликованного в онлайн-магазине Chrome, он работает).
К сожалению, оба мои частные расширения (строка в Configure the list of force-installed apps and extension раздел: [my_extension_id];[my_xml_url]) и пример расширения (строка: bcanfnleljfidkjhhfknjjiicdonddad;https://sites.google.com/site/pushcrx/privatewebstore/2hrtimer.xml) не установлены в домене, контролируемом машиной.
У меня вопрос: я что-то не так делаю или политики Google Chrome изменились, а приведенные выше примеры устарели?
Спасибо,
Daniele

1 ответ

Решение

Чтобы опубликовать, развернуть и обновить расширение Chrome за пределами Google Chrome Store, необходимо следовать приведенному ниже руководству.

1. Архитектура
В первую очередь необходимо определить имена CRX и XML и URL, где они будут развернуты.
Что касается этого примера:

  • имя CRX будет myCRX.crx и это будет развернуто в URL https://my.server/resources/myCRX.crx
  • имя XML будет myXML.xml и это будет развернуто в URL https://my.server/resources/myXML.xml

2. JSON Manifest
Как указано в этой ссылке update_url (где можно найти обновленный XML) должен содержаться в манифесте JSON: для этого необходимо вставить следующую строку в файл JSON.

{
    [...],
    "update_url": "https://my.server/resources/myXML.xml",
    [...]
}

3. CRX и создание закрытого ключа
Создание CRX и PEM может быть выполнено, следуя этому руководству.
В конце процесса будут созданы два файла (CRX и PEM): после этого необходимо переименовать их в myCRX.crx а также myPEM.pemсоответственно.

4. Извлечение открытого ключа
Извлечение открытого ключа можно выполнить, выполнив следующую команду из папки, в которой находится PEM:

openssl.exe rsa -in myPEM.pem -pubout > myPEM_pub.pem

После этого новый файл, содержащий открытый ключ (названный myPEM_pub.pem) будет создан.

5. Расширение ID извлечения
Извлечение идентификатора расширения может быть выполнено в соответствии с этим руководством.
В частности, необходимо загрузить файл extension_id.py, скопировать его в папку, содержащую файл myPEM_pub.pem, и выполнить из этой же папки следующую команду:

python extension_id.py myPEM_pub.pem

Примечание: если вы используете Python 3, вам нужно изменить строку 94 файла extension_id.py из

with file(first_arg) as f: 

в

with open(first_arg) as f:

Вывод команды будет следующим:

[...]
Extension ID: <myExtensionID>
[...]

6. Создание файла XML
Чтобы правильно развернуть расширение, необходимо создать XML-файл обновления (в данном примере с именем myXML.xml).
В этом случае его содержание будет:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='<myExtensionID>'>
    <updatecheck codebase='https://my.server/resources/myCRX.crx' version='<myExtensionVersion>' />
  </app>
</gupdate>

Примечание: необходимо заменить следующие записи правильными значениями

  • <myExtensionID>, вывод пункта 5
  • https://my.server/resources/myCRX.crx, определенный в пункте 1
  • <myExtensionVersion>, определенный в файле манифеста

7. Издательское дело
Для правильной настройки среды необходимо опубликовать CRX, созданный в пункте 3, и XML, созданный в пункте 6, по URL-адресам, определенным в пункте 1.

8. Развертывание
Развертывание расширения может быть выполнено в соответствии с этим руководством.
В частности, необходимо добавить в список принудительно установленных приложений и расширение следующую строку:

<myExtensionID>;https://my.server/resources/myXML.xml

Примечание: необходимо заменить следующие записи правильными значениями

  • <myExtensionID>, вывод пункта 5
  • https://my.server/resources/myCRX.crx, определенный в пункте 1

9. Обновление - создание CRX
Чтобы обновить расширение, необходимо создать новый пакет CRX с обновленным номером версии (в этом примере <myNewExtensionVersion>).
Создание CRX может быть выполнено в соответствии с этим руководством.
Примечание: для того, чтобы этот процесс работал, необходимо выбрать ключ myPEM.pem, созданный в пункте 3.

10. Обновление - Публикация
Чтобы опубликовать обновление, необходимо переименовать CRX, созданный в пункте 9, в myCRX.crx и изменить номер версии в XML, созданном в пункте 6 (см. ниже).

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='<myExtensionID>'>
    <updatecheck codebase='https://my.server/resources/myCRX.crx' version='<myNewExtensionVersion>' />
  </app>
</gupdate>

После этого последним, что необходимо сделать для выполнения обновления, является публикация CRX и XML по URL-адресам, определенным в пункте 1.

Другие вопросы по тегам