问题标签 [google-iap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
382 浏览

google-iam - 您如何以编程方式将成员添加到单个 Google IAP 访问列表?

我有 2 个启用 IAP 的 terraformed/k8s-yaml 服务。

为了在基础设施刷新之间维护成员访问列表(当负载均衡器被破坏并且访问列表被擦除时),我已将 IAM 角色“受 IAP 保护的 Web 应用程序用户”分配给相关用户。

例如

但是,这允许访问项目中所有受 IAP 保护的 API。是否可以添加一个过滤器以仅允许访问特定的负载均衡器?

0 投票
1 回答
373 浏览

kubernetes - GKE:身份感知代理 > L7 负载均衡器 > 自定义主机和路径规则 > 错误代码 11

我正在使用 GKE Identity-aware proxy > L7 load balancer > Custom host and path rules。它适用于根路径。但它不适用于自定义路径。

路径//nginx/工作正常。/v2//v3/抛出There was a problem with your request. Error code 11

如果我禁用 IAP,一切正常。

环境

  • Kubernetes版本(使用kubectl version):1.12.7-gke.17

  • 云提供商或硬件配置:GKE

使用 Ingress @ https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer设置 HTTP 负载平衡

为 GKE 启用 Cloud IAP @ https://cloud.google.com/iap/docs/enabling-kubernetes-howto

0 投票
1 回答
639 浏览

node.js - 使用 Identity Aware Proxy 在 nodejs AppEngine 环境中获取用户 API 访问权限

我在 AppEngine 上部署了一个启用了 IAP 的 nodejs 应用程序,因此现在可以防止项目 IAM 之外的用户访问其端点,并且我得到了“x-goog-authenticated-user-id”、“x-goog-authenticated” -user-email”和另一个 jwt 断言 x-goog 签名的标头,就像它应该的那样(如这里详述https://cloud.google.com/iap/docs/identity-howto)。

在某些 AppEngine 环境(到目前为止,Python、Java、Go)中,您似乎可以使用一些已经提供的库来通过用户 API 获取有关用户的更多信息,但是 nodejs 页面被禁用(此处为https://cloud.google .com/appengine/docs/standard/python/users/),似乎没有迹象表明应该在那里做什么。有任何想法吗?

如果没有直接的解决方法,我是否能够拥有一个应用程序引擎环境,该环境还公开例如用户 API 的 Python 库,以便我可以将它们包装起来并在我的 nodejs 应用程序中使用它们?

0 投票
1 回答
662 浏览

airflow - 使用受 IAP 保护的应用程序验证 Google Composer http 调用任务

我有一个设置,我有一个应用程序引擎 REST 应用程序和一个 Google 作曲家/气流 DAG,它的任务应该是从应用程序的一个端点获取数据。该应用程序受 IAP 保护。我已将运行 Airflow 的服务帐户添加到“受 IAP 保护的 Web 应用程序用户”列表中,但是每次该步骤执行对 http 调用的响应时都是 Google 登录页面。知道是否需要任何额外的步骤?

我的 DAG 步骤的代码:

0 投票
1 回答
49 浏览

google-cloud-platform - 为 HTTPS 资源配置 IAP 时,BackendConfig 是否会覆盖控制台?

我在 GCP 上有一个受 IAP 保护的 API,它是通过 backendconfig 配置的。它工作正常。除了通过 backendconfig 打开/关闭 IAP 外,您还可以通过控制台 UI 执行相同的操作。

如果我的后端配置说 IAP 已启用,那么我使用控制台禁用它,它确实被禁用了大约 10 分钟,然后似乎再次重新启用它。

在我看来,这就像一个周期性的后台进程正在确保 backendconfig 值是事实的来源,从而恢复控制台更改。

我找不到有关此行为的任何文档,有人可以确认这里发生了什么吗?此外,如果要恢复更改,控制台是否可以首先禁止更改?

0 投票
1 回答
338 浏览

google-cloud-platform - 谷歌云 - 来自 IAP.GetIamPolicy API 的奇怪响应

正如文档指定的那样,我正在https://iap.googleapis.com/v1/projects/MY_PROJECT_ID/iap_web:getIamPolicy使用一个空的主体进行 POST。

API 响应是一个 HTTP 200,正文只是{"etag": "ACAB"}

这是什么意思?我应该做些什么来检索实际的政策数据?

IAP 和 IAP API 都为此项目启用。

0 投票
1 回答
231 浏览

google-app-engine - 为什么 Google IAP 在我的标头中放置两位数的请求 cookie?

我有一个在 Google 应用引擎(Flask、python 3、灵活环境)上运行的应用,它使用 Identity-Aware 代理允许我们组织中的每个人(使用 GSuite)控制访问。最近我们收到了 413 错误。

当我查看失败请求的 cookie 时,我希望看到一个以 GCP_IAAP_AUTH_TOKEN 为前缀的请求 cookie。相反,我看到了 11 个,每个都略有不同。它们的组合大小使我们超过了下面链接中指示的 15kb 标头大小限制,从而导致 413 错误。

https://cloud.google.com/appengine/docs/flexible/go/how-requests-are-handled

我不明白为什么会有这么多饼干,或者如何让它们消失。我们的用户都使用 Chrome,但不是所有用户都会间歇性地遇到此错误。那些不是的,当检查他们的 cookie 时,只显示几个带有这个前缀的 cookie。有关此 cookie 集合的示例,请参见下文:

单个标头中有 11 个 IAP cookie

0 投票
1 回答
437 浏览

google-app-engine - 无法打开/关闭 IAP,无法更新 App Engine 资源

当我想将 IAP 与应用引擎一起使用时,它因以下问题而失败:

我重启了IAP,还是有这个问题。

0 投票
0 回答
190 浏览

google-cloud-platform - GCP IAP Authentication won't get service account credentials unless using environment var pointing at local json credentials

I tried Google's Java IAP authentication example for service accounts: https://cloud.google.com/iap/docs/authentication-howto#iap_make_request-java

This works well when there is a local service account json credentials file which is mentioned in the env var GOOGLE_APPLICATION_CREDENTIALS=<path-to-file>.

In another documentation page https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-java it says the following:

If the environment variable isn't set, ADC uses the default service account that Compute Engine, Kubernetes Engine, App Engine, and Cloud Functions provide, for applications that run on those services.

If I don't provide the env var though then the auth library in the example seems to generate a different type of credentials than ServiceAccountCredentials, which leads to an error being thrown. I logged the credentials that are created and they are resolved to ComputeEngineCredentials which leads to this part of Google's example throwing the error:

In the scenarios I am working on I won't always have the option of uploading the json credentials file and running with that env variable and at any rate I would expect that a compute engine can identify as the service account in its configuration. Is there anything that I am missing?

0 投票
1 回答
260 浏览

google-iap - 浏览器在受 Google IAP 保护的 SPA 上阻止 API 请求

我最近在受 Google Identity Aware Proxy 保护的网络应用程序中遇到了一个问题。

这是我的设置:

  • 由后端服务提供服务的 API GKE pod,受 IAP 保护。
  • 一个 SPA GKE pod,由后端服务提供服务,受 IAP 保护。
  • 这两个后端服务配置为使用相同的 OAuth 客户端 ID。
  • API 和 SPA 服务于同一个域 - SPA 服务于 example.domain.com,而 API 服务于 example.domain.com/api。
  • SPA 从 Web 浏览器中的 JavaScript(使用 axios)调用 API。
  • 其他两项服​​务也存在非常相似的设置,这次是在 GAE 上。

直到昨天,对于部署在 GAE 和 GKE 上的服务,一切都很顺利。但是,今天我开始在浏览器控制台中的 JavaScript 请求中偶尔出现错误,说:

我尝试更改服务器上的 CORS 策略,允许所有来源,甚至允许没有 cors 标头的 OPTIONS 请求。在客户端,我尝试更改一些标头请求(之前使用 Axios 默认),例如设置 axios.defaults.withCredentials = true。没有任何帮助。

我能找到的唯一解决方法是手动进入另一个选项卡到 API URL(example.domain.com/api),然后返回 SPA 选项卡并刷新它,但必须每小时完成一次(我猜是与 OAUTH 令牌到期有关)。