web-dev-qa-db-ja.com

GCPでk8のIAPを有効にする方法は?

目的:Kubernetes(k8s)と組み合わせてIdentity Aware Proxy(IAP)を有効にします。

方法:

  • 2つのアプリがデプロイされました
  • SSLロードバランサーが前面に配置されました
  • Domain/app1に移動すると、app1が表示されます
  • このチュートリアルに従ってk8sのIAPを有効にしました https://cloud.google.com/iap/docs/enabling-kubernetes-howto

結果

  • 1つがdomain/app1に移動すると、Googleログイン画面が表示されます
  • IAPが無効になっている場合、ログインが成功すると、アプリの代わりに「デフォルトゲートウェイ-404」が表示されます

ディスカッション

  • リダイレクトはどこかに設定されるべきではありませんか?認証と承認が成功すると、URI _gcp_gatekeeper/authenticateが追加され、404が返されますが、アプリへのリダイレクトは正しく行われる必要がありますか?
  • App Engineがデプロイされると、IAPはIAPがすぐに機能するようにします。これは何が違うのですか?おそらく、AppEngineにはk8sで省略されている要素がいくつか含まれています。

現在の問題

認証が成功すると、次のエラーが表示されます。

There was a problem with your request. Error code 11
3
030

まず、一般的な情報は次のとおりです。

GCPでIAPの使用を開始するには、 App Engine app を追加するか、 Cloud Load Balancer for IAP を構成します。 Kubernetesクラスタを実行している場合は、ロードバランサがすでに構成されている可能性があります。

次に、ここでIAPを有効にする必要があります:Menu -> Security -> Identity-Aware Proxy

そして最後に、リダイレクトURIを構成できる場所です。アプリ/ LBの右側にあるトリプルドットを選択し、Edit OAuth Client

Menu -> APIs & Services -> Credentials 

作成OAuth clientIDとセットAuthorized redirect URIs それのための。

許可されたリダイレクトURI
Webサーバーからのリクエストで使用します。これは、ユーザーがGoogleで認証された後にリダイレクトされるアプリケーション内のパスです。パスには、アクセス用の認証コードが追加されます。プロトコルが必要です。 URLフラグメントまたは相対パスを含めることはできません。パブリックIPアドレスにすることはできません。

App Engineアプリの場合、この値は事前定義されていますが、必要に応じて調整できます。

1
VAS