我在compute engine
部署了一个jar文件,此jar文件试图访问部署在servlet
中的app-engine
并详细说明:
servlet路径:https:/pathToAppEngine/tasks/sendMail
并由此担保:
<security-constraint>
<web-resource-collection>
<web-resource-name>my-tasks</web-resource-name>
<url-pattern>/tasks/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
计算引擎链接到具有service account
权限的owner
并且应用引擎和计算引擎实例都在同一个Google项目中
因此,每当此jar文件(在计算引擎中)尝试访问此servlet时(在app引擎中),它都会显示google登录页面。
如果我从这个servlet中删除了安全性,那么可以从该jar文件中轻松访问它
那么如何授权此计算引擎在app-engine plz中访问此安全servlet?
答案 0 :(得分:0)
我相信您现在看到的行为是可以预期的,因为<security-constraint>
会对需要Google帐户或G Suite域的Google Accounts执行身份验证。
如果您要使用验证这些请求的服务帐户,您可能需要查看Endpoins Auth文档,而不是使用<security-constraint>
。
此外,您可以在App Engine代码中创建自己的逻辑,并在您的请求中添加API key或您自己的身份验证字符串。
GET https://application.com/endpoint&key=###
你总是可以混淆密钥。
最后,您还可以在将计算引擎实例的请求发送到App Engine.c欢呼时实现自己的身份验证逻辑