IK.AM


Dev > CaaS > Kubernetes > TAP

OIDC ProviderとしてのHashiCorp Vaultを使ってTAP GUIにログインする

Created on Thu Jan 12 2023 • Last Updated on Thu Jan 12 2023N/A Views

🏷️ Kubernetes | Cartographer | Tanzu | TAP | Vault | TAP GUI

前の記事でHashiCorp VaultとOpenID Connect Providerとして使う方法を紹介しましたが、
今度はこのOIDC ProviderとしてのVaultを使ってTAP GUIにログインしたいと思います。

VaultにOIDCクライアントの登録をします。

TAP_GUI_URL=https://tap-gui.view.example.com # CHANGEME

vault write identity/oidc/client/tap-gui \
  redirect_uris="${TAP_GUI_URL}/api/auth/oidc/handler/frame" \
  assignments="allow_all"

CLIENT_IDとCLIENT_SECRETは次のように取得できます。

CLIENT_ID=$(vault read -field client_id identity/oidc/client/tap-gui)
CLIENT_SECRET=$(vault read -field client_secret identity/oidc/client/tap-gui)

TAP GUIではemail profileが必須のようなので、前記事と同じようにprofileを追加します。実際の値はemailアドレスでなくても大丈夫です。

MOUNT_ACCESOR=$(vault read -field accessor sys/auth/ldap)
EMAIL_SCOPE_TEMPLATE="{\"email\": {{identity.entity.aliases.$MOUNT_ACCESOR.name}}}"
vault write identity/oidc/scope/email template="$(echo ${EMAIL_SCOPE_TEMPLATE} | base64 -)"
vault write identity/oidc/provider/default scopes_supported=email

email profileがないと次のようなエラーが発生しました。

image

https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.4/tap/tap-gui-auth.html#configure-an-authentication-provider-0 を参考に、tap-values.yamlに次の箇所を設定します。

${...}の部分は置き換えてください。

tap_gui:
  # ...
  app_config:
    auth:
      environment: development
      session:
        secret: custom session secret
      providers:
        oidc:
          development:
            metadataUrl: ${VAULT_URL}/v1/identity/oidc/provider/default/.well-known/openid-configuration
            clientId: ${CLIENT_ID}
            clientSecret: ${CLIENT_SECRET}
            tokenSignedResponseAlg: RS256
            scope: "openid email"
            prompt: auto

TAPを更新します。

tanzu package installed update -n tap-install -p tap -f tap-values.yaml

TAP GUIにアクセスするとOIDCによるログインが求められます。

image

"SIGN IN"ボタンを押すとVaultにリダイレクトし、VaultにログインするとTAP GUIに戻ります。

image
Found a mistake? Update the entry.