Delen via


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:

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 in Microsoft.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>"
}