A community member has associated this post with a similar question:
frontdoor quota limit issue

Only moderators can edit this content.

Unity Catalog External Location fails with "PERMISSION_DENIED: Request for user delegation key is not authorized" when using Azure Access Connector with ADLS Gen2 over Private Endpoints

chetan vekhande 0 Reputation points
2026-07-07T17:07:22.76+00:00

I am configuring Unity Catalog to access an Azure Data Lake Storage Gen2 account using an Azure Databricks Access Connector (System Assigned Managed Identity).

The storage account has:

  • Public Network Access: Disabled
  • Private Endpoints configured for Blob and DFS
  • Private DNS configured
  • VNet-injected Databricks workspace

The Access Connector has the following RBAC roles on the storage account:

  • Storage Blob Data Contributor
  • Storage Blob Delegator
  • Reader

The Unity Catalog Storage Credential is created successfully, and the workspace is attached to the metastore.

However, creating or validating an External Location, or accessing the storage using Unity Catalog, fails with:

PERMISSION_DENIED: Request for user delegation key is not authorized.

The stack trace shows the failure occurs during generateTemporaryPathCredentials.

We have verified:

  • VNet Injection
  • Private Endpoint connectivity
  • Private DNS resolution
  • Cluster connectivity to the storage account
  • Access Connector configuration
  • Managed Identity
  • Unity Catalog Metastore
  • Storage Credential
  • Azure RBAC assignments

DNS from the Databricks cluster correctly resolves the storage account to its Private Endpoint IP (10.10.2.5), confirming networking is working.

We would like assistance identifying why Unity Catalog cannot generate temporary credentials when the storage account is accessible only through Private Endpoints.

Azure Databricks
Azure Databricks

An Apache Spark-based analytics platform optimized for Azure.

2 answers

Sort by: Most helpful
  1. Ravi Kiran Pagidi 170 Reputation points
    2026-07-11T13:48:37.8166667+00:00

    Hi Chetan,

    Since the error is specifically:

    Request for user delegation key is not authorized

    I would focus on the user delegation key permission path, not only cluster-to-storage private endpoint connectivity.

    A few things to check:

    1. Make sure Storage Blob Delegator is assigned to the Access Connector managed identity at the storage account, resource group, or subscription scope. Container-level scope is not enough for Get User Delegation Key.

    Confirm the role is assigned to the Access Connector’s managed identity principal ID, not just to the Access Connector resource.

    Keep Storage Blob Data Contributor on the storage account/container for data access.

    If public network access is disabled on the storage account, enable Allow Azure services on the trusted services list to access this storage account. Databricks documentation calls this out for Unity Catalog external locations when public network access is disabled.

    Azure CLI example:

    az storage account update \
      --name <storage-account-name> \
      --resource-group <resource-group-name> \
      --bypass AzureServices
    

    Wait for Azure RBAC propagation, then re-validate the storage credential / external location.

    Also check ADLS Gen2 ACLs on the target path if you are using ACLs in addition to RBAC.

    Docs:

    Unity Catalog external locations on ADLS Gen2: https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/external-locations-adls

    Azure managed identities for Unity Catalog storage: https://learn.microsoft.com/en-us/azure/databricks/connect/unity-catalog/cloud-storage/azure-managed-identities

    Get User Delegation Key authorization: https://learn.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key

    In short, private endpoint connectivity from the cluster proves the data plane path is reachable, but Unity Catalog also needs to generate temporary credentials. For that, the Access Connector managed identity must be allowed to request a user delegation key, and the storage firewall must allow the required Databricks/Azure service path.

    0 comments No comments
  2. SAI JAGADEESH KUDIPUDI 3,645 Reputation points Microsoft External Staff Moderator
    2026-07-11T04:26:44.76+00:00

    Hi @chetan vekhande ,

    Based on the information provided, the most likely cause is that the storage account has Public Network Access disabled without the required**"Allow Azure trusted services"** exception enabled.

    Although your Databricks cluster can successfully reach the ADLS Gen2 account through Private Endpoints, Unity Catalog generates temporary credentials through a control-plane operation (generateTemporaryPathCredentials / User Delegation Key request). This request is not sourced from your VNet-injected cluster and must be allowed through the Azure trusted services path.

    Since the Access Connector already has the required roles (Storage Blob Data Contributor, Storage Blob Delegator, and Reader), the RBAC configuration appears correct. The next step is to verify that the storage account networking configuration allows Azure trusted services access.

    Also confirm that:

    • The Unity Catalog Storage Credential references the correct Azure Databricks Access Connector.
    • The role assignments are applied to the exact managed identity used by the Access Connector.
    • RBAC changes have fully propagated.

    If the issue persists after enabling Azure trusted services and validating the managed identity configuration, further investigation may be required to review storage account networking policies and Unity Catalog credential generation requests.

    Reference Documentation

    Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.

    0 comments No comments