Microsoft Entra-referentietypen maken met behulp van configuratiebestanden
De Microsoft.Extensions.Azure
bibliotheek ondersteunt het maken van verschillende Azure.Core.TokenCredential typen van sleutel-waardeparen die zijn gedefinieerd in appsettings.json en andere configuratiebestanden. De referentietypen komen overeen met een subset van de referentieklassen in de Azure Identity-clientbibliotheek. In dit artikel wordt de ondersteuning voor verschillende TokenCredential
typen beschreven en wordt beschreven hoe u de vereiste sleutel-waardeparen voor elk type configureert.
Ondersteuning voor Azure-referenties via configuratie
De Microsoft.Extensions.Azure
bibliotheek kan automatisch Azure-serviceclients een TokenCredential
klasse bieden door te zoeken naar appsettings.json of andere configuratiebestanden voor referentiewaarden met behulp van de IConfiguration
abstractie voor .NET. Met deze methode kunnen ontwikkelaars expliciet referentiewaarden instellen in verschillende omgevingen via configuratie in plaats van rechtstreeks via app-code.
De volgende referentietypen worden ondersteund via configuratie:
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Azure-referenties configureren
Azure-serviceclients die zijn geregistreerd bij de AddAzureClients methode, worden automatisch geconfigureerd met een exemplaar van DefaultAzureCredential
als er geen expliciete referenties worden opgegeven via de WithCredential extensiemethode. U kunt ook het algemene DefaultAzureCredential
bestand overschrijven met behulp van referentiewaarden uit configuratiebestanden bij het registreren van een client om een specifiek referentietype te maken:
builder.Services.AddAzureClients(clientBuilder =>
{
// Register BlobServiceClient using credentials from appsettings.json
clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("Storage"));
// Register ServiceBusClient using the fallback DefaultAzureCredential credentials
clientBuilder.AddServiceBusClientWithNamespace(
"<your_namespace>.servicebus.windows.net");
});
Het gekoppelde appsettings.json-bestand :
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<clientId>"
}
De volgende referentietypen ondersteunen ook de AdditionallyAllowedTenants
eigenschap, waarmee extra Microsoft Entra-tenants worden opgegeven buiten de standaardtenant waarvoor de referentie tokens kan verkrijgen:
Voeg de jokertekenwaarde *toe om de referentie toe te staan tokens te verkrijgen voor elke Microsoft Entra-tenant die toegang heeft tot het aangemelde account. Als er geen tenant-id's zijn opgegeven, heeft deze optie geen effect op die verificatiemethode en krijgt de referentie tokens voor een aangevraagde tenant wanneer deze methode wordt gebruikt.
{
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
ManagedIdentityCredential
Een type maken
U kunt zowel door de gebruiker toegewezen als door het systeem toegewezen beheerde identiteiten maken met behulp van configuratiewaarden. Voeg de volgende sleutel-waardeparen toe aan uw appsettings.json-bestand om een exemplaar van Azure.Identity.ManagedIdentityCredentialte maken.
Door de gebruiker toegewezen beheerde identiteiten
Een door de gebruiker toegewezen beheerde identiteit kan worden gebruikt door een client-id, resource-id of object-id op te geven:
Client-id:
{ "credential": "managedidentity", "clientId": "<clientId>" }
Resource-id:
{ "credential": "managedidentity", "managedIdentityResourceId": "<managedIdentityResourceId>" }
De resource-id heeft de vorm
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
.Object-id:
{ "credential": "managedidentity", "managedIdentityObjectId": "<managedIdentityObjectId>" }
Belangrijk
De
managedIdentityObjectId
JSON-eigenschap wordt ondersteund inMicrosoft.Extensions.Azure
versie 1.8.0 en hoger.
Door het systeem toegewezen beheerde identiteiten
{
"credential": "managedidentity"
}
WorkloadIdentityCredential
Een type maken
Voeg de volgende sleutel-waardeparen toe aan uw appsettings.json-bestand om een Azure.Identity.WorkloadIdentityCredentialbestand te maken:
{
"credential": "workloadidentity",
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"tokenFilePath": "<tokenFilePath>"
}
ClientSecretCredential
Een type maken
Voeg de volgende sleutel-waardeparen toe aan uw appsettings.json-bestand om een Azure.Identity.ClientSecretCredentialbestand te maken:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientSecret": "<clientSecret>"
}
ClientCertificateCredential
Een type maken
Voeg de volgende sleutel-waardeparen toe aan uw appsettings.json-bestand om een Azure.Identity.ClientCertificateCredentialbestand te maken:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientCertificate": "<clientCertificate>",
"clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Notitie
De clientCertificateStoreLocation
en additionallyAllowedTenants
sleutel-waardeparen zijn optioneel. Als de sleutels aanwezig zijn en lege waarden hebben, worden ze genegeerd. Als er geen clientCertificateStoreLocation
is opgegeven, wordt de standaardwaarde CurrentUser
uit de X509Credentials.StoreLocation enum gebruikt.
DefaultAzureCredential
Een type maken
Voeg de volgende sleutel-waardeparen toe aan uw appsettings.json-bestand om een Azure.Identity.DefaultAzureCredentialbestand te maken:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"managedIdentityResourceId": "<managedIdentityResourceId>"
}