Búsqueda
Borrar búsqueda
Cerrar búsqueda
Aplicaciones de Google
Menú principal

Instalar extensiones de Chrome a través de la política de grupo o de "master_preferences"

Este artículo está dirigido a los administradores de TI que quieran forzar la instalación de extensiones de Chrome en dispositivos Windows administrados por la empresa a través de políticas de usuario de sistema operativo y de equipos.

Las extensiones de Google Chrome son pequeños programas de software que pueden modificar y mejorar las funciones de Google Chrome.

Puedes descargar extensiones de Google Chrome en la galería de extensiones. También puedes aprender a crear tus propias extensiones. Para ello, consulta este artículo sobre las extensiones de Google Chrome.

El procedimiento para forzar la instalación de una extensión se puede realizar de dos formas diferentes: a través de la política de grupo o de "master_preferences".

Forzar la instalación a través de una política de grupo

La forma más sencilla y escalable de implementar una extensión o aplicación web de Chrome es utilizar una política. Este es el método recomendado para implementar extensiones, ya que no se requiere tener el archivo CRX en el equipo. Solamente debe estar disponible en una URL determinada.

Para utilizar este método, configura la política de modo que se fuerce la instalación de la extensión, tal y como se describe en la lista de políticas.

Forzar la instalación a través de "master_preferences"

Las extensiones que deben instalarse se añaden al archivo "master_preferences" que se encuentra junto al archivo "chrome.exe". Esto quiere decir que el archivo CRX puede estar en cualquier ubicación y que no es necesario que las diferentes partes estén en el equipo del usuario ni que se recopilen en una secuencia de comandos de instalación.

Si no estás familiarizado con el archivo "master_preferences" o no sabes cómo funciona, consulta este artículo sobre la configuración de preferencias.

Este método exige algunos requisitos:

  • Este método solo funciona si el usuario puede acceder a la galería de extensiones o a otra URL en la que se encuentre el archivo CRX. Por lo tanto, es posible que no funcione si la extensión del usuario está detrás de un cortafuegos corporativo o de un proxy que restrinja el acceso a la galería.

  • Este método suele funcionar únicamente con las nuevas instalaciones. Es complicado que funcione con una instalación anterior, ya que exige mucha depuración.

Para forzar la instalación de una extensión a través del archivo "master_preferences":

  1. Busca el archivo CRX que quieras instalar. Descárgalo de la galería o crea y recopila uno propio.

  2. Ábrelo con un programa de compresión y busca el archivo "manifest.json" (archivo de texto). Dicho archivo contiene muchos de los valores que necesitarás.

  3. Configura tu archivo "master_preferences" con los valores de "manifest.json".

A continuación se muestra un archivo "master_preferences" de ejemplo, en el que se fuerza la instalación de la extensión Escritorio Remoto de Chrome:


{
 "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
       }
    }
  }
}

A continuación, te ofrecemos un desglose de las líneas del archivo "master_preferences":

  • Después de "settings", el primer valor es el hash de la extensión ("apflmjolhbonpkbkooiamcnenbmbjcbf"). Esto se obtiene al recopilar el archivo CRX; también es el identificador de la extensión en la galería.
  • El valor de "location" debe ser siempre "1".
  • La sección "manifest" debe contener "key", "name", "permissions", "update_url" y "version". Estos valores pueden proceder del manifiesto de la extensión.
  • El valor de "key" proviene de la extensión recopilada, al igual que el hash. Si observas un archivo CRX sin comprimir, encontrarás el parámetro "key" en "manifest.json".
  • La línea "name" puede tener cualquier valor, aunque si tiene una etiqueta provisional, como "(Instalando...)", los usuarios entenderán mejor por qué una extensión tarda más en cargarse.
  • El valor de "permissions" debe ser igual que el de los permisos del archivo CRX de extensión en "update_url". De lo contrario, el usuario recibirá muchos mensajes de advertencia y la extensión no se cargará. Por lo tanto, no puedes especificar un conjunto de permisos vacío, y la extensión real requiere muchos permisos (que dejarán de mostrarse conforme aumenten los privilegios).
  • "update_url" es la URL en la que se encuentra el archivo CRX que, una vez más, se encuentra en "manifest.json".
  • El valor de "version" siempre debería ser "0.0".
  • El valor de "path" siempre debería ser el hash de la extensión seguido de "\\0.0".
  • El valor de "state" siempre debería ser "1".
  • Si alguna de estas reglas no es correcta, es posible que la extensión no se cargue o que el usuario reciba un mensaje de advertencia.

Importante: si la extensión contiene secuencias de comandos que necesitan permisos, también deben incluirse en el archivo "master_preferences". A continuación, te ofrecemos un ejemplo:


{
 "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...)",
              ...
Si la extensión tiene secuencias de comandos de contenido que requieren permisos o acceso, y no lo especificas aquí, esta no se cargará.

Puedes realizar una carga previa de varias extensiones. Para incluir otra extensión basta con añadir otro bloque en la sección "settings":


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

Si la extensión contiene algún permiso que necesite la aprobación del usuario, deberás incluir también una sección de "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/" ]
        },
        ...
      },
      ...
    }
  }
}

Chrome inhabilitará la extensión de manera inmediata si no se incluye una sección de "granted_permissions". El campo "granted_permissions" presenta los campos secundarios siguientes:

  • "api" contiene permisos de API en la clave "permissions" del archivo de manifiesto.
  • "explicit_host" contiene todos los permisos del host en la clave "permissions" del archivo de manifiesto.
  • "scriptable_host" se debería configurar para cualquiera de los hosts de las secuencias de comandos de contenido de la extensión.

La forma más sencilla de generar el campo "granted_permissions" consiste en instalar la extensión de forma local y, a continuación, copiar el archivo "granted_permissions" de la extensión desde el archivo de preferencias de tu perfil de Chrome.

¿Te ha sido útil este artículo?
¿Cómo podemos mejorar esta página?