5

salesforce-chatter API와 상호 작용할 크롬 확장 프로그램을 구축 중입니다. 그러나 oAuth (사용자 에이전트 흐름) 인증을 사용하는 사용자의 경우 내 클라이언트 키를 내 확장에 포함해야합니다.크롬 확장에 클라이언트 ID 포함

이로 인해 보안 문제가 발생합니까? 또는 내 확장 프로그램에 클라이언트 ID를 포함시키지 않고 oAuth를 사용할 수 있습니까?

답변

6

고객 ID은 요청에 포함되어야하므로 @Matt Lacey가 이미 지적했듯이 요청자가 요청을 보낸 것으로 알고 있습니다. 일반적으로 공급자는 클라이언트 기밀 인 액세스 토큰 에 추가로 포함되어 있으므로 제공자가 해당 클라이언트 ID을 사용할 수 있음을 공급자가 확인할 수 있습니다.

Chrome 확장 프로그램은 개방형 플랫폼에서 실행되며 플랫폼 자체는 서버 (확장 프로그램을 지원해야 함)를 인증하거나 속성을 안전하게 저장하는 방법을 제공하지 않습니다. 공개 플랫폼), 클라이언트 기밀을 기밀로 유지하는 것은 불행히도 불가능합니다.

일반적인 문제이므로 OAuth 사양 (section 10.1 Client Authentication10.2 Client Impersonation 참조)에서 이미 고려되었습니다. 따라서 공급자는 추가 검사를해야하지만 클라이언트 쪽에서는 보안을 효과적으로 개선하기 위해 어떤 조치도 취할 수 없습니다.

향후 안드로이드 기기에서 어떻게 처리되는지 더 자세히 보려면 ​​내 대답 here을 확인하십시오.

2

확장 프로그램에 클라이언트 ID를 삽입해야 인증하려는 앱을 Salesforce에 알릴 수 있습니다. 이러한 클라이언트 ID는 항상 저장되어 서버로 전달되기 때문에 안전한 방식으로 저장하는 동안에는 문제가 발생하지 않아야합니다.

+0

"안전한 방식으로 저장하는 것"은 무엇을 의미합니까? 당신이 가진 어떤 접근 방식 이죠? 내 확장 기능은 공개 될 예정입니다. 해커가 내 확장 프로그램을 복사하여 사용자가 내 대신 내 설치하도록한다면 어떻게 될까요? –

0

Matt 패키지 앱을 만드는 경우 클라이언트 ID를 포함시켜야합니다. 또 다른 솔루션은 호스트 응용 프로그램으로 응용 프로그램을 작성하는 것입니다 :

What is the difference between packaged apps and hosted apps?

이것의 단점은 웹 서버 관리의 복잡성이다. 그러나 더 큰 보안을 허용 할 것입니다.

+0

그러면 웹 서버에 대한 크롬 확장을 어떻게 인증하겠습니까? 그러면 문제가 '클라이언트 <-> Salesforce'에서 '클라이언트 <-> 서버'로 이동됩니다. –

+1

당신은하지 않을 것입니다! 클라이언트를 통해 코드를 실행하지 마십시오. 호스팅 된 앱은 Chrome 앱 스토어 래퍼의 웹 앱입니다. –

+0

아, 죄송합니다 @ 다니엘, 당신의 대답을 오해 : / –

관련 문제