Skip to content

Workload identity does not work with KeyVault JCA  #41863

@wddwagner

Description

I tested the Keyvault JCA and noted that it uses the Azure IMDS endpoint to retrieve an access token. I tested the endpoint directly using a workload identity on the pod and noted that workload identities do not work with the IMDS endpoint. Pod identities on the other hand do. The open source Microsoft Entra pod-managed identity (preview) in Azure Kubernetes Service has been deprecated as of 10/24/2022. Release 2024-08-27 of AKS introduces a breaking change with the removal of pod identities. Hence its imperitive for Keyvault JCA to add support for workload identities.

Steps to replicate:

  1. Create a pod with a workload identity
  2. Attempt to use the Keyvault JCA and observe the error Failed to load keystore type [DKS] with path [] due to [DKS not found]. This occurs due to the JCA not being able to retrieve an access token from the IMDS endpoint
    Caused by: java.lang.NullPointerException
    at com.azure.security.keyvault.jca.implementation.KeyVaultClient.getAccessToken(KeyVaultClient.java:196)

Metadata

Assignees

Labels

Azure.IdentityClientThis issue points to a problem in the data-plane of the library.azure-springAll azure-spring related issuesazure-spring-jcacustomer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-team-attentionWorkflow: This issue needs attention from Azure service team or SDK teamquestionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions