Pergunta

Eu estou construindo uma extensão cromada que irá interagir com a API do Salesforce-Chatter.Mas para um usuário usando a autenticação OAuth (USER Agent Flow), preciso incorporar minha chave do cliente na minha extensão.

Isso fará com que qualquer problema de segurança?Ou existe uma maneira de usar oauth sem incorporar o ID do cliente em minha extensão?

Foi útil?

Solução

O ID do cliente deve ser incluído em uma solicitação, para que o provedor saiba que a solicitação veio de você, como @Matt Lacey já apontou. Normalmente, o provedor também emite um segredo de cliente confidencial que é incluído adicionalmente na solicitação token de acesso , portanto, o provedor pode verificar se o seu aplicativo é permitido usar isso ID do cliente .

Extensões Chrome Executar em uma plataforma aberta e a própria plataforma não fornece métodos para autenticar a extensão em relação a um servidor (que o Salesforce também teria que suportar) ou armazenar propriedades com segurança (seria difícil, se não é impossível plataforma), portanto, manter o segredo cliente Confidential é infelizmente possível.

Como este é um problema comum, já é considerado na especificação do OAuth (veja Seção 10.1 Autenticação do Cliente e 10.2 Impressionação do cliente ). O provedor é, portanto, obrigado a fazer cheques adicionais, mas no lado do cliente você não pode fazer nada para melhorar efetivamente a segurança.

Se você quiser mais uma visão sobre como isso será tratado em dispositivos Android no futuro, confira minha resposta aqui .

Outras dicas

Você tem que incorporar o ID do cliente na extensão para permitir que o Salesforce saiba qual é o aplicativo que está tentando autenticar.Esses IDs de clientes são destinados a sempre serem armazenados e passados para o servidor, por isso desde que você esteja armazenando de maneira segura, não deve haver um problema.

como Matt explicado se você estiver criando um aplicativo embalado, você será forçado a incluir o ID do cliente.Outra soluções é escrever o aplicativo como um aplicativo hospedado:

Qual é a diferença entre aplicativos embalados e aplicativos hospedados?

A desvantagem desta é a complexidade adicional de gerenciar um servidor da Web.Mas permitirá maior segurança.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top