![]() |
VOOZH | about |
dotnet add package CasCap.Api.Azure.Auth --version 1.5.0
NuGet\Install-Package CasCap.Api.Azure.Auth -Version 1.5.0
<PackageReference Include="CasCap.Api.Azure.Auth" Version="1.5.0" />
<PackageVersion Include="CasCap.Api.Azure.Auth" Version="1.5.0" />Directory.Packages.props
<PackageReference Include="CasCap.Api.Azure.Auth" />Project file
paket add CasCap.Api.Azure.Auth --version 1.5.0
#r "nuget: CasCap.Api.Azure.Auth, 1.5.0"
#:package CasCap.Api.Azure.Auth@1.5.0
#addin nuget:?package=CasCap.Api.Azure.Auth&version=1.5.0Install as a Cake Addin
#tool nuget:?package=CasCap.Api.Azure.Auth&version=1.5.0Install as a Cake Tool
Helper library for Azure authentication. Provides a factory for creating TokenCredential instances from certificate-based configuration properties and an abstraction for Azure Key Vault and Entra ID settings.
dotnet add package CasCap.Api.Azure.Auth
Target frameworks: net8.0, net9.0, net10.0
| Type | Name | Description |
|---|---|---|
| Interface | IAzureAuthConfig |
Exposes Azure authentication configuration: Key Vault name/URI, Entra ID tenant/application IDs, certificate thumbprint or PFX path/password, and a lazily-resolved TokenCredential. Provides IsKeyVaultEnabled to allow Key Vault-free operation. |
| Static factory | TokenCredentialExtensions |
Creates ClientCertificateCredential from IAzureAuthConfig properties (certificate thumbprint or PFX file). |
TokenCredentialExtensions.IsPodManagedIdentity — Checks whether the current pod is using Azure workload identity (federated tokens).TokenCredentialExtensions.CreateTokenCredential(IAzureAuthConfig) — Creates a ClientCertificateCredential from the certificate properties in the configuration, or returns null if no certificate is available.| Class | Section | Properties |
|---|---|---|
AzureAuthConfig |
AppConfig |
KeyVaultName (required), IsKeyVaultEnabled (computed), AzureEntraPodManagedIdentityClientId, AzureEntraTenantId, AzureEntraApplicationId, AzureEntraCertThumbprint, AzureEntraPfxPath, AzureEntraPfxPassword |
AzureAuthConfig implements both IAppConfig and IAzureAuthConfig. The TokenCredential property is lazily created from the certificate properties via TokenCredentialExtensions.
Set KeyVaultName to "skip" (case-insensitive) to disable Key Vault integration entirely. When IsKeyVaultEnabled returns false:
TokenCredential is not resolved (no certificate lookup is attempted).appsettings.json).StorageExtensions.CreateTableClient() automatically fall back to connection strings when the connection string contains ; (e.g. Azurite emulator).Override via any configuration source:
AppConfig__KeyVaultName=skip{ "AppConfig": { "KeyVaultName": "skip" } }TokenCredential creation from configuration:
flowchart TD
CONFIG["AzureAuthConfig<br/>(IAzureAuthConfig)"]
subgraph Detection["Environment Detection"]
POD_CHECK{"IsPodManagedIdentity()?<br/>(Azure Workload Identity)"}
WORKLOAD["WorkloadIdentityCredential<br/>(Federated token from pod)"]
end
subgraph CertificateSource["Certificate Source"]
THUMBPRINT{"CertThumbprint<br/>provided?"}
PFX{"PfxPath +<br/>PfxPassword<br/>provided?"}
STORE["X509Store<br/>(LocalMachine\\My)"]
FILE["X509Certificate2<br/>(from PFX file)"]
end
CREDENTIAL["ClientCertificateCredential"]
NULL["null<br/>(no credential)"]
subgraph AzureServices["Azure Services"]
KV["Key Vault"]
STORAGE["Storage"]
EH["Event Hub"]
SB["Service Bus"]
end
CONFIG --> SKIP_CHECK{"KeyVaultName<br/>= 'skip'?"}
SKIP_CHECK -->|"Yes"| NULL
SKIP_CHECK -->|"No"| POD_CHECK
POD_CHECK -->|"Yes"| WORKLOAD
POD_CHECK -->|"No"| THUMBPRINT
THUMBPRINT -->|"Yes"| STORE
THUMBPRINT -->|"No"| PFX
PFX -->|"Yes"| FILE
PFX -->|"No"| NULL
STORE --> CREDENTIAL
FILE --> CREDENTIAL
WORKLOAD --> KV
WORKLOAD --> STORAGE
WORKLOAD --> EH
WORKLOAD --> SB
CREDENTIAL --> KV
CREDENTIAL --> STORAGE
CREDENTIAL --> EH
CREDENTIAL --> SB
Credential Resolution Priority:
KeyVaultName = "skip" → null (no credential, no Key Vault)LocalMachine\My certificate store| Package |
|---|
| Azure.Identity |
| CasCap.Common.Abstractions |
| CasCap.Common.Extensions |
| CasCap.Common.Logging |
None.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 4 NuGet packages that depend on CasCap.Api.Azure.Auth:
| Package | Downloads |
|---|---|
|
CasCap.Api.Knx.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Knx building automation integration library. |
|
|
CasCap.Api.DoorBird.Sinks
Pluggable event sink implementations (Redis, Azure Tables, Azure Blob Storage) for the CasCap.Api.DoorBird door station integration library. |
|
|
CasCap.Api.Fronius.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Fronius solar inverter integration library. |
|
|
CasCap.Api.Buderus.Sinks
Pluggable event sink implementations (Redis, Azure Tables) for the CasCap.Api.Buderus heating integration library. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.5.0 | 250 | 6/12/2026 |
| 1.4.13 | 179 | 6/10/2026 |
| 1.4.12 | 202 | 5/27/2026 |
| 1.4.11 | 192 | 5/26/2026 |
| 1.4.10 | 141 | 5/21/2026 |
| 1.4.9 | 103 | 5/20/2026 |
| 1.4.8 | 344 | 5/13/2026 |
| 1.4.7 | 256 | 5/8/2026 |
| 1.4.6 | 115 | 5/4/2026 |
| 1.4.5 | 105 | 5/4/2026 |
| 1.4.4 | 205 | 4/23/2026 |
| 1.4.3 | 158 | 4/17/2026 |
| 1.4.2 | 107 | 4/16/2026 |
| 1.4.1 | 136 | 4/15/2026 |