启用IAP时发生服务器错误-我缺少什么吗?

时间:2019-03-18 17:44:09

标签: google-iap

每当我尝试通过控制台在GKE Ingress上启用IAP时,都会收到以下错误消息:

  

“ resource.iap.oauth2ClientSecret”字段的值无效:“”。行动计划   如果启用了IAP,则必须设置OAuth2客户端机密。

有人知道是什么原因吗?

它看起来像是通过GUI返回的内部API错误,我找不到关于它的任何文档。

2 个答案:

答案 0 :(得分:2)

GUI确实无法合法执行内部API调用。您可以通过手动修改Ingress后端来启用IAP,如下所示: gcloud beta compute backend-services update $YOUR_INGRESS_BACKEND --project=$YOUR_PROJECT --global --iap=enabled,oauth2-client-id=$CLIENT_ID,oauth2-client-secret=$CLIENT_SECRET

答案 1 :(得分:0)

共有五个部分-OAuth凭证,入口,服务,秘密,BackendConfig。您将需要Kubernetes 1.10.5-gke.3或更高版本。 Enabling Cloud IAP for GKE描述了您需要做的(或至少是其中大部分)。

OAuth-为OAuth客户端(可能是“ Web应用程序”类型)创建凭据。 ID和密码将进入kube Secret对象。

入口-指向您的服务,没什么多余的

服务-使用BackendConfig进行注释。 (您可以将不同的服务端口分配给不同的后端。在简单情况下,请使用“默认”。)

metadata:
  annotations:
    beta.cloud.google.com/backend-config: '{"default": "mybc"}'

秘密-将保存您创建的OAuth客户端的凭据

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: mysecret
data:
  client_id: xxx
  client_secret: xxx

BackendConfig-是GKE支持的自定义资源,因此除了创建该对象外别无他法

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: mybc
spec:
  iap:
    enabled: true
    oauthclientCredentials:
      secretName: mysecret

如果您仍然遇到问题:请再次查看该文档;检查OAuth授权域;在IAP页面上,为目标用户确认受IAP保护的Web应用程序用户权限;检查您的Secret数据是否为base64编码;检查您的Ingress / Service / Deployment规范中的端口是否匹配。