Ověřování pomocí sady Azure SDK pro .NET

Nejnovější balíčky v sadě Azure SDK pro .NET používají k ověření společný ověřovací balíček Azure.Identity . Použití Azure.Identity se doporučuje nad jinými ověřovacími mechanismy popsanými dále v tomto dokumentu. Balíčky podporující přihlašovací údaje poskytované službou jsou postavené na a mají identifikátory balíčků Azure.Identity Azure.Core začínající na Azure. Inventář balíčků, které používají , najdete v seznamu Azure.Core balíčků.

Úplné pokyny k použití v projektu najdete v dokumentaci ke Azure.Identity klientovi Azure Identity pro .NET.

Tip

Příklady použití Azure Identity ke správě prostředků Azure a přístupu k Storage najdete v tématu Identita Azure, Správa prostředků a správa prostředků Azure.

Informace o ověřování pomocí knihoven, které nepodporují Azure.Identity, najdete ve zbývající části tohoto tématu.

Přístup k prostředkům Azure

K interakci s prostředky Azure, jako je načtení tajného klíče z Key Vault nebo uložení objektu blob v Storage, vyžaduje mnoho knihoven služeb Azure pro ověření připojovací řetězec nebo klíče. Například SQL Database standardní připojovací SQL řetězec. Připojovací řetězce služeb se používají v jiných službách Azure, jako jsou CosmosDB, Azure Cache for Redisa Service Bus. Tyto řetězce můžete získat pomocí Azure Portal, rozhraní příkazového řádku nebo PowerShellu. Knihovny pro správu Azure pro .NET můžete použít také k dotazování prostředků a sestavení připojovacích řetězců v kódu.

Metody použití připojovacího řetězce se liší podle produktu. Přečtěte si dokumentaci k vašemu produktu Azure.

Správa prostředků Azure

Vaše aplikace .NET potřebuje oprávnění ke čtení a vytváření prostředků ve vašem předplatném Azure, aby bylo možné používat knihovny pro správu Azure pro .NET. Vytvořte instanční objekt a nakonfigurujte svou aplikaci tak, aby běžela s přihlašovacími údaji pro udělení tohoto přístupu. Instanční objekty představují způsob, jak vytvořit neinteraktivní účet přidružený k vaší identitě, kterému udělíte pouze oprávnění potřebná k fungování vaší aplikace.

Nejdřív se přihlaste k Azure Cloud Shell. Ověřte, že aktuálně používáte předplatné, ve kterém chcete instanční objekt vytvořit.

az account show

Zobrazí se informace o vašem předplatném.

{
  "environmentName": "AzureCloud",
  "id": "15dbcfa8-4b93-4c9a-881c-6189d39f04d4",
  "isDefault": true,
  "name": "my-subscription",
  "state": "Enabled",
  "tenantId": "43413cc1-5886-4711-9804-8cfea3d1c3ee",
  "user": {
    "cloudShellID": true,
    "name": "jane@contoso.com",
    "type": "user"
  }
}

Pokud nejste přihlášení ke správnému předplatnému, vyberte správný zápis zadáním az account set -s <name or ID of subscription>.

Objekt služby vytvořte pomocí následujícího příkazu:

az ad sp create-for-rbac --sdk-auth

Hlavní informace o instančním objektu se zobrazí jako JSON.

{
  "clientId": "b52dd125-9272-4b21-9862-0be667bdf6dc",
  "clientSecret": "ebc6e170-72b2-4b6f-9de2-99410964d2d0",
  "subscriptionId": "ffa52f27-be12-4cad-b1ea-c2c241b6cceb",
  "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
  "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
  "resourceManagerEndpointUrl": "https://management.azure.com/",
  "activeDirectoryGraphResourceId": "https://graph.windows.net/",
  "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
  "galleryEndpointUrl": "https://gallery.azure.com/",
  "managementEndpointUrl": "https://management.core.windows.net/"
}

Zkopírujte a vložte výstup JSON do textového editoru pro pozdější použití.

Teď, když je objekt služby vytvořený, jsou k dispozici dvě možnosti pro ověření pro tento objekt služby pro vytváření a správu prostředků.

U obou možností budete muset do projektu přidat následující NuGet balíčky.

Install-Package Microsoft.Azure.Management.Fluent
Install-Package Microsoft.Azure.Management.ResourceManager.Fluent

Ověřování pomocí přihlašovacích údajů tokenu

První metodou je sestavení objektu přihlašovacích údajů tokenu v kódu. Přihlašovací údaje byste měli bezpečně uložit do konfiguračního souboru, registru nebo služby Azure KeyVault.

var credentials = SdkContext.AzureCredentialsFactory
    .FromServicePrincipal(clientId,
        clientSecret,
        tenantId,
        AzureEnvironment.AzureGlobalCloud);

Při vytváření objektu služby použijte hodnoty clientId , clientSecret a tenantId z výstupu JSON.

Pak vytvořte objekt vstupního Azure bodu, abyste začali pracovat s rozhraním API:

var azure = Microsoft.Azure.Management.Fluent.Azure
    .Configure()
    .Authenticate(credentials)
    .WithDefaultSubscription();

Doporučujeme do objektu explicitně zadat subscriptionId z výstupu Azure JSON:

var azure = Microsoft.Azure.Management.Fluent.Azure
    .Configure()
    .Authenticate(credentials)
    .WithSubscription(subscriptionId);

Ověřování na základě souborů

Ověřování na základě souborů umožňuje umístit přihlašovací údaje instančního objektu do souboru prostého textu a zabezpečit ho v systému souborů.

Vytvořte textový soubor s názvem azureauth.json. Při vytváření instančního objektu vložte výstup JSON.

Uložte tento soubor na bezpečné místo ve vašem systému, kde z něho bude moct číst váš kód. Pomocí PowerShellu nastavte proměnnou prostředí s názvem AZURE_AUTH_LOCATION úplnou cestou k souboru, třeba:

[Environment]::SetEnvironmentVariable("AZURE_AUTH_LOCATION", "C:\src\azureauth.json", "User")

Přečtěte si obsah souboru a vytvořte objekt vstupního Azure bodu, abyste začali pracovat s rozhraním API:

// pull in the location of the authentication properties file from the environment
var credentials = SdkContext.AzureCredentialsFactory
    .FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION"));

var azure = Microsoft.Azure.Management.Fluent.Azure
    .Configure()
    .Authenticate(credentials)
    .WithDefaultSubscription();