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
まず、一般的な情報は次のとおりです。
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アプリの場合、この値は事前定義されていますが、必要に応じて調整できます。