0

我对提供 appengine 服务器 2 服务器身份验证的新机制感到困惑。

我有 2 个应用程序。应用 1 和应用 2。App1 通过安全的 Restful 界面与 App2 交互。

App2 界面在 web.xml 中以管理员角色保护。

<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>

我将 App1 应用程序身份添加到 App2 管理员列表。

然后 App1 只需使用服务器应用程序标识调用接口。根据应用程序身份API下面的链接应该在这里帮助我。

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

似乎这仅适用于“google API”应用程序,而不适用于其他系统(即用户 appengine 应用程序)。

Q1。我可以使用 AppIdentityService 使用 auth_contraint 角色以安全的方式调用另一个 appengine 应用程序吗?

任何帮助表示赞赏。

-lp

4

2 回答 2

1

您不能将应用程序身份添加到另一个应用程序管理员列表。(您邀请的电子邮件必须接受邀请)。

您可以使用 AppIdentityService 使用应用程序的公钥/私钥来签署内容(由 Google 管理,包括密钥轮换),请参阅向其他系统声明身份以及一些示例代码: Google App Engine 安全模块 API 和 JWT 支持

于 2013-08-23T08:19:27.363 回答
0

也许'X-Appengine-Inbound-Appid'对你来说已经足够了。在 App Engine 中设置为 App Engine 请求,不能在外部请求中设置。

我们在 Python 中使用这样的东西:

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:
    ....
于 2015-08-26T10:19:25.653 回答