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
и это будет развернуто в URLhttps://my.server/resources/myCRX.crx
- имя XML будет
myXML.xml
и это будет развернуто в URLhttps://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>
, вывод пункта 5https://my.server/resources/myCRX.crx
, определенный в пункте 1<myExtensionVersion>
, определенный в файле манифеста
7. Издательское дело
Для правильной настройки среды необходимо опубликовать CRX, созданный в пункте 3, и XML, созданный в пункте 6, по URL-адресам, определенным в пункте 1.
8. Развертывание
Развертывание расширения может быть выполнено в соответствии с этим руководством.
В частности, необходимо добавить в список принудительно установленных приложений и расширение следующую строку:
<myExtensionID>;https://my.server/resources/myXML.xml
Примечание: необходимо заменить следующие записи правильными значениями
<myExtensionID>
, вывод пункта 5https://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.