【问题标题】:How to authorize a compute engine to access a secured servlet in app engine?如何授权计算引擎访问应用引擎中的安全 servlet?
【发布时间】:2023-04-09 01:07:01
【问题描述】:

我在 compute engine 中部署了一个 jar 文件,这个 jar 文件试图使用以下详细信息访问部署在 app-engine 中的 servlet

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>

计算引擎链接到具有owner 权限的service account 并且应用引擎和计算引擎实例都在同一个谷歌项目中

因此,每当此 jar 文件(在计算引擎中)尝试访问此 servlet(在应用程序引擎中)时,它都会显示 google 登录页面。

如果我从这个 servlet 中删除了安全性,那么它可以很容易地从那个 jar 文件中访问

那么我如何授权这个计算引擎访问 app-engine plz 中的这个安全 servlet?

【问题讨论】:

    标签: google-app-engine google-compute-engine servlet-3.0 java-security


    【解决方案1】:

    我相信您现在看到的行为是意料之中的,因为 &lt;security-constraint&gt; 强制对 Google Accounts 进行身份验证,这需要 Google 帐户或 G Suite 域。

    如果您将使用服务帐户对这些请求进行身份验证,则可能需要查看 Endpoins Auth 文档而不是使用 &lt;security-constraint&gt;

    此外,您可以在 App Engine 代码中创建自己的逻辑,并将API key 或您自己的身份验证字符串添加到您的请求中。

    GET https://application.com/endpoint&key=###
    

    您总是可以混淆密钥。

    最后,您还可以在将请求从计算引擎实例发送到 App Engine.c 时实现自己的身份验证逻辑。c欢呼

    【讨论】:

      猜你喜欢
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 2015-09-18
      • 2017-02-09
      相关资源
      最近更新 更多