Python에서 Google Cloud Endpoint Framework로 API를 만들었으며 Android 클라이언트가 API와의 대화 권한이있는 유일한 애플리케이션입니다. Cloud Endpoint Authentication 잠재 고객
나는 인증을위한 구글의 튜토리얼과 가이드를 따라 하나의 특정 클라이언트 ID에 액세스 할 수있는 API 보호하기 위해 : 그들은 "관객"의 클라이언트 ID를 포함해야한다는 말을이 site에WEB_CLIENT_ID = 'myApiClientId.apps.googleusercontent.com'
ANDROID_CLIENT_ID = 'myAndroidClientId.apps.googleusercontent.com'
ANDROID_AUDIENCE = [ANDROID_CLIENT_ID]
ALLOWED_CLIENT_IDS = [WEB_CLIENT_ID, ANDROID_CLIENT_ID, endpoints.API_EXPLORER_CLIENT_ID]
api_collection = endpoints.api(name='myApi',
version='v1',
allowed_client_ids=ALLOWED_CLIENT_IDS,
audiences=ANDROID_AUDIENCE,
auth_level=endpoints.AUTH_LEVEL.REQUIRED
)
을 백엔드 API
Android 클라이언트의 경우이 메커니즘은 사용자가 백엔드 API의 클라이언트 ID를 지정하는 audiences 인수입니다.
각 클라이언트의 Google 클라우드 플랫폼 콘솔에서 생성의 OAuth 2 클라이언트 ID의 목록을 ALLOWED_CLIENT_IDS 교체 :
그러나이 this 사이트에, 그들은 "관객은"필드는 안드로이드 클라이언트 ID를 포함해야한다는 이야기 프로젝트 및 은 ANDROID_AUDIENCE를 Android 웹 클라이언트 ID의 목록으로 대체합니다. 웹 클라이언트 ID는 .apps.googleusercontent.co가 추가 된 클라이언트 ID입니다 (예 : YOUR-CLIENT-ID.apps.googleusercontent.com).
무단 액세스를 위해 API를 보호하는 올바른 방법은 무엇입니까? 나는 백엔드쪽에 "사용자"계정이 필요 없으며 안드로이드 클라이언트가 API에 액세스 할 수있는 유일한 클라이언트가되기를 원합니다. 클라이언트 ID가 지정되고 AUTH_LEVEL이 필수로 설정되었지만 내 REST 클라이언트가 API에 액세스 할 수 있습니다.