Sdílet prostřednictvím


Vytvoření typů přihlašovacích údajů Microsoft Entra pomocí konfiguračních souborů

Knihovna Microsoft.Extensions.Azure podporuje vytváření různých Azure.Core.TokenCredential typů z párů klíč-hodnota definovaných v appsettings.json a dalších konfiguračních souborech. Typy přihlašovacích údajů odpovídají podmnožině tříd přihlašovacích údajů v klientské knihovně azure Identity. Tento článek popisuje podporu různých TokenCredential typů a způsob konfigurace požadovaných párů klíč-hodnota pro každý typ.

Podpora přihlašovacích údajů Azure prostřednictvím konfigurace

Knihovna Microsoft.Extensions.Azure může automaticky poskytovat klientům TokenCredential služeb Azure třídu vyhledáváním appsettings.json nebo jiných konfiguračních souborů pro hodnoty přihlašovacích údajů pomocí IConfiguration abstrakce pro .NET. Tento přístup umožňuje vývojářům explicitně nastavit hodnoty přihlašovacích údajů v různých prostředích prostřednictvím konfigurace, nikoli přímo prostřednictvím kódu aplikace.

Konfigurace podporuje následující typy přihlašovacích údajů:

Konfigurace přihlašovacích údajů Azure

Klienti služby Azure zaregistrovaní v metodě AddAzureClients se automaticky konfigurují s instancí, pokud DefaultAzureCredential prostřednictvím metody rozšíření nejsou zadány WithCredential žádné explicitní přihlašovací údaje. Globální hodnoty můžete také přepsat DefaultAzureCredential pomocí hodnot přihlašovacích údajů z konfiguračních souborů při registraci klienta a vytvořit konkrétní typ přihlašovacích údajů:

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");
});

Přidružený soubor appsettings.json :

"Storage": {
    "serviceUri": "<service_uri>",
    "credential": "managedidentity",
    "clientId":  "<clientId>"
}

Následující typy přihlašovacích údajů také podporují AdditionallyAllowedTenants vlastnost, která určuje další tenanty Microsoft Entra nad rámec výchozího tenanta, pro kterého mohou přihlašovací údaje získat tokeny:

Přidejte hodnotu se zástupnými znamény "*", aby přihlašovací údaje mohly získat tokeny pro libovolného tenanta Microsoft Entra, ke které má přihlášený účet přístup. Pokud nejsou zadána žádná ID tenanta, tato možnost nebude mít žádný vliv na tuto metodu ověřování a přihlašovací údaje při použití této metody získají tokeny pro libovolného požadovaného tenanta.

{
    "additionallyAllowedTenants":  "<tenant-ids-separated-by-semicolon>"
}

Vytvoření ManagedIdentityCredential typu

Spravované identity přiřazené uživatelem i systémem můžete vytvářet pomocí hodnot konfigurace. Přidejte do souboru appsettings.json následující páry klíč-hodnota pro vytvoření instance Azure.Identity.ManagedIdentityCredential.

Spravované identity přiřazené uživatelem

Spravovanou identitu přiřazenou uživatelem je možné použít zadáním ID klienta, ID prostředku nebo ID objektu:

  • ID klienta:

    {
        "credential": "managedidentity",
        "clientId":  "<clientId>"
    }
    
  • ID prostředku:

    {
        "credential": "managedidentity",
        "managedIdentityResourceId":  "<managedIdentityResourceId>"
    }
    

    ID prostředku má tvar /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}.

  • ID objektu:

    {
        "credential": "managedidentity",
        "managedIdentityObjectId":  "<managedIdentityObjectId>"
    }    
    

    Důležité

    Vlastnost managedIdentityObjectId JSON je podporována ve Microsoft.Extensions.Azure verzích 1.8.0 a novějších.

Spravované identity přiřazené systémem

{
    "credential": "managedidentity"
}

Vytvoření WorkloadIdentityCredential typu

Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.WorkloadIdentityCredential:

{
    "credential": "workloadidentity",
    "tenantId":  "<tenantId>",
    "clientId":  "<clientId>",
    "tokenFilePath": "<tokenFilePath>"
}

Vytvoření ClientSecretCredential typu

Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.ClientSecretCredential:

{
    "tenantId":  "<tenantId>",
    "clientId":  "<clientId>",
    "clientSecret": "<clientSecret>"
}

Vytvoření ClientCertificateCredential typu

Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.ClientCertificateCredential:

{
    "tenantId":  "<tenantId>",
    "clientId":  "<clientId>",
    "clientCertificate": "<clientCertificate>",
    "clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
    "additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}

Poznámka:

additionallyAllowedTenants Páry clientCertificateStoreLocation klíč-hodnota jsou volitelné. Pokud jsou klíče přítomné a mají prázdné hodnoty, budou ignorovány. Pokud není zadána žádná clientCertificateStoreLocation , použije se výchozí hodnota CurrentUser z výčtu X509Credentials.StoreLocation .

Vytvoření DefaultAzureCredential typu

Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.DefaultAzureCredential:

{
    "tenantId":  "<tenantId>",
    "clientId":  "<clientId>",
    "managedIdentityResourceId": "<managedIdentityResourceId>"
}