Azure-beli alkalmazások hitelesítése Azure-erőforrásokba a .NET-hez készült Azure SDK-val

Ha egy alkalmazást egy olyan szolgáltatással üzemeltetnek az Azure-ban, mint a Azure-alkalmazás Szolgáltatás, az Azure Virtual Machines vagy az Azure Container Instances, az alkalmazások Azure-erőforrásokhoz való hitelesítésének ajánlott módszere egy felügyelt identitás használata.

A felügyelt identitás olyan identitást biztosít az alkalmazás számára, amely anélkül tud más Azure-erőforrásokhoz csatlakozni, hogy titkos kulcsot vagy más alkalmazáskulcsot kellene használnia. Az Azure belsőleg ismeri az alkalmazás identitását, és hogy milyen erőforrásokhoz csatlakozhat. Az Azure ezeket az információkat arra használja, hogy automatikusan lekérjük a Microsoft Entra-jogkivonatokat az alkalmazáshoz, hogy más Azure-erőforrásokhoz kapcsolódhasson anélkül, hogy az alkalmazás titkos kulcsait kellene kezelnie.

Felügyelt identitástípusok

A felügyelt identitásoknak két típusa létezik:

  • Rendszer által hozzárendelt felügyelt identitások – Ezt a típusú felügyelt identitást közvetlenül egy Azure-erőforrás biztosítja és köti össze. Ha engedélyezi a felügyelt identitást egy Azure-erőforráson, egy rendszer által hozzárendelt felügyelt identitást kap az adott erőforráshoz. A rendszer által hozzárendelt felügyelt identitás a társított Azure-erőforrás életciklusához van kötve. Az erőforrás törlésekor az Azure automatikusan törli az Identitást. Mivel mindössze annyit kell tennie, hogy engedélyezi a felügyelt identitást a kódot üzemeltető Azure-erőforráshoz, ez a legegyszerűbben használható felügyelt identitástípus.
  • Felhasználó által hozzárendelt felügyelt identitások – Önálló Azure-erőforrásként is létrehozhat felügyelt identitást. Ezt a leggyakrabban akkor használják, ha a megoldás több olyan számítási feladatokkal rendelkezik, amelyek több Azure-erőforráson futnak, és amelyeknek azonos identitással és engedélyekkel kell rendelkeznie. Ha például a megoldás olyan összetevőkkel rendelkezik, amelyek több App Service- és virtuálisgép-példányon futottak, és mindegyiknek ugyanahhoz az Azure-erőforráskészlethez kellett hozzáférnie, akkor érdemes lehet egy felhasználó által hozzárendelt felügyelt identitást létrehozni és használni ezeken az erőforrásokon.

Ez a cikk a rendszer által hozzárendelt felügyelt identitás alkalmazáshoz való engedélyezésének és használatának lépéseit ismerteti. Ha felhasználó által hozzárendelt felügyelt identitást kell használnia, olvassa el a Felhasználó által hozzárendelt felügyelt identitások kezelése című cikket , amelyből megtudhatja , hogyan hozhat létre felhasználó által hozzárendelt felügyelt identitást.

1 – Felügyelt identitás engedélyezése az alkalmazást üzemeltető Azure-erőforrásban

Az első lépés a felügyelt identitás engedélyezése az alkalmazást üzemeltető Azure-erőforráson. Ha például egy .NET-alkalmazást üzemeltet a Azure-alkalmazás Service használatával, engedélyeznie kell a felügyelt identitást az alkalmazást üzemeltető App Service-webalkalmazáshoz. Ha egy virtuális gépet használna az alkalmazás üzemeltetéséhez, engedélyezheti a virtuális gép számára a felügyelt identitás használatát.

Engedélyezheti a felügyelt identitás azure-erőforrásokhoz való használatát az Azure Portal vagy az Azure CLI használatával.

Utasítások Képernyőkép
Keresse meg az alkalmazáskódot üzemeltető erőforrást az Azure Portalon.

Beírhatja például az erőforrás nevét a lap tetején található keresőmezőbe, és a párbeszédpanelen kiválasztva navigálhat hozzá.
A screenshot showing how to use the top search bar in the Azure portal to locate and navigate to a resource in Azure.
Az erőforrás oldalán válassza az Identitás menüelemet a bal oldali menüből.

Minden felügyelt identitást támogató Azure-erőforrás rendelkezik identitás menüelemsel, bár a menü elrendezése kissé eltérő lehet.
A screenshot showing the location of the Identity menu item in the left-hand menu for an Azure resource.
Az Identitás lapon:
  1. Módosítsa az Állapot csúszkát Be állásra.
  2. Kattintson a Mentés gombra.
A megerősítést kérő párbeszédpanelen ellenőrizheti, hogy engedélyezni szeretné-e a felügyelt identitást a szolgáltatáshoz. Az Igen válasz és a felügyelt identitás engedélyezve lesz az Azure-erőforráshoz.
A screenshot showing how to enable managed identity for an Azure resource on the resource's Identity page.

2 – Szerepkörök hozzárendelése a felügyelt identitáshoz

Ezután meg kell határoznia, hogy az alkalmazásnak milyen szerepkörökre (engedélyekre) van szüksége, és hozzá kell rendelnie a felügyelt identitást ezekhez a szerepkörökhöz az Azure-ban. A felügyelt identitások hozzárendelhetők szerepkörökhöz egy erőforrás, erőforráscsoport vagy előfizetés hatókörében. Ez a példa bemutatja, hogyan rendelhet hozzá szerepköröket az erőforráscsoport hatóköréhez, mivel a legtöbb alkalmazás egyetlen erőforráscsoportba csoportosítja az összes Azure-erőforrást.

Utasítások Képernyőkép
Keresse meg az alkalmazás erőforráscsoportját az erőforráscsoport nevére az Azure Portal tetején található keresőmező használatával.

Lépjen az erőforráscsoportra a párbeszédpanel Erőforráscsoportok fejléce alatt található erőforráscsoport nevére kattintva.
A screenshot showing how to use the top search bar in the Azure portal to locate and navigate to a resource group in Azure. This is the resource group that you'll assign roles (permissions) to.
Az erőforráscsoport oldalán válassza a Hozzáférés-vezérlés (IAM) lehetőséget a bal oldali menüben. A screenshot showing the location of the Access control (IAM) menu item in the left-hand menu of an Azure resource group.
A Hozzáférés-vezérlés (IAM) lapon:
  1. Válassza a Szerepkiosztások lapot.
  2. Válassza a +Hozzáadás lehetőséget a felső menüből, majd a szerepkör-hozzárendelés hozzáadása lehetőséget az eredményül kapott legördülő menüből.
A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group.
A Szerepkör-hozzárendelés hozzáadása lap felsorolja az erőforráscsoporthoz hozzárendelhető összes szerepkört.
  1. A keresőmezővel kezelhetőbb méretre szűrheti a listát. Ez a példa bemutatja, hogyan szűrhet a Storage Blob-szerepkörökre.
  2. Válassza ki a hozzárendelni kívánt szerepkört.
A Tovább gombra kattintva lépjen a következő képernyőre.
A screenshot showing how to filter and select role assignments to be added to the resource group.
A következő Szerepkör-hozzárendelés hozzáadása lapon megadhatja, hogy melyik felhasználóhoz rendelje hozzá a szerepkört.
  1. Válassza a Felügyelt identitás lehetőséget a Hozzáférés hozzárendelése területen.
  2. Select + Select members under Members
Megnyílik egy párbeszédpanel az Azure Portal jobb oldalán.
A screenshot showing how to select managed identity as the type of user you want to assign the role (permission) on the add role assignments page.
A Felügyelt identitások kiválasztása párbeszédpanelen:
  1. A Felügyelt identitás legördülő menü és a Kijelölés szövegmező a felügyelt identitások listájának szűrésére használható az előfizetésben. Ebben a példában az App Service kiválasztásával csak az App Service-hez társított felügyelt identitások jelennek meg.
  2. Válassza ki az alkalmazást üzemeltető Azure-erőforrás felügyelt identitását.
A folytatáshoz válassza a Párbeszédpanel alján található Kijelölés lehetőséget.
A screenshot showing how to use the select managed identities dialog to filter and select the managed identity to assign the role to.
A felügyelt identitás mostantól a Szerepkör-hozzárendelés hozzáadása képernyőn kijelöltként jelenik meg.

A folyamat befejezéséhez válassza a Véleményezés + hozzárendelés lehetőséget a végső lapra való ugráshoz, majd a Véleményezés + hozzárendelés lehetőséget.
A screenshot of the final add role assignment screen where a user needs to select the Review + Assign button to finalize the role assignment.

3 – DefaultAzureCredential implementálása az alkalmazásban

DefaultAzureCredential több hitelesítési módszert támogat, és meghatározza a futtatókörnyezetben használt hitelesítési módszert. Ily módon az alkalmazás különböző hitelesítési módszereket használhat különböző környezetekben, környezetspecifikus kód implementálása nélkül.

A hitelesítő adatokat kereső sorrend és helyek DefaultAzureCredential a DefaultAzureCredential helyen találhatók.

A megvalósításhoz DefaultAzureCredentialelőször adja hozzá a Azure.Identity csomagokat, és igény szerint adja hozzá az Microsoft.Extensions.Azure alkalmazáshoz. Ezt a parancssor vagy a NuGet Csomagkezelő használatával teheti meg.

Nyisson meg egy tetszőleges terminálkörnyezetet az alkalmazásprojekt könyvtárában, és írja be az alábbi parancsot.

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Az Azure-szolgáltatásokat általában az SDK megfelelő ügyfélosztályai használják. Ezeket az osztályokat és a saját egyéni szolgáltatásokat regisztrálni kell a Program.cs fájlban, hogy az alkalmazás függőséginjektálásával elérhetőek legyenek. Program.csBelül kövesse az alábbi lépéseket a szolgáltatás és a .DefaultAzureCredential

  1. Adja meg a névtereket és Microsoft.Extensions.Azure a Azure.Identity névtereket egy felhasználói utasítással.
  2. Regisztrálja az Azure-szolgáltatást a megfelelő segítő módszerek használatával.
  3. Adja át az objektum egy példányát DefaultAzureCredential a UseCredential metódusnak.

Erre példa a következő kódszakaszban látható.

using Microsoft.Extensions.Azure;
using Azure.Identity;

// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
    x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
    x.UseCredential(new DefaultAzureCredential());
});

Azt is megteheti, hogy a szolgáltatásokban közvetlenül, további Azure-regisztrációs módszerek nélkül is használhatja DefaultAzureCredential az alábbiakban látható módon.

using Azure.Identity;

// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x => 
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));

Ha a fenti kód a helyi fejlesztés során fut a helyi munkaállomáson, az alkalmazás-szolgáltatásnév környezeti változóiban, illetve a Visual Studióban, a VS Code-ban, az Azure CLI-ben vagy az Azure PowerShellben fog keresni a fejlesztői hitelesítő adatok készletében, amelyek bármelyikével hitelesítheti az alkalmazást az Azure-erőforrásokban a helyi fejlesztés során.

Az Azure-ban való üzembe helyezéskor ugyanez a kód más Azure-erőforrásokon is hitelesítheti az alkalmazást. DefaultAzureCredential lekérheti a környezeti beállításokat és a felügyelt identitáskonfigurációkat a többi szolgáltatás automatikus hitelesítéséhez.