2010-01-25 6 views
2

Google 애플리케이션 엔진 프로젝트가 있으며 제 3 자에게 내 REST API를 제공하려고합니다. 트위터 API처럼.Google App Engine (Python) 인증 웹 서비스/제 3 자 클라이언트

트위터가 사용자와 암호를 전송하도록 요청하면 승인 될 수 있습니다. Google 사용자 계정으로이를 수행 할 수 있습니까? 나는이 자신의 자격 증명은 타사 응용 프로그램에 입력으로 선호되는 방법은 아닙니다이 사이트에 선가 읽은

는/내가 이상 복잡하고 구글의 로그인/보안 문자로 리디렉션 싶지 않다

을 등 통과 등등. 나는 이것의 구현을 보았습니다 - 데스크탑/전화/위젯과도 작동하지 않을 수도 있습니다.

제 3 자 앱이 내 서비스에 전화를 걸 수있는 솔루션인가요? 앱이 내 사이트의 페이지를 호출합니다 (로그인 요청 - 로그인 권한 만 추가). 사용자가 로그인 한 후 내 앱이 긴 토큰을 만듭니다. 그 다음 자신의 저장소에 이것을 저장하고 post/put/delete 요청에서 Token arg로 전달하는 써드 파티 앱으로 다시 전달됩니다. 내 REST 서비스는 토큰과 조회 (토큰 | 사용자 키) 쌍을 대조하여 메서드 호출을 허용/거부합니다.

또한 앱에 도메인을 요청할 수 있습니까? 이것도 저장하십시오. 내가 REST 서비스에 대한 요청의 URL을 읽고 그들이 일치하는 등을 확인할 수있을 것 같아?

이것은 합리적인 해결책입니까, 아니면 90 년대에 살고 있습니까?

답변

1

OAuth이 상황을 염두에두고 작성되었습니다. 방금 설명한 인증 토큰 구성표의 사양이며 요즘은 reasonably widespread입니다.

잔액은 this recent StackOverflow thread을 참조하십시오.

+0

흠 네, 내가 언급 한 스레드의 피드백이 긍정적이지 않은 것으로 간주했습니다. oAuth는 클라이언트가 연결할 때마다 액세스해야합니다. 타사 앱은 약간 어색합니다. 트위터는 REST에서 매우 직설적 인 사용자 이름과 암호를 요구하는 것이 맞다면 간단한 시스템을 사용합니다. 게다가 제 3 자 앱은 get/post 요청을 다시 감쌀 필요가 있습니다. 내 가정은 맞습니까? – spidee

+1

트위터도 OAuth를 사용합니다. "클라이언트가 연결할 때마다 액세스해야합니다."라는 의미가 확실하지 않습니다. 제출 된 모든 API 요청에는 OAuth 서명이 있어야하지만 서명에 사용 된 토큰은 꽤 오랫동안 존재할 수 있으며 여러 세션에 걸쳐 존재할 수 있습니다. OAuth가 "암호 전송"체계를 통해 제공하는 것은 도난당한 토큰 및 변조를 방지하는 보안입니다. 걱정하지 않는다면 OAuth는 덜 흥미 롭습니다. – keturn

+0

아마 Google 계정 모듈에 내장 된 앱 엔진을 사용하지 않도록 선택해야한다고 생각합니다. 또한 api 끝점을 보호하기위한 목적으로 oAuth를 다시 살펴 보겠습니다. – spidee