Azure Key Vault
TokenTimer uses the Azure Key Vault REST API v7.4 to discover secrets, certificates, and cryptographic keys from your Key Vault instances.
Vault URL format: https://your-vault-name.vault.azure.net
Commercial Azure only. Token minting uses https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token with scope https://vault.azure.net/.default. National clouds (China, US Government, and similar) are not supported. AZURE_VAULT_ADDRESS_ALLOWLIST cannot make those endpoints work.
Authenticate with an Entra app via client credentials (authMethod: client_credentials plus tenant ID, client ID, and client secret; recommended) or a pasted access token. Client credentials work for manual scans on Core and Enterprise. Where Enterprise auto-sync is entitled, client-credential or token configs can be stored for scheduled scans. Core scheduled auto-sync stays GitHub and GitLab; Azure Key Vault auto-sync is not a Core capability.
Credential setup
Option A (recommended): Entra app client credentials
TokenTimer mints an access token from https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token using the OAuth 2.0 client-credentials grant. Scope: https://vault.azure.net/.default.
- Azure Portal → Microsoft Entra ID → App registrations → New registration
- Note the Directory (tenant) ID and Application (client) ID
- Certificates & secrets → New client secret → copy the value
- In your Key Vault → Access control (IAM) → assign Key Vault Reader to the app's service principal
- In TokenTimer, choose Client credentials (
authMethod: client_credentials) and enter Tenant ID, Client ID, and Client secret - On Core, credentials are used for the manual scan only and never stored. On Enterprise, they may be stored for auto-sync where entitled.
Inventory lists secret, certificate, and key metadata. It does not fetch secret values.
Option B: Pasted access token (Azure CLI)
az loginaz account get-access-token --resource https://vault.azure.net- In TokenTimer, choose Token auth and paste the
accessTokenvalue - On Core, use immediately and discard: the token expires quickly and is never stored. On Enterprise auto-sync, prefer Option A so TokenTimer can mint fresh tokens.
Permissions required
Azure RBAC (recommended):
Key Vault Readeron the vault (least privilege for this inventory)
Or classic access policies:
- Secrets and keys:
Listmay suffice for inventory metadata - Certificates:
ListplusGetwhen you want subject/issuer enrichment from the public certificate (cer)
What is discovered
- Secrets: name, expiration (
attributes.exp), creation/update times - Certificates: name, expiration, issuer, creation/update times
- Cryptographic keys: name, key type, expiration (if set), creation/update times
No secret values or private keys. Public certificate material (cer) may be read to enrich subject/issuer.
Scan options
- Filter rules: optional include/exclude rules (exact or regex, on name or description) applied via the scan API. See Filter rules.
- Remove obsolete items: opt-in cleanup that deletes previously imported tokens no longer found at the source. See Obsolete-token cleanup.
Azure Key Vault does not support auto-sync on self-hosted TokenTimer Core. Each scan is a one-time, manual action; credentials are used once and never stored. TokenTimer Enterprise adds scheduled auto-sync for this provider under a per-provider license entitlement, including client-credentials auth; see Enterprise auto-sync.
Related pages
- Integrations overview for deduplication behavior and security notes
- Microsoft Entra ID to scan app registration secrets and certificates instead of Key Vault contents