Pregunta

Estoy construyendo una extensión de cromo que interactuará con la API de Salesforce-Chatter.Pero para un usuario que usa la autenticación de OAUTH (Flow Agent Flow), necesito incrustar la clave de mi cliente en mi extensión.

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

¿Fue útil?

Solución

El ID de cliente tiene que incluirse en una solicitud, por lo que el proveedor sabe que la solicitud vino de usted, como se señaló @matt Lacey. Normalmente, el proveedor también emite un secreto del cliente confidencial que se incluye adicionalmente en la solicitud Access Token , por lo que el proveedor puede verificar que su aplicación se le permita usarlo ID de cliente .

Las extensiones de cromo se ejecutan en una plataforma abierta y la plataforma en sí no proporciona métodos para autenticar la extensión contra un servidor (que Salesforce también tendría que soportar) o almacenar las propiedades de forma segura (sería difícil, si no imposible en una abierta. Plataforma), por lo que, por lo tanto, no es posible mantener el secreto del cliente confidencial.

Como este es un problema común, ya se considera en la especificación de OAUTH (consulte Sección 10.1 Autenticación del cliente y 10.2 Impersonación del cliente ). Por lo tanto, el proveedor debe realizar cheques adicionales, pero en el lado del cliente no puede hacer nada para mejorar efectivamente la seguridad.

Si desea una mayor idea de cómo se manejará esto en dispositivos Android en el futuro, consulte mi respuesta aquí .

Otros consejos

Debe incrustar la ID de cliente en la extensión para que Salesforce sepa qué es la aplicación que está tratando de autenticarse.Estas identificaciones de cliente están destinadas a ser siempre almacenadas y pasadas al servidor, por lo que mientras esté almacenando de manera segura, no debería haber un problema.

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

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

El inconveniente de esta es la complejidad adicional de administrar un servidor web.Pero permitirá una mayor seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top