Add Azure Managed Identity authentication support#8652
Open
nightflight-dk wants to merge 2 commits intotriton-inference-server:mainfrom
Open
Add Azure Managed Identity authentication support#8652nightflight-dk wants to merge 2 commits intotriton-inference-server:mainfrom
nightflight-dk wants to merge 2 commits intotriton-inference-server:mainfrom
Conversation
- Document Managed Identity and DefaultAzureCredential auth modes in model_repository.md with credential file examples - Add MI integration tests to L0_storage_azure/test.sh: system-assigned MI, user-assigned MI, DefaultAzureCredential, and invalid auth_type rejection - Tests gated behind TEST_AZURE_MANAGED_IDENTITY env var - Companion to core repo commit 4ef4ebaa (C++ implementation)
whoisj
requested changes
Feb 24, 2026
Contributor
whoisj
left a comment
There was a problem hiding this comment.
Fixing copyright headers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does the PR do?
Adds Azure Managed Identity (MI) and DefaultAzureCredential authentication support for Azure Storage-backed model repositories, addressing a long-standing request from enterprise users who cannot distribute or rotate shared storage account keys.
This PR contains the server-side changes (documentation + integration tests). The companion core changes (C++ implementation in
ASCredential/ASFileSystem) are in triton-inference-server/core#468.New authentication modes (controlled via
AZURE_STORAGE_AUTH_TYPEenv var or credential file):auth_type"key"(default)AZURE_STORAGE_KEY)"managed_identity"ManagedIdentityCredential"default"DefaultAzureCredentialchainFor user-assigned MI, optionally set
AZURE_STORAGE_CLIENT_ID(env var orclient_idin credential file).Checklist
<commit_type>: <Title>pre-commit install, pre-commit run --all)Commit Type:
Related PRs:
azure-identity-cppdependency, extendingASCredentialwithauth_type_/client_id_, and branchingASFileSystemconstructor for MI/Default/Key credential flows. This server PR requires core#468 to be merged first.Third-party build changes
The existing
azure-sdkExternalProject_Addinthird_party/CMakeLists.txtalready clones the fullAzure/azure-sdk-for-cppmonorepo at tagazure-storage-blobs_12.13.0. That monorepo builds all SDK packages by default — includingazure-identity-cpp— so the installed artifacts at${TRITON_THIRD_PARTY_INSTALL_PREFIX}/azure-sdk/should already contain:The only change needed is to verify (or bump) the tag so that the installed
azure-identity-cppversion is compatible with the headers used in core#468. If core'sfind_package(azure-identity-cpp CONFIG REQUIRED)fails at build time, bump the tag to a newer monorepo release (e.g.azure-identity_1.10.0) that includes both packages:No other third-party changes are required —
azure-identity-cpphas no additional external dependencies beyondazure-core(already built as part of the monorepo).Where should the reviewer start?
docs/user_guide/model_repository.md— new "Azure Managed Identity Authentication" subsection documenting env vars, prerequisites, and sovereign cloud support.qa/L0_storage_azure/test.sh— MI integration tests (system MI, user MI, DefaultAzureCredential, invalid auth_type rejection), gated behindTEST_AZURE_MANAGED_IDENTITY.Test plan:
for ENV_VAR in "shared_key"loop is untouched.TEST_AZURE_MANAGED_IDENTITYenv var, require MI-capable host):AZURE_STORAGE_AUTH_TYPE=managed_identity, runs inference.AZURE_STORAGE_CLIENT_ID, runs inference.AZURE_STORAGE_AUTH_TYPE=default, runs inference.AZURE_STORAGE_AUTH_TYPE=invalid_type, verifies server rejects it with"Unable to create Azure filesystem client".DefaultAzureCredential→AzureCliCredentialchain successfully listed and fetched blobs from a real Azure Storage account using the Python Azure SDK as a smoke test.Caveats:
169.254.169.254). They are gated behind theTEST_AZURE_MANAGED_IDENTITYenv var and should be enabled only in CI jobs running on Azure VMs or AKS nodes with a configured managed identity.azure-sdktag may need a bump if the current tag'sazure-identity-cppversion is too old for the headers used in core#468. See Third-party build changes above.Backwards compatibility:
auth_typeandclient_idfields continue to work as before (defaults to shared key authentication).Background
GitHub issue #8614 requested Azure Managed Identity support for Triton model repositories. Enterprise deployments on Azure (AKS, VMs, VMSS) strongly prefer MI over shared keys for security, compliance, and operational simplicity — no secrets to rotate, no keys to distribute, and built-in RBAC integration via Storage Blob Data Reader.
The Azure C++ SDK ships
azure-identity-cppwhich providesManagedIdentityCredentialandDefaultAzureCredentialclasses, making the implementation straightforward as an extension of the existingASCredential/ASFileSystemcode in the core repo.Related Issues: