前の記事で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
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によるログインが求められます。

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