2013-07-03 5 views
0

appengine 서버 2 서버 인증을 제공하는 새로운 메커니즘과 혼동 스럽습니다.appengine 2 appengine 인증을위한 AppIdentityService

나는 2 개의 앱이 있습니다. App1 및 App2.App1은 안전하고 안심할 수있는 인터페이스를 통해 App2와 상호 작용합니다.

App2 인터페이스는 web.xml에서 admin 역할로 보안됩니다.

<security-constraint> 
<web-resource-collection> 
<url-pattern>/V3/publish/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
<role-name>admin</role-name> 
</auth-constraint> 
</security-constraint> 

App2 응용 프로그램 ID를 App2 관리 목록에 추가하십시오.

다음 App1은 단순히 서버 응용 프로그램 ID를 사용하여 인터페이스를 호출합니다. 응용 프로그램 ID API 아래의 링크에 따라 을 클릭하면 도움이됩니다.

https://developers.google.com/appengine/docs/java/appidentity/

이 그냥 "구글 API"애플 리케이션과 (에서 appengine 애플 리케이션 ie.user)되지 않은 다른 시스템 작동 보인다.

Q1. auth_contraint 역할을 사용하여 AppIdentityService를 사용하여 안전한 방식으로 다른 appengine 앱을 호출 할 수 있습니까?

어떤 도움을 주시면 감사하겠습니다.

-lp

답변

1

당신은 다른 응용 프로그램 관리 목록에 응용 프로그램 ID를 추가 할 수 없습니다. 초대 한 이메일은 초대를 수락해야합니다.

당신은 (구글이 키 회전 포함하여 관리) 내용에 서명 Asserting identity to other systems을보고 일부 샘플 코드 응용 프로그램의 공개/개인 키를 사용하도록 AppIdentityService를 사용할 수 있습니다 Google App Engine Security Module API and JWT support

0

아마도 'X-Appengine-Inbound-Appid' 당신을 위해 충분하다 . App Engine에서 App Engine 요청으로 설정되며 외부 요청에서 설정할 수 없습니다.

우리는 파이썬이 같은 것을 사용 :

app_id = self.request.headers.get('X-Appengine-Inbound-Appid', None) 
if app_id not in {'some', 'other'}: 
    logging.warn(u'Callback from strange caller: %s', app_id) 
    .... 
else: 
    ....