Sdílet prostřednictvím


Kurz: Použití virtuálního počítače s Windows nebo VMSS pro přístup k prostředkům Azure

Spravované identity pro prostředky Azure jsou funkcí ID Microsoft Entra. Každá ze služeb Azure, které podporují spravované identity pro prostředky Azure, se řídí vlastní časovou osou. Než začnete, nezapomeňte zkontrolovat stav dostupnosti spravovaných identit pro váš prostředek a známé problémy.

Požadavky

  • Znalost spravovaných identit. Pokud ještě neznáte funkci spravovaných identit pro prostředky Azure, podívejte se na tento přehled.
  • Účet Azure, zaregistrujte si bezplatný účet.
  • Oprávnění vlastníka v příslušném oboru (vaše předplatné nebo skupina prostředků) k provedení požadovaných kroků pro vytvoření prostředku a správu rolí. Pokud potřebujete pomoc s přiřazením role, přečtěte si téma Přiřazení rolí Azure ke správě přístupu k prostředkům předplatného Azure.
  • Virtuální počítač s Windows, který má povolené spravované identity přiřazené systémem.

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Azure Data Lake Store

V tomto kurzu se dozvíte, jak pomocí spravované identity přiřazené systémem pro virtuální počítač s Windows získat přístup ke službě Azure Data Lake Store. Spravované identity se automaticky spravují v Azure. Umožňují vaší aplikaci ověřovat se ve službách, které podporují ověřování Microsoft Entra, aniž by do kódu museli vkládat přihlašovací údaje.

V tomto článku se naučíte:

  • Udělení přístupu virtuálnímu počítači ke službě Azure Data Lake Store
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k přístupu ke službě Azure Data Lake Store

Povolit

Povolení spravované identity přiřazené systémem je prostředí jedním kliknutím. Můžete ho buď povolit při vytváření virtuálního počítače, nebo ve vlastnostech existujícího virtuálního počítače.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete zapnout stav přiřazeného systému.

Povolení spravované identity přiřazené systémem na novém virtuálním počítači:

  1. Přihlaste se k portálu Azure.

  2. Vytvořte virtuální počítač s povolenou identitou přiřazenou systémem.

Udělit přístup

Virtuálnímu počítači můžete udělit přístup k souborům a složkám v Azure Data Lake Store. Pro tento krok můžete použít stávající službu Data Lake Store nebo vytvořit novou.

Pokud chcete vytvořit nový Data Lake Store pomocí webu Azure Portal, přečtěte si rychlý start k Azure Data Lake Store. Rychlé starty s využitím Azure CLI a Azure PowerShellu najdete v dokumentaci ke službě Azure Data Lake Store.

Ve službě Data Lake Store vytvořte novou složku a udělte identitě přiřazené systémem virtuálního počítače oprávnění. Identita potřebuje práva ke čtení, zápisu a spouštění souborů v této složce:

  1. Na webu Azure Portal vyberte v levém navigačním panelu Data Lake Store .
  2. Vyberte Službu Data Lake Store, kterou chcete použít pro účely tohoto kurzu.
  3. Na panelu příkazů vyberte Průzkumníka dat.
  4. Vybere se kořenová složka služby Data Lake Store. Na panelu příkazů vyberte Access .
  5. Vyberte Přidat. Do pole Vybrat zadejte název vašeho virtuálního počítače, například DevTestVM. Ve výsledcích hledání vyberte virtuální počítač a pak vyberte Vybrat.
  6. Vyberte vybrat oprávnění a pak číst a spouštět. Přidat do této složky a pak vybrat pouze přístupová oprávnění.
  7. Vyberte ok a pak zavřete okno Accessu . Oprávnění by mělo být úspěšně přidané.
  8. Dále vytvořte novou složku. Na panelu příkazů vyberte Možnost Nová složka a zadejte název nové složky. Například TestFolder a pak vyberte OK.
  9. Vyberte složku, kterou jste vytvořili, a pak na panelu příkazů vyberte Access .
  10. Vyberte Přidat a pak do pole Vybrat zadejte název virtuálního počítače a vyberte Vybrat.
  11. Vyberte vybrat oprávnění a pak číst, zapisovat a spouštět. Přidejte ji do této složky a pak přidejte jako položku oprávnění pro přístup a výchozí položku oprávnění.
  12. Vyberte OK. Oprávnění by mělo být úspěšně přidáno.

Spravovaná identita přiřazená systémem virtuálního počítače teď může provádět všechny operace se soubory ve složce, kterou jste vytvořili. Informace o správě přístupu ke službě Data Lake Store najdete v tématu Řízení přístupu ve službě Data Lake Store.

Přístup k datům

Azure Data Lake Store nativně podporuje ověřování Microsoft Entra, aby mohl přímo přijímat přístupové tokeny získané pomocí spravovaných identit pro prostředky Azure. Pokud se chcete ověřit v systému souborů Data Lake Store, odešlete přístupový token vydaný ID Microsoft Entra do koncového bodu systému souborů Data Lake Store v autorizační hlavičce. Záhlaví má formát Bearer <ACCESS_TOKEN_VALUE>.

Další informace o podpoře ověřování Microsoft Entra ve službě Data Lake Store najdete v tématu Ověřování ve službě Data Lake Store pomocí MICROSOFT Entra ID.

Poznámka:

Klientské sady SDK systému souborů Data Lake Store zatím spravované identity pro prostředky Azure nepodporují.

V tomto kurzu pomocí PowerShellu provedete ověření v rozhraní REST API systému souborů Data Lake Store, abyste mohli odesílat požadavky REST. Pokud chcete k ověření použít spravovanou identitu přiřazenou systémem virtuálního počítače, musíte požadavek odeslat z příslušného virtuálního počítače.

  1. Na portálu přejděte na virtuální počítače s Windows. Potom v přehledu vyberte Připojit.

  2. Zadejte uživatelské jméno a heslo, které jste přidali při vytváření virtuálního počítače s Windows.

  3. Teď, když jste vytvořili připojení ke vzdálené ploše s virtuálním počítačem, otevřete PowerShell ve vzdálené relaci.

  4. Pomocí rutiny PowerShellu Invoke-WebRequest vytvořte požadavek na místní spravované identity pro koncový bod prostředků Azure, abyste získali přístupový token pro Azure Data Lake Store. Identifikátor prostředku pro Data Lake Store je https://datalake.azure.net/. Data Lake přesně odpovídá identifikátoru prostředku, takže koncové lomítko je důležité.

    $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatalake.azure.net%2F' -Method GET -Headers @{Metadata="true"}
    

    Převeďte odpověď z objektu JSON na objekt PowerShellu.

    $content = $response.Content | ConvertFrom-Json
    

    Extrahujte z odpovědi přístupový token.

    $AccessToken = $content.access_token
    
  5. Zkontrolujte, jestli je všechno správně nakonfigurované. Pomocí rutiny PowerShellu Invoke-WebRequest vytvořte do koncového bodu REST služby Data Lake Store požadavek na výpis složek v kořenové složce. Je důležité, aby řetězec Bearer v autorizační hlavičce byl velkým písmenem B. Název služby Data Lake Store najdete v části Přehled služby Data Lake Store.

    Invoke-WebRequest -Uri https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -Headers @{Authorization="Bearer $AccessToken"}
    

    Úspěšná odpověď vypadá takto:

    StatusCode        : 200
    StatusDescription : OK
    Content           : {"FileStatuses":{"FileStatus":[{"length":0,"pathSuffix":"TestFolder","type":"DIRECTORY", "blockSize":0,"accessTime":1507934941392, "modificationTime":1507944835699,"replication":0, "permission":"770","ow..."
    RawContent        : HTTP/1.1 200 OK
                        Pragma: no-cache
                        x-ms-request-id: b4b31e16-e968-46a1-879a-3474aa7d4528
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosniff
                        Strict-Transport-Security: ma...
    Forms             : {}
    Headers           : {[Pragma, no-cache], [x-ms-request-id, b4b31e16-e968-46a1-879a-3474aa7d4528],
                        [x-ms-webhdfs-version, 17.04.22.00], [Status, 0x0]...}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        : System.__ComObject
    RawContentLength  : 556
    
  6. Teď zkuste nahrát soubor do Služby Data Lake Store. Nejprve vytvořte soubor, který chcete nahrát.

    echo "Test file." > Test1.txt
    
  7. Pomocí rutiny PowerShellu Invoke-WebRequest odešlete do koncového bodu REST služby Data Lake Store požadavek na nahrání souboru do dříve vytvořené složky. Tento požadavek se skládá ze dvou kroků.

    1. Vytvořte požadavek a získejte přesměrování na místo, kam se má soubor nahrát.
    2. Nahrajte soubor . Nezapomeňte správně nastavit název složky a souboru, pokud jste použili jiné hodnoty, než je uvedeno v tomto kurzu.
    $HdfsRedirectResponse = Invoke-WebRequest -Uri https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE -Method PUT -Headers @{Authorization="Bearer $AccessToken"} -Infile Test1.txt -MaximumRedirection 0
    

    Pokud zkontrolujete hodnotu $HdfsRedirectResponse, měla by vypadat jako následující odpověď:

    PS C:\> $HdfsRedirectResponse
    
    StatusCode        : 307
    StatusDescription : Temporary Redirect
    Content           : {}
    RawContent        : HTTP/1.1 307 Temporary Redirect
                        Pragma: no-cache
                        x-ms-request-id: b7ab492f-b514-4483-aada-4aa0611d12b3
                        ContentLength: 0
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosn...
    Headers           : {[Pragma, no-cache], [x-ms-request-id, b7ab492f-b514-4483-aada-4aa0611d12b3], 
                        [ContentLength, 0], [x-ms-webhdfs-version, 17.04.22.00]...}
    RawContentLength  : 0
    

    Dokončete nahrávání odesláním požadavku do koncového bodu přesměrování:

    Invoke-WebRequest -Uri $HdfsRedirectResponse.Headers.Location -Method PUT -Headers @{Authorization="Bearer $AccessToken"} -Infile Test1.txt -MaximumRedirection 0
    

    Úspěšná odpověď vypadá takto:

    StatusCode        : 201
    StatusDescription : Created
    Content           : {}
    RawContent        : HTTP/1.1 201 Created
                        Pragma: no-cache
                        x-ms-request-id: 1e70f36f-ead1-4566-acfa-d0c3ec1e2307
                        ContentLength: 0
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosniff
                        Strict...
    Headers           : {[Pragma, no-cache], [x-ms-request-id, 1e70f36f-ead1-4566-acfa-d0c3ec1e2307],
                        [ContentLength, 0], [x-ms-webhdfs-version, 17.04.22.00]...}
    RawContentLength  : 0
    

Nakonec můžete použít další rozhraní API systému souborů Data Lake Store pro připojení k souborům a stahování souborů a další.

Zakázat

Pokud chcete na virtuálním počítači zakázat identitu přiřazenou systémem, nastavte stav identity přiřazené systémem na Vypnuto.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete stav přiřazeného systému vypnout.

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Azure Storage

V tomto kurzu se dozvíte, jak pomocí spravované identity přiřazené systémem pro virtuální počítač s Windows získat přístup ke službě Azure Storage. Získáte informace pro:

  • Vytvoření kontejneru objektů blob v účtu úložiště
  • Udělení přístupu k účtu úložiště spravovaným identitám přiřazeným systémem na virtuálním počítači s Windows
  • Získání a použití přístupu k volání Azure Storage

Povolit

Povolení spravované identity přiřazené systémem je prostředí jedním kliknutím. Můžete ho buď povolit při vytváření virtuálního počítače, nebo ve vlastnostech existujícího virtuálního počítače.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete zapnout stav přiřazeného systému.

Povolení spravované identity přiřazené systémem na novém virtuálním počítači:

  1. Přihlaste se k portálu Azure.

  2. Vytvořte virtuální počítač s povolenou identitou přiřazenou systémem.

Vytvoření účtu úložiště

V této části vytvoříte účet úložiště.

  1. V levém horním rohu webu Azure Portal vyberte tlačítko + Vytvořit prostředek.

  2. Vyberte Storage, pak Účet úložiště – objekt blob, soubor, tabulka, fronta.

  3. Do pole Název zadejte název účtu úložiště.

  4. V polích Model nasazení a Druh účtu nastavte Resource manager a Úložiště (v1 pro obecné účely).

  5. Ověřte, že pole Předplatné a Skupina prostředků se shodují s údaji zadanými při vytvoření virtuálního počítače v předchozím kroku.

  6. Vyberte Vytvořit.

    Snímek obrazovky znázorňující, jak vytvořit nový účet úložiště

Vytvoření kontejneru objektů blob a nahrání souboru do účtu úložiště

Soubory vyžadují úložiště objektů blob. Proto potřebujete vytvořit kontejner objektů blob, do kterého soubor uložíte. Potom soubor nahrajete do kontejneru objektů blob v novém účtu úložiště.

  1. Přejděte na nově vytvořený účet úložiště.

  2. V části Blob Service vyberte Kontejnery.

  3. V horní části stránky vyberte + Kontejner .

  4. Do pole Nový kontejner zadejte název kontejneru a potom v možnosti Úroveň veřejného přístupu ponechte výchozí hodnotu.

    Snímek obrazovky znázorňující, jak vytvořit kontejner úložiště

  5. Na místním počítači vytvořte ve vámi vybraném editoru soubor s názvem hello world.txt. Otevřete soubor a přidejte text Hello world! a pak ho uložte.

  6. Vyberte název kontejneru, který chcete nahrát soubor do nově vytvořeného kontejneru, a pak vyberte Nahrát.

  7. V podokně Nahrát objekt blob v části Soubory vyberte ikonu složky a přejděte na soubor hello_world.txt na místním počítači. Pak vyberte soubor a nahrajte ho. Snímek obrazovky s obrazovkou pro nahrání textového souboru

Udělit přístup

V této části se dozvíte, jak udělit virtuálnímu počítači přístup ke kontejneru Azure Storage. Spravovanou identitu přiřazenou systémem na virtuálním počítači můžete použít k načtení dat, která jsou v úložišti Azure Storage Blob.

  1. Přejděte na nově vytvořený účet úložiště.

  2. Vyberte Řízení přístupu (IAM) .

  3. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  4. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

    Nastavení Hodnota
    Role Čtenář dat v objektech blob služby Storage
    Přiřadit přístup k Spravovaná identita
    Přiřazeno systémem Virtuální počítač
    Vyberte <váš virtuální počítač>

    Snímek obrazovky znázorňující stránku pro přidání přiřazení role

Přístup k datům

Azure Storage nativně podporuje ověřování Microsoft Entra, takže může přímo přijímat přístupové tokeny získané pomocí spravované identity. Tento přístup používá integraci služby Azure Storage s ID Microsoft Entra a liší se od zadávání přihlašovacích údajů v připojovací řetězec.

Tady je příklad kódu .NET pro otevření připojení ke službě Azure Storage. Příklad používá přístupový token a pak přečte obsah souboru, který jste vytvořili dříve. Tento kód je potřeba spustit na virtuálním počítači, aby byl možný přístup ke koncovému bodu spravované identity virtuálního počítače. K použití metody přístupového tokenu se vyžaduje rozhraní .NET Framework 4.6 nebo vyšší. Parametr <URI to blob file> nahraďte odpovídající hodnotou. Tuto hodnotu získáte, když přejdete k vytvořenému souboru, který jste nahráli do úložiště objektů blob, a zkopírujete adresu URL, která je na stránce Přehled v části Vlastnosti.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

namespace StorageOAuthToken
{
    class Program
    {
        static void Main(string[] args)
        {
            //get token
            string accessToken = GetMSIToken("https://storage.azure.com/");

            //create token credential
            TokenCredential tokenCredential = new TokenCredential(accessToken);

            //create storage credentials
            StorageCredentials storageCredentials = new StorageCredentials(tokenCredential);

            Uri blobAddress = new Uri("<URI to blob file>");

            //create block blob using storage credentials
            CloudBlockBlob blob = new CloudBlockBlob(blobAddress, storageCredentials);

            //retrieve blob contents
            Console.WriteLine(blob.DownloadText());
            Console.ReadLine();
        }

        static string GetMSIToken(string resourceID)
        {
            string accessToken = string.Empty;
            // Build request to acquire MSI token
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=" + resourceID);
            request.Headers["Metadata"] = "true";
            request.Method = "GET";

            try
            {
                // Call /token endpoint
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Pipe response Stream to a StreamReader, and extract access token
                StreamReader streamResponse = new StreamReader(response.GetResponseStream());
                string stringResponse = streamResponse.ReadToEnd();
                JavaScriptSerializer j = new JavaScriptSerializer();
                Dictionary<string, string> list = (Dictionary<string, string>)j.Deserialize(stringResponse, typeof(Dictionary<string, string>));
                accessToken = list["access_token"];
                return accessToken;
            }
            catch (Exception e)
            {
                string errorText = String.Format("{0} \n\n{1}", e.Message, e.InnerException != null ? e.InnerException.Message : "Acquire token failed");
                return accessToken;
            }
        }
    }
}

Odpověď bude obsahovat obsah souboru:

Hello world! :)

Zakázat

Pokud chcete na virtuálním počítači zakázat identitu přiřazenou systémem, nastavte stav identity přiřazené systémem na Vypnuto.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete stav přiřazeného systému vypnout.

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup ke službě Azure Storage prostřednictvím přihlašovacích údajů SAS

V tomto kurzu se dozvíte, jak pomocí identity přiřazené systémem pro virtuální počítač s Windows získat přihlašovací údaje sdíleného přístupového podpisu (SAS) úložiště.

Sas služby poskytuje možnost udělit omezený přístup k objektům v účtu úložiště po omezenou dobu a pro konkrétní službu (v tomto případě službu blob). SAS to dělá bez vystavení přístupového klíče účtu. Přihlašovací údaje SAS můžete použít jako obvykle pro operace úložiště; Například při použití sady SDK úložiště. Tento kurz ukazuje nahrání a stažení objektu blob pomocí Azure Storage PowerShellu.

Získáte následující informace:

  • Vytvoření účtu úložiště
  • Udělení přístupu k SAS účtu úložiště v Resource Manageru pro virtuální počítač
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k načtení SAS z Resource Manageru

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Vytvoření účtu úložiště

Pokud ho ještě nemáte, musíte si vytvořit účet úložiště. V opačném případě pomocí těchto kroků udělte spravované identitě přiřazené systémem virtuálního počítače přístup k přihlašovacím údajům SAS existujícího účtu úložiště.

  1. Vyberte Úložiště a pak účet úložiště.

  2. Na panelu Vytvořit účet úložiště zadejte název účtu úložiště.

  3. Ujistěte se, že model nasazení a druh účtu jsou nastavené na Resource Manager a pro obecné účely.

  4. Zkontrolujte, jestli předplatné a skupina prostředků odpovídají položkám, které jste zadali při vytváření virtuálního počítače v předchozím kroku.

  5. Vyberte Vytvořit a vytvořte účet úložiště.

    Snímek obrazovky znázorňující, jak vytvořit nový účet úložiště

Vytvoření kontejneru objektů blob v účtu úložiště

Později v tomto kurzu nahrajete a stáhnete soubor do nového účtu úložiště. Vzhledem k tomu, že soubory vyžadují úložiště objektů blob, musíte vytvořit kontejner objektů blob pro uložení souboru.

  1. Přejděte na nově vytvořený účet úložiště.

  2. V části Blob Service vyberte odkaz Kontejnery na levém panelu.

  3. V horní části stránky vyberte + Kontejner a pak by se měl zobrazit panel Nový kontejner .

  4. Zadejte název kontejneru, určete úroveň přístupu a pak vyberte OK. Název, který zde zadáte, se použije později v kurzu.

    Snímek obrazovky znázorňující, jak vytvořit kontejner úložiště

Udělení přístupu k použití SAS úložiště spravované identitě přiřazené systémem virtuálního počítače

Azure Storage nativně nepodporuje ověřování Microsoft Entra. Spravovanou identitu ale můžete použít k načtení sdíleného přístupového podpisu úložiště z Resource Manageru a pak použít SAS pro přístup k úložišti. V tomto kroku udělíte spravované identitě přiřazené systémem virtuálního počítače přístup k SAS účtu úložiště.

  1. Vraťte se k nově vytvořenému účtu úložiště.

  2. Vyberte Řízení přístupu (IAM) .

  3. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  4. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

    Nastavení Hodnota
    Role Přispěvatel účtu úložiště
    Přiřadit přístup k Spravovaná identita
    Přiřazeno systémem Virtuální počítač
    Vyberte <váš virtuální počítač s Windows>

    Snímek obrazovky znázorňující stránku pro přidání přiřazení role

Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k volání Azure Resource Manageru

Ve zbývající části tohoto kurzu pracujete ze svého virtuálního počítače. V této části musíte použít rutiny PowerShellu Azure Resource Manageru. Pokud nemáte nainstalovaný PowerShell, stáhněte si nejnovější verzi, než budete pokračovat.

  1. Na webu Azure Portal přejděte na Virtuální počítače, přejděte na virtuální počítač s Windows a pak na stránce Přehled vyberte v horní části možnost Připojit .

  2. Zadejte uživatelské jméno a heslo , které jste přidali při vytváření virtuálního počítače s Windows.

  3. Vytvořte připojení ke vzdálené ploše s virtuálním počítačem.

  4. Ve vzdálené relaci otevřete PowerShell a pak pomocí rutiny PowerShellu Invoke-WebRequest získejte token Azure Resource Manageru z místní spravované identity pro koncový bod prostředků Azure.

       $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -Method GET -Headers @{Metadata="true"}
    

    Poznámka:

    Hodnota parametru resource musí být přesná shoda s tím, co očekává ID Microsoft Entra. Při použití ID prostředku Azure Resource Manageru musí být v identifikátoru URI koncové lomítko.

    Dále extrahujte content prvek, který je uložen jako javascriptový objektový zápis (JSON) formátovaný v objektu $response .

    $content = $response.Content | ConvertFrom-Json
    

    Potom z odpovědi extrahujte přístupový token.

    $ArmToken = $content.access_token
    

Získání pověření SAS z Azure Resource Manageru kvůli volání úložiště

Nakonec použijte PowerShell k volání Resource Manageru pomocí přístupového tokenu, který jste získali v předchozí části. Tento token použijete k vytvoření přihlašovacích údajů SAS úložiště. Jakmile budete mít přihlašovací údaje SAS, můžete volat jiné operace úložiště.

Pro tento požadavek použijte následující parametry požadavku HTTP k vytvoření přihlašovacích údajů SAS:

{
    "canonicalizedResource":"/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>",
    "signedResource":"c",              // The kind of resource accessible with the SAS, in this case a container (c).
    "signedPermission":"rcw",          // Permissions for this SAS, in this case (r)ead, (c)reate, and (w)rite. Order is important.
    "signedProtocol":"https",          // Require the SAS be used on https protocol.
    "signedExpiry":"<EXPIRATION TIME>" // UTC expiration time for SAS in ISO 8601 format, for example 2017-09-22T00:06:00Z.
}

Zde uvedené parametry jsou zahrnuty v textu POST požadavku pro přihlašovací údaje SAS. Další informace o parametrech pro vytvoření přihlašovacích údajů SAS najdete v referenčních informacích k rozhraní REST SAS služby List Service.

  1. Převeďte parametry na JSON a pak zavolejte koncový bod úložiště listServiceSas a vytvořte přihlašovací údaje SAS:

    $params = @{canonicalizedResource="/blob/<STORAGE-ACCOUNT-NAME>/<CONTAINER-NAME>";signedResource="c";signedPermission="rcw";signedProtocol="https";signedExpiry="2017-09-23T00:00:00Z"}
    $jsonParams = $params | ConvertTo-Json
    
    $sasResponse = Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE-ACCOUNT-NAME>/listServiceSas/?api-version=2017-06-01 -Method POST -Body $jsonParams -Headers @{Authorization="Bearer $ArmToken"}
    

    Poznámka:

    V adrese URL se rozlišují malá a velká písmena, takže se ujistěte, že při pojmenování skupiny prostředků použijete stejný případ, včetně velkého písmena "G" v resourceGroups.

  2. Dále extrahujte přihlašovací údaje SAS z odpovědi:

    $sasContent = $sasResponse.Content | ConvertFrom-Json
    $sasCred = $sasContent.serviceSasToken
    
  3. Pokud zkontrolujete přihlašovací údaje SAS, měli byste vidět něco takového:

    PS C:\> $sasCred
    sv=2015-04-05&sr=c&spr=https&se=2017-09-23T00%3A00%3A00Z&sp=rcw&sig=JVhIWG48nmxqhTIuN0uiFBppdzhwHdehdYan1W%2F4O0E%3D
    
  4. Vytvořte soubor s názvem test.txt. Pak pomocí přihlašovacích údajů SAS proveďte ověření pomocí rutiny New-AzStorageContent , nahrajte soubor do kontejneru objektů blob a pak soubor stáhněte.

    echo "This is a test text file." > test.txt
    
  5. Nejprve je potřeba nainstalovat rutiny Azure Storage pomocí Install-Module Azure.Storage. Pak pomocí rutiny PowerShellu Set-AzStorageBlobContent nahrajte objekt blob, který jste právě vytvořili:

    $ctx = New-AzStorageContext -StorageAccountName <STORAGE-ACCOUNT-NAME> -SasToken $sasCred
    Set-AzStorageBlobContent -File test.txt -Container <CONTAINER-NAME> -Blob testblob -Context $ctx
    

    Odpověď:

    ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
    BlobType          : BlockBlob
    Length            : 56
    ContentType       : application/octet-stream
    LastModified      : 9/21/2017 6:14:25 PM +00:00
    SnapshotTime      :
    ContinuationToken :
    Context           : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
    Name              : testblob
    
  6. Objekt blob, který jste nahráli, si můžete stáhnout také pomocí rutiny PowerShellu Get-AzStorageBlobContent :

    Get-AzStorageBlobContent -Blob testblob -Container <CONTAINER-NAME> -Destination test2.txt -Context $ctx
    

    Odpověď:

    ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
    BlobType          : BlockBlob
    Length            : 56
    ContentType       : application/octet-stream
    LastModified      : 9/21/2017 6:14:25 PM +00:00
    SnapshotTime      :
    ContinuationToken :
    Context           : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
    Name              : testblob
    

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup ke službě Azure SQL Database

V tomto kurzu se dozvíte, jak pomocí identity přiřazené systémem pro virtuální počítač s Windows získat přístup ke službě Azure SQL Database. Identity spravované služby se automaticky spravují v Azure a umožňují ověřování ve službách, které podporují ověřování Microsoft Entra, aniž byste museli do kódu vkládat přihlašovací údaje.

Získáte následující informace:

  • Udělení přístupu k Azure SQL Database virtuálnímu počítači
  • Povolení ověřování Microsoft Entra
  • Vytvoření uživatele v databázi reprezentujícího systémem přiřazenou identitu virtuálního počítače
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k dotazování služby Azure SQL Database

Povolit

Povolení spravované identity přiřazené systémem je prostředí jedním kliknutím. Můžete ho buď povolit při vytváření virtuálního počítače, nebo ve vlastnostech existujícího virtuálního počítače.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete zapnout stav přiřazeného systému.

Povolení spravované identity přiřazené systémem na novém virtuálním počítači:

  1. Přihlaste se k portálu Azure.

  2. Vytvořte virtuální počítač s povolenou identitou přiřazenou systémem.

Udělit přístup

Pokud chcete virtuálnímu počítači udělit přístup k databázi ve službě Azure SQL Database, použijte existující logický SQL server nebo vytvořte nový. Pokud chcete vytvořit nový server a databázi pomocí webu Azure Portal, postupujte podle rychlého startu Azure SQL. Rychlé starty s využitím Azure CLI a Azure PowerShellu najdete v dokumentaci k Azure SQL.

Následujícím postupem udělíte virtuálnímu počítači přístup k databázi:

  1. Povolte ověřování Microsoft Entra pro server.
  2. Vytvoření uživatele v databázi reprezentujícího systémem přiřazenou identitu virtuálního počítače

Povolení ověřování Microsoft Entra

Konfigurace ověřování Microsoft Entra:

  1. Na webu Azure Portal vyberte v levém navigačním panelu SQL server .
  2. Vyberte SQL server, který chcete povolit pro ověřování Microsoft Entra.
  3. V části Nastavení v okně vyberte správce služby Active Directory.
  4. Na panelu příkazů vyberte Nastavit správce.
  5. Vyberte uživatelský účet Microsoft Entra, který se má stát správcem serveru, a vyberte Vybrat.
  6. Na panelu příkazů vyberte Uložit.

Vytvoření uživatele s obsahem

V této části se dozvíte, jak vytvořit uživatele obsaženého v databázi, která představuje identitu přiřazenou systémem virtuálního počítače. V tomto kroku potřebujete nainstalovanou aplikaci Microsoft SQL Server Management Studio (SSMS ). Než začnete, může být užitečné si projít následující články týkající se integrace Microsoft Entra:

Databáze SQL vyžadují jedinečné zobrazované názvy ID Microsoft Entra. V takovém případě musí být účty Microsoft Entra, jako jsou uživatelé, skupiny a instanční objekty (aplikace) a názvy virtuálních počítačů povolené pro spravovanou identitu, jedinečně definované v microsoft Entra ID specifické pro jejich odpovídající zobrazované názvy. SQL kontroluje zobrazované názvy Microsoft Entra ID během vytváření T-SQL těchto uživatelů. Pokud zobrazované názvy nejsou jedinečné, příkaz se nezdaří a zobrazí výzvu k zadání jedinečného zobrazovaného názvu ID Microsoft Entra pro každý daný účet.

Vytvoření uživatele s obsahem

  1. Otevřete sadu SQL Server Management Studio.

  2. V dialogovém okně Připojit k serveru zadejte název serveru do pole Název serveru.

  3. V poli Ověřování vyberte Active Directory – univerzální s podporou vícefaktorového ověřování.

  4. Do pole Uživatelské jméno zadejte název účtu Microsoft Entra, který jste nastavili jako správce serveru, cjensen@fabrikam.comnapříklad .

  5. Vyberte Možnosti.

  6. Do pole Připojení k databázi zadejte název nesystémové databáze, kterou chcete nakonfigurovat.

  7. Vyberte Připojit a dokončete proces přihlášení.

  8. V Průzkumníku objektů rozbalte složku Databáze.

  9. Klikněte pravým tlačítkem myši na uživatelskou databázi a pak vyberte Nový dotaz.

  10. V okně dotazu zadejte následující řádek a na panelu nástrojů vyberte Spustit :

    Poznámka:

    VMName v následujícím příkazu je název virtuálního počítače, pro který jste v části Požadavky povolili identitu přiřazenou systémem.

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    

    Příkaz by se měl úspěšně dokončit vytvořením obsaženého uživatele pro identitu přiřazenou systémem virtuálního počítače.

  11. Vymažte okno dotazu, zadejte následující řádek a na panelu nástrojů vyberte Spustit :

    Poznámka:

    VMName v následujícím příkazu je název virtuálního počítače, na který jste v části požadavky povolili identitu přiřazenou systémem.

    Pokud dojde k chybě Instanční objekt VMName má duplicitní zobrazovaný název, připojte příkaz CREATE USER s OBJECT_ID='xxx'.

    ALTER ROLE db_datareader ADD MEMBER [VMName]
    

    Příkaz by se měl úspěšně dokončit tím, že uživateli udělí možnost číst celou databázi.

Kód spuštěný na virtuálním počítači teď může získat token pomocí spravované identity přiřazené systémem a pomocí tokenu provést ověření na serveru.

Přístup k datům

V této části se dozvíte, jak získat přístupový token pomocí spravované identity přiřazené systémem virtuálního počítače a jak ho použít k volání Azure SQL. Azure SQL nativně podporuje ověřování Microsoft Entra, takže může přímo přijímat přístupové tokeny získané pomocí spravovaných identit pro prostředky Azure. Tato metoda nevyžaduje zadání přihlašovacích údajů v připojovací řetězec.

Tady je příklad kódu .NET pro otevření připojení k SQL pomocí ověřování spravované identity služby Active Directory. Kód musí běžet na virtuálním počítači, aby měl přístup ke koncovému bodu spravované identity přiřazené systémem virtuálního počítače.

K použití této metody se vyžaduje rozhraní .NET Framework 4.6.2 nebo novější nebo .NET Core 3.1 nebo vyšší. Odpovídajícím způsobem nahraďte hodnoty AZURE-SQL-SERVERNAME a DATABASE a přidejte odkaz NuGet na knihovnu Microsoft.Data.SqlClient.

using Microsoft.Data.SqlClient;

try
{
//
// Open a connection to the server using Active Directory Managed Identity authentication.
//
string connectionString = "Data Source=<AZURE-SQL-SERVERNAME>; Initial Catalog=<DATABASE>; Authentication=Active Directory Managed Identity; Encrypt=True";
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();

Poznámka:

Spravované identity můžete použít při práci s dalšími možnostmi programování pomocí našich sad SDK.

Nebo pomocí PowerShellu otestujte kompletní nastavení, aniž byste museli psát a nasazovat aplikaci na virtuální počítač.

  1. Na portálu přejděte na Virtuální počítače, přejděte na virtuální počítač s Windows a pak v přehledu vyberte Připojit.

  2. Zadejte přihlašovací údaje správce virtuálního počítače, které jste přidali při vytváření virtuálního počítače s Windows.

  3. Teď, když jste vytvořili připojení ke vzdálené ploše virtuálního počítače, otevřete PowerShell ve vzdálené relaci.

  4. Pomocí rutiny PowerShellu Invoke-WebRequest vytvořte požadavek na koncový bod místní spravované identity, abyste získali přístupový token pro Azure SQL.

        $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatabase.windows.net%2F' -Method GET -Headers @{Metadata="true"}
    

    Převeďte odpověď z objektu JSON na objekt PowerShellu.

    $content = $response.Content | ConvertFrom-Json
    

    Extrahujte z odpovědi přístupový token.

    $AccessToken = $content.access_token
    
  5. Otevřete připojení k serveru. Nezapomeňte nahradit hodnoty AZURE-SQL-SERVERNAME a DATABASE.

    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Data Source = <AZURE-SQL-SERVERNAME>; Initial Catalog = <DATABASE>; Encrypt=True;"
    $SqlConnection.AccessToken = $AccessToken
    $SqlConnection.Open()
    

    Dále vytvořte dotaz a odešlete ho na server. Nezapomeňte nahradit hodnotu TABLE.

    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = "SELECT * from <TABLE>;"
    $SqlCmd.Connection = $SqlConnection
    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd
    $DataSet = New-Object System.Data.DataSet
    $SqlAdapter.Fill($DataSet)
    

Nakonec prozkoumejte hodnotu $DataSet.Tables[0] zobrazení výsledků dotazu.

Zakázat

Pokud chcete na virtuálním počítači zakázat identitu přiřazenou systémem, nastavte stav identity přiřazené systémem na Vypnuto.

Snímek obrazovky ukazuje kartu Přiřazený systém pro virtuální počítač, kde můžete stav přiřazeného systému vypnout.

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Azure Key Vaultu

V tomto kurzu se dozvíte, jak může virtuální počítač s Windows používat spravovanou identitu přiřazenou systémem pro přístup ke službě Azure Key Vault. Key Vault umožňuje klientské aplikaci používat tajný kód pro přístup k prostředkům, které nejsou zabezpečené pomocí Microsoft Entra ID. Spravované identity se automaticky spravují v Azure. Umožňují ověřování ve službách, které podporují ověřování Microsoft Entra, bez zahrnutí ověřovacích informací do kódu.

Získáte následující informace:

  • Udělení přístupu virtuálnímu počítači k tajnému kódu uloženému ve službě Key Vault
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k načtení tajného kódu ze služby Key Vault

Vytvoření služby Key Vault

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

V této části se dozvíte, jak virtuálnímu počítači udělit přístup k tajnému kódu uloženému ve službě Key Vault. Při použití spravovaných identit pro prostředky Azure může váš kód získat přístupové tokeny k ověření prostředků, které podporují ověřování Microsoft Entra. 

Ne všechny služby Azure však podporují ověřování Microsoft Entra. Pokud chcete používat spravované identity pro prostředky Azure s těmito službami, uložte přihlašovací údaje služby do Azure Key Vaultu a použijte spravovanou identitu virtuálního počítače k získání přístupu ke Key Vaultu, abyste načetli přihlašovací údaje.

Nejprve musíte vytvořit službu Key Vault a udělit spravované identitě přiřazené systémem virtuálního počítače přístup ke službě Key Vault.

  1. Přihlaste se k portálu Azure.

  2. V horní části levého navigačního panelu vyberte Vytvořit prostředek.

  3. Do pole Hledat na Marketplace zadejte Key Vault a stiskněte Enter.

  4. Ve výsledcích vyberte Key Vault a pak vyberte Vytvořit.

  5. Zadejte název nového trezoru klíčů.

    Snímek obrazovky Vytvořit trezor klíčů

  6. Vyplňte všechny požadované informace. Ujistěte se, že jste zvolili předplatné a skupinu prostředků, které používáte pro účely tohoto kurzu.

  7. Vyberte Zkontrolovat a vytvořit.

  8. Vyberte Vytvořit.

Vytvoření tajného kódu

Dále musíte do služby Key Vault přidat tajný kód, abyste ho mohli později načíst pomocí kódu spuštěného na virtuálním počítači. V této části používáte PowerShell, ale stejné koncepty platí pro jakýkoli kód, který na virtuálním počítači spouštíte.

  1. Přejděte do nově vytvořené služby Key Vault.

  2. Vyberte Tajné kódy a pak vyberte Přidat.

  3. Vyberte Generovat/importovat.

  4. Na obrazovce Vytvořit tajný kód ponechte v možnostech nahrávání vybranou možnost Ruční.

  5. Zadejte název a hodnotu tajného kódu. Může jít o libovolnou hodnotu. 

  6. Nechte datum aktivace i datum konce platnosti nevyplněné a Povoleno nechte nastavené na Ano

  7. Vyberte Vytvořit a vytvořte tajný kód.

    Snímek obrazovky znázorňující, jak vytvořit tajný kód

Udělit přístup

Spravovaná identita používaná virtuálním počítačem musí mít udělený přístup ke čtení tajného klíče uloženého ve službě Key Vault.

  1. Přejděte do nově vytvořené služby Key Vault.

  2. V nabídce na levé straně vyberte Zásady přístupu.

  3. Vyberte Přidat zásady přístupu.

    Snímek obrazovky zobrazující obrazovku zásad přístupu ke službě Key Vault

  4. V části Přidat zásadu přístupu v části Konfigurovat ze šablony (volitelné) v rozevírací nabídce zvolte Správa tajných kódů.

  5. Zvolte Vybrat objekt zabezpečení a potom do vyhledávacího pole zadejte název virtuálního počítače, který jste vytvořili dříve. 

  6. V seznamu výsledků vyberte virtuální počítač a pak zvolte Vybrat.

  7. Vyberte přidat.

  8. Zvolte Uložit.

Přístup k datům

V této části se dozvíte, jak získat přístupový token pomocí identity virtuálního počítače a jak ho použít k načtení tajného kódu ze služby Key Vault. Pokud nemáte nainstalovaný PowerShell 4.3.1 nebo novější, budete si muset stáhnout a nainstalovat nejnovější verzi.

Poznámka:

Metoda použití PowerShellu k ověření a načtení tajného kódu se upřednostňuje ve scénářích, kdy jsou spravované identity výslovně vyžadovány nebo při vkládání procesu do kódu aplikace.

Nejprve pomocí spravované identity přiřazené systémem virtuálního počítače získejte přístupový token pro ověření ve službě Key Vault:

  1. Na portálu přejděte na Virtuální počítače a přejděte na virtuální počítač s Windows a pak v přehledu vyberte Připojit.
  2. Zadejte uživatelské jméno a heslo, které jste přidali při vytváření virtuálního počítače s Windows.
  3. Teď, když jste vytvořili připojení ke vzdálené ploše virtuálního počítače, otevřete PowerShell ve vzdálené relaci.
  4. V PowerShellu vyvolejte na tenantovi webový požadavek na získání tokenu pro místního hostitele na konkrétním portu pro virtuální počítač.

Poznámka:

Pokud používáte suverénní cloud, například GCC-H, použijte koncový bod vault.usgovcloudapi.net místo vault.azure.net v rutině PowerShellu.

Příklad požadavku PowerShellu:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

Poznámka:

Při práci s suverénními cloudy je potřeba provést úpravy koncového bodu zadaného na konci rutiny.

Měli byste například vault.usgovcloudapi.net použít při práci s cloudem Azure Government, přičemž výsledkem je konečný výsledek:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.usgovcloudapi.net' -Method GET -Headers @{Metadata="true"

Pokud chcete ověřit, že přípona odpovídá vašemu prostředí, projděte si článek s přehledem zabezpečení služby Azure Key Vault.

Odpověď by měla vypadat nějak takto:

Snímek obrazovky znázorňující požadavek s odpovědí tokenu

Potom z odpovědi extrahujte přístupový token.

   $KeyVaultToken = $Response.access_token

Nakonec pomocí rutiny PowerShellu Invoke-WebRequest načtěte tajný kód, který jste vytvořili dříve ve službě Key Vault, a předáte přístupový token v hlavičce Autorizace. Budete potřebovat adresu URL své služby Key Vault, kterou najdete na stránce Přehled služby Key Vault v části Základy.

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

Odpověď by měla vypadat takto:

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Jakmile ze služby Key Vault načtete tajný kód, můžete ho použít při přihlášení ke službě, která vyžaduje jméno a heslo.

Vyčištění prostředků

Nakonec, když chcete vyčistit prostředky, přihlaste se k webu Azure Portal, vyberte skupiny prostředků a pak vyhledejte a vyberte skupinu prostředků vytvořenou v procesu tohoto kurzu (například mi-test). Pak použijte příkaz Odstranit skupinu prostředků.

Nebo můžete prostředky vyčistit také pomocí PowerShellu nebo rozhraní příkazového řádku.

Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Resource Manageru

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Tento kurz vysvětluje, jak vytvořit identitu přiřazenou systémem, přiřadit ji k virtuálnímu počítači s Windows a pak tuto identitu použít pro přístup k rozhraní API Azure Resource Manageru. Identity spravovaných služeb se spravují automaticky v Azure. Umožňují ověřování pro služby, které podporují ověřování Microsoft Entra, aniž by museli vkládat přihlašovací údaje do kódu.

Získáte následující informace:

  • Udělte virtuálnímu počítači přístup k Azure Resource Manageru.
  • Získejte přístupový token pomocí spravované identity přiřazené systémem virtuálního počítače pro přístup k Resource Manageru.
  1. Přihlaste se k webu Azure Portal pomocí účtu správce.

  2. Přejděte na kartu Skupiny prostředků.

  3. Vyberte skupinu prostředků, ke které chcete udělit přístup spravované identity virtuálního počítače.

  4. Na levém panelu vyberte Řízení přístupu (IAM).

  5. Vyberte Přidat a pak vyberte Přidat přiřazení role.

  6. Na kartě Role vyberte Čtenář. Tato role umožňuje zobrazit všechny prostředky, ale neumožňuje provádět žádné změny.

  7. Na kartě Členové vyberte u možnosti Přiřadit přístup ke spravované identitě a pak vyberte + Vybrat členy.

  8. Ujistěte se, že je v rozevíracím seznamu Předplatné uvedené správné předplatné. V případě skupiny prostředků vyberte Všechny skupiny prostředků.

  9. V rozevíracím seznamu Spravovat identitu vyberte Virtuální počítač.

  10. V rozevíracím seznamu vyberte virtuální počítač a pak vyberte Uložit.

    Snímek obrazovky znázorňující přidání role čtenáře do spravované identity

Získání přístupového tokenu

Použijte spravovanou identitu přiřazenou systémem virtuálního počítače a pomocí Resource Manageru získejte přístupový token.

K dokončení tohoto postupu potřebujete klienta SSH. Pokud používáte Windows, můžete použít klienta SSH v Subsystém Windows pro Linux. Pokud potřebujete pomoc při konfiguraci klíčů klienta SSH, přečtěte si, jak na počítači s Windows v Azure používat klíče SSH nebo jak na linuxových virtuálních počítačích v Azure vytvářet a používat pár veřejného a privátního klíče SSH.

  1. Na portálu přejděte na virtuální počítač s Linuxem a v přehledu vyberte Připojit.
  2. Připojte se vybraným klientem SSH k virtuálnímu počítači.
  3. V okně terminálu pomocí nástroje curl< a0/> vytvořte požadavek na místní spravované identity koncového bodu prostředků Azure, abyste získali přístupový token pro Azure Resource Manager.   Požadavek curl na přístupový token je uvedený níže.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Poznámka:

Hodnota parametru resource musí být přesná shoda s tím, co očekává ID Microsoft Entra. V případě ID prostředku Resource Manageru musíte do identifikátoru URI zahrnout koncové lomítko.

V odpovědi je přístupový token, který potřebujete pro přístup k Azure Resource Manageru.

Odpověď:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Tento přístupový token použijte pro přístup k Azure Resource Manageru; Pokud chcete například přečíst podrobnosti o skupině prostředků, ke které jste dříve udělili přístup k tomuto virtuálnímu počítači. Nahraďte hodnoty , <SUBSCRIPTION-ID>a <ACCESS-TOKEN> nahraďte hodnotami, <RESOURCE-GROUP>které jste vytvořili dříve.

Poznámka:

V adrese URL se rozlišují malá a velká písmena, proto se ujistěte, že používáte přesný případ, který jste použili dříve při pojmenování skupiny prostředků, a velká písmena "G" v části "resourceGroup".

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

Odpověď zpět s konkrétními informacemi o skupině prostředků:

{
"id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
  "provisioningState":"Succeeded"
  }
} 

Použití spravované identity přiřazené uživatelem na virtuálním počítači s Windows pro přístup k Azure Resource Manageru

Tento kurz vysvětluje, jak vytvořit identitu přiřazenou uživatelem, přiřadit ji k virtuálnímu počítači s Windows a pak tuto identitu použít pro přístup k rozhraní API Azure Resource Manageru. Identity spravovaných služeb se spravují automaticky v Azure. Umožňují ověřování pro služby, které podporují ověřování Microsoft Entra, aniž by museli vkládat přihlašovací údaje do kódu.

Získáte následující informace:

  • Vytvoření spravované identity přiřazené uživatelem
  • Přiřazení identity přiřazené uživatelem k virtuálnímu počítači s Windows
  • Udělení přístupu identitě přiřazené uživatelem ke skupině prostředků v Azure Resource Manageru
  • Získání přístupového tokenu pomocí identity přiřazené uživatelem a jeho použití k volání Azure Resource Manageru
  • Čtení vlastností skupiny prostředků

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Místní konfigurace Azure PowerShellu

Pokud chcete spustit skripty v tomto příkladu, máte dvě možnosti:

  • Použijte Azure Cloud Shell, který můžete otevřít pomocí tlačítka Vyzkoušet v pravém horním rohu bloků kódu.
  • Spouštějte skripty místně pomocí Azure PowerShellu, jak je popsáno v další části.

Pokud chcete použít Azure PowerShell místně pro tento kurz (místo použití Cloud Shellu), proveďte následující kroky:

  1. Pokud jste to ještě neudělali, nainstalujte si nejnovější verzi Azure PowerShellu.

  2. Přihlaste se do Azure:

    Connect-AzAccount
    
  3. Nainstalujte nejnovější verzi modulu PowerShellGet.

    Install-Module -Name PowerShellGet -AllowPrerelease
    

    Po spuštění tohoto příkazu pro další krok možná budete muset Exit mimo aktuální relaci PowerShellu.

  4. Nainstalujte vydanou Az.ManagedServiceIdentity verzi modulu. Potřebujete to k provedení operací spravované identity přiřazené uživatelem v tomto kurzu:

    Install-Module -Name Az.ManagedServiceIdentity -AllowPrerelease
    

Povolit

V případě scénářů založených na identitě přiřazené uživatelem je potřeba provést následující kroky v této části:

  1. Vytvořte identitu.
  2. Přiřaďte nově vytvořenou identitu.

Vytvoření identity

V této části se dozvíte, jak vytvořit identitu přiřazenou uživatelem, která se vytvoří jako samostatný prostředek Azure. Pomocí rutiny New-AzUserAssignedIdentity vytvoří Azure ve vašem tenantovi Microsoft Entra identitu, kterou můžete přiřadit k jedné nebo více instancím služby Azure.

Důležité

Při vytváření spravovaných identit přiřazených uživatelem musí název začínat písmenem nebo číslem a může obsahovat kombinaci alfanumerických znaků, pomlček (-) a podtržítka (_). Aby přiřazení k virtuálnímu počítači nebo škálovací sadě virtuálních počítačů fungovalo správně, je název omezen na 24 znaků. Další informace najdete v tématu Nejčastější dotazy a známé problémy.

New-AzUserAssignedIdentity -ResourceGroupName myResourceGroupVM -Name ID1

Odpověď obsahuje podrobnosti o vytvořené identitě přiřazené uživatelem, podobně jako v následujícím příkladu. Id Definujte a ClientId hodnoty pro vaši identitu přiřazenou uživatelem, protože se používají v dalších krocích:

{
Id: /subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1
ResourceGroupName : myResourceGroupVM
Name: ID1
Location: westus
TenantId: aaaabbbb-0000-cccc-1111-dddd2222eeee
PrincipalId: aaaaaaaa-bbbb-cccc-1111-222222222222
ClientId: 00001111-aaaa-2222-bbbb-3333cccc4444
ClientSecretUrl: https://control-westus.identity.azure.net/subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1/credentials?tid=aaaabbbb-0000-cccc-1111-dddd2222eeee&oid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb&aid=00001111-aaaa-2222-bbbb-3333cccc4444
Type: Microsoft.ManagedIdentity/userAssignedIdentities
}

Přiřazení identity

V této části se dozvíte, jak přiřadit identitu přiřazenou uživatelem k virtuálnímu počítači s Windows. Klienti můžou identitu přiřazenou uživatelem používat pro několik prostředků Azure. Pomocí následujících příkazů přiřaďte identitu přiřazenou uživatelem k jednomu virtuálnímu počítači. Jako hodnotu parametru -IdentityID použijte vlastnost Id vrácenou v předchozím kroku.

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVM -ResourceGroupName TestRG -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"

Udělit přístup

V této části se dozvíte, jak udělit identitě přiřazené uživatelem přístup ke skupině prostředků v Azure Resource Manageru. Spravované identity pro prostředky Azure poskytují identity, které váš kód může použít k vyžádání přístupových tokenů k ověření v rozhraních API prostředků, která podporují ověřování Microsoft Entra. V tomto kurzu budete v kódu přistupovat k rozhraní API Azure Resource Manageru.

Než bude mít kód přístup k rozhraní API, je potřeba udělit identitě přístup k prostředku v Azure Resource Manageru. V takovém případě přistupujete ke skupině prostředků, pro kterou je virtuální počítač obsažený. Aktualizujte hodnotu <SUBSCRIPTIONID> odpovídajícím způsobem pro vaše prostředí.

$spID = (Get-AzUserAssignedIdentity -ResourceGroupName myResourceGroupVM -Name ID1).principalid
New-AzRoleAssignment -ObjectId $spID -RoleDefinitionName "Reader" -Scope "/subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM/"

Odpověď bude obsahovat podrobnosti o vytvořeném přiřazení role podobně jako v následujícím příkladu:

RoleAssignmentId: /subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
Scope: /subscriptions/<SUBSCRIPTIONID>/resourcegroups/myResourceGroupVM
DisplayName: ID1
SignInName:
RoleDefinitionName: Reader
RoleDefinitionId: 00000000-0000-0000-0000-000000000000
ObjectId: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ObjectType: ServicePrincipal
CanDelegate: False

Přístup k datům

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Získání přístupového tokenu

Ve zbývající části kurzu pracujete z virtuálního počítače, který jste vytvořili dříve.

  1. Přihlaste se k portálu Azure.

  2. Na portálu přejděte na Virtuální počítače a přejděte na virtuální počítač s Windows. V přehledu vyberte Připojit.

  3. Zadejte uživatelské jméno a heslo, které jste použili při vytváření virtuálního počítače s Windows.

  4. Teď, když jste vytvořili připojení ke vzdálené ploše virtuálního počítače, otevřete PowerShell ve vzdálené relaci.

  5. Pomocí rutiny PowerShellu Invoke-WebRequest vytvořte požadavek na místní spravované identity pro koncový bod prostředků Azure, abyste získali přístupový token pro Azure Resource Manager. Hodnota client_id je hodnota vrácená při vytváření spravované identity přiřazené uživatelem.

    $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
    $content = $response.Content | ConvertFrom-Json
    $ArmToken = $content.access_token
    

Čtení vlastností

Nakonec použijte přístupový token načtený v předchozím kroku pro přístup k Azure Resource Manageru a pak si přečtěte vlastnosti skupiny prostředků, kterou jste udělili přístupu k identitě přiřazené uživatelem. Nahraďte <SUBSCRIPTION ID> ID předplatného vašeho prostředí.

(Invoke-WebRequest -Uri https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupVM?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{Authorization ="Bearer $ArmToken"}).content

Odpověď bude obsahovat informace o konkrétní skupině prostředků podobně jako v následujícím příkladu:

{"id":"/subscriptions/<SUBSCRIPTIONID>/resourceGroups/myResourceGroupVM","name":"myResourceGroupVM","location":"eastus","properties":{"provisioningState":"Succeeded"}}

Další informace