2011-09-01 3 views
10

facebook oauth2 docs에 따르면 클라이언트 측 흐름에는 클라이언트 비밀 매개 변수가 필요하지 않습니다. 클라이언트 측 흐름은 기본 웹 응용 프로그램과 모바일 웹 응용 프로그램에서 모두 사용할 수 있습니다.Google 기본 oauth2 플로우에 클라이언트 비밀이 필요한 이유는 무엇입니까?

그러나 Google의 기본 oauth2 플로우에는 클라이언트 비밀번호 http://code.google.com/apis/accounts/docs/OAuth2.html#IA이 필요합니다.

이 경우 해커가 리버스 엔지니어링 도구를 사용하여 클라이언트 보안을 도용 할 수 있습니다.

누군가가 왜 이렇게했는지 명확히 할 수 있습니까?

답변

11

Google 직원의 게시물에 따르면 주된 이유는 서버 측 응용 프로그램과 기본 응용 프로그램에 동일한 라이브러리를 사용하고 있기 때문입니다. client_secret이 네이티브 앱의 컨텍스트에서 민감하다고 생각하지 않는 것처럼 들리지만 설치 한 앱 흐름을 위해 결국 단계적으로 제거 할 계획입니다. https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8에서

: 우리는 그 비밀은 비밀 그래서 머물 오늘 라이브러리를 사용하고, 어떤 시점에서 그들을 필요로 중지 기대하기 편리 지금까지 우리는 대부분을 포함하고 기대하지 않습니다

미래에.

OAuth는 악성 사용자가 모바일/데스크톱 앱의 맥락에서 요청을 위조하는 것을 방지하기위한 것이 결코 아니 었음을 기억하십시오.

client_secret가 노출되는 것이 염려되는 경우 여기에 설명 된 클라이언트 측 흐름도 있습니다. http://code.google.com/apis/accounts/docs/OAuth2.html#CS 내가 알 수있는 한, 클라이언트 측 흐름에는 client_secret이 필요하지 않으며 데스크톱 또는 모바일 앱.

-hris

관련 문제