oauth google-chrome-extension salesforce oauth-2.0 salesforce-chatter

oauth - Incrustar Id de cliente en la extensión de Chrome



google-chrome-extension salesforce (3)

Como Matt explicó si está creando una aplicación empaquetada, se verá obligado a incluir la identificación del cliente. Otra solución es escribir la aplicación como una aplicación alojada:

¿Cuál es la diferencia entre las aplicaciones empaquetadas y las alojadas?

El inconveniente de esto es la complejidad añadida de administrar un servidor web. Pero permitirá una mayor seguridad.

Estoy construyendo una extensión de Chrome que interactuará con salesforce-chatter api. Pero para un usuario que usa autenticación de oAuth (flujo de agente de usuario), necesito incrustar mi clave de cliente en mi extensión.

¿Esto causará algún problema de seguridad? ¿O hay una forma de usar OAuth sin incrustar la identificación del cliente en mi extensión?


La identificación del cliente debe incluirse en una solicitud, por lo que el proveedor sabe que la solicitud proviene de usted, como ya señaló @Matt Lacey. Normalmente, el proveedor también emite un secreto de cliente confidencial que también se incluye en la solicitud de token de acceso , por lo que el proveedor puede verificar que su aplicación tenga permiso para usar esa identificación de cliente .

Las extensiones de Chrome se ejecutan en una plataforma abierta y la plataforma no proporciona ningún método para autenticar la extensión contra un servidor (que la fuerza de ventas también debería admitir) o almacenar propiedades de forma segura (sería difícil, si no imposible, en una plataforma abierta). así que mantener el secreto del cliente confidencial por desgracia no es posible.

Como este es un problema común, ya se considera en la especificación OAuth (consulte la sección 10.1 Autenticación del cliente y 10.2 Suplantación del cliente ). Por lo tanto, se requiere que el proveedor haga comprobaciones adicionales, pero del lado del cliente no puede hacer nada para mejorar la seguridad de manera efectiva.

Si desea obtener más información sobre cómo se manejará esto en dispositivos Android en el futuro, consulte mi respuesta aquí .


Debe insertar la ID del cliente en la extensión para que Salesforce sepa qué es la aplicación que intenta autenticarse. Estos ID de cliente están destinados a ser siempre almacenados y pasados ​​al servidor, por lo que siempre que lo guarde de forma segura no debería haber ningún problema.