2013-12-13 2 views
4

Google API에 대해 작동하는 기본 애플리케이션을 작성하고 있습니다. 신청서를 등록하면 Native로 명시 적으로 지정되었지만 Google Developers Console에 고객의 비밀이 제공됩니다.Google이 Native 응용 프로그램에 대한 클라이언트 비밀을 제공하는 이유는 무엇입니까?

OAuth 2.0 프로토콜을 이해하는 한, 네이티브 앱은 클라이언트의 비밀을 보장해서는 안되기 때문에 클라이언트의 비밀이 없어야합니다. Google은 OAuth 2.0을 구현 한 것으로 잘못 알고 있습니까? 어떻게해야합니까?

답변

4

당신이 맞습니다. 클라이언트의 비밀은 네이티브 어플리케이션에서 비밀 관점을 유지하는 데별로 도움이되지 않습니다. 웹 애플리케이션 흐름과의 일관성을 위해 주로 거기에 있다고 생각됩니다.

그러나 적어도 하나의 유용한 기능을 가지고 있습니다 ... 원래 개발자는 언제든지 해당 클라이언트 ID에 바인딩 된 모든 새로 고침 토큰을 효과적으로 취소 할 수 있습니다.

+0

OAuth를 처음 사용하기 때문에 응용 프로그램에 클라이언트 보안을 포함시키는 것이 보안상의 영향인지 잘 모르겠습니다. 일단 내가 그렇게하면, 나는 그것을 세계에 공개하고 리버스 엔지니어링 할 수 있습니다. 내가 그 일에 대해 얼마나 염려해야 하는가? 클라이언트 암호를 알고있는 공격 벡터가 공격자에게 잠재적으로주는 영향은 어느 정도입니까? –

+3

네이티브 애플리케이션에서 액세스 토큰 (API 액세스에 궁극적으로 사용하는 것)을 얻으려면 Google에 새로 고침 토큰을 제공해야합니다 (이는 원래 OAuth 댄스가 끝날 때 Google에서 제공하는 것입니다. 사용자를위한 상점) 및 고객의 클라이언트 비밀. 이것을 응용 프로그램에 구워도됩니다 (리버스 엔지니어링 할 수 있음을 알 수 있습니다). - 자체적으로 모든 데이터에 대한 액세스 권한을 부여하지 않습니다. 항상 새로 고침 토큰과 함께 사용됩니다. – aeijdenberg

관련 문제