2013-09-30 1 views
0

나는 클라이언트 로그인 시스템을 위해 JavaScript 기반 Google 또는 Facebook OAuth를 구현 중입니다. 서버에서 세션을 생성하기 위해 사용자를 인증 한 후 Google/Facebook에서 반환 된 액세스 토큰 및 이메일 ID 조합을 사용하기를 바랍니다. .NET 기반 서버 응용 프로그램이 있습니다. $ .ajax와 같은 AJAX 메소드를 사용하여이 액세스 토큰과 전자 메일 ID 조합을 보내고이 전자 메일 아이디에 대한 세션을 서버 끝에 작성하려고합니다.순수 자바 스크립트 기반 Google 또는 Facebook OAuth 2.0을 스푸핑에 안전하게 만드는 방법은 무엇입니까?

이제 방화벽이 작동하고 서버가 Google/Facebook에 접속하여 액세스 토큰의 유효성을 검사 할 수 없다는 제한이 있습니다.

내 동료 중 한 사람은 내 서버와 Google/Facebook간에 통신이 없으므로 악의적 인 사용자가 임의의 액세스 토큰을 사용하여 사용자 A의 이메일 ID를 보낼 수 있다고 지적하고 유효성을 확인할 방법이 없다고 말했습니다 이 토큰은 실제로 사용자 A에 속하는지 여부.

내 서버가 SSL 통신을 사용하고 있습니다. 그렇다면 어떻게이 시나리오를 안전하게 만들 수 있을까요?

+1

이 동영상은 https://developers.google.com/live/shows/800483695-4001에서 어떻게 할 수 있는지 설명합니다. 자바 스크립트가 아닌 안드로이드를 사용하고 있습니다. 원리는 같습니다. – pinoyyid

답변

1

유효성을 확인할 수없는 토큰을 사용해야한다고 생각하지 않습니다. IDP에 연락하여 토큰의 유효성을 검사 할 수없는 경우 앱을 실행할 수 있다고 생각하지 않습니다. 그것은 그들이 다른 사람들이에 전화를하지 않는 대부분의 방화벽은 당신이 밖으로 을 부르 자, 조금 의외입니다.

1

여기에 설명 Cloud endpoints oauth2 error

이 서명 된 사용자 ID와 이메일에 포함되어 같이가 ID 토큰을 요청할 수 JWT.

이 문서 https://support.zendesk.com/entries/23675367-Setting-up-single-sign-on-with-JWT-JSON-Web-Token-

면책 조항 도움이 될 : 나는 개인적으로이 중 하나를 시도하지 않았습니다. Tim이 말했듯이, 방화벽 뒤에서 전화를 걸 수없는 것이 확실합니까?

+0

예, 시스템에서 방화벽 규칙은 IP 주소만을 기반으로하며 도메인 이름은 기반으로하지 않습니다. 제 경우의 문제는 Google.com이나 Facebook.com에서 많은 IP 주소로드 균형을 가질 수 있기 때문에 모든 IP 주소에 대해 방화벽 규칙을 얻을 수 없다는 것입니다. –

+0

순수한 호기심에서 방화벽이 ** 보내는 ** IP 주소를 제한하는 이유는 무엇입니까? – pinoyyid

+0

자사의 프로덕션 서버와 조직은 방화벽 규칙에 매우 엄격합니다. –