.NET-alkalmazások hitelesítése Azure-szolgáltatásokba a helyi fejlesztés során fejlesztői fiókok használatával

Felhőalkalmazások létrehozásakor a fejlesztőknek hibakeresést és tesztelést kell végezniük az alkalmazások helyi munkaállomásán. Ha egy alkalmazás egy fejlesztői munkaállomáson fut a helyi fejlesztés során, akkor is hitelesítenie kell az alkalmazás által használt Azure-szolgáltatásokban. Ez a cikk bemutatja, hogyan használhatja egy fejlesztő Azure-beli hitelesítő adatait az alkalmazás azure-beli hitelesítésére a helyi fejlesztés során.

A diagram showing how an app running in local developer will obtain the application service principal from a .env file and then use that identity to connect to Azure resources.

Ahhoz, hogy egy alkalmazás helyi fejlesztés során hitelesítse magát az Azure-ban a fejlesztő Azure-beli hitelesítő adataival, a fejlesztőnek be kell jelentkeznie az Azure-ba a VS Code Azure Tools bővítményből, az Azure CLI-ből vagy az Azure PowerShellből. A .NET-hez készült Azure SDK képes észlelni, hogy a fejlesztő bejelentkezett az egyik ilyen eszközről, majd lekérte a szükséges hitelesítő adatokat a hitelesítő adatok gyorsítótárából, hogy bejelentkezett felhasználóként hitelesítse az alkalmazást az Azure-ban.

Ez a módszer a legegyszerűbben beállítható egy fejlesztői csapat számára, mivel kihasználja a fejlesztők meglévő Azure-fiókjait. A fejlesztői fiók azonban valószínűleg több engedéllyel rendelkezik, mint amennyit az alkalmazás igényel, ezért túllépi azokat az engedélyeket, amelyeket az alkalmazás éles környezetben fog futtatni. Alternatív megoldásként létrehozhat olyan alkalmazásszolgáltatás-tagokat, amelyeket a helyi fejlesztés során használhat, amelyek hatóköre csak az alkalmazás által igényelt hozzáférésre terjedhet ki.

1 – Azure AD-csoport létrehozása helyi fejlesztéshez

Mivel szinte mindig több fejlesztő dolgozik egy alkalmazáson, javasoljuk, hogy először hozzon létre egy Azure AD-csoportot az alkalmazáshoz szükséges szerepkörök (engedélyek) beágyazásához a helyi fejlesztés során. Ez a következő előnyöket nyújtja.

  • Minden fejlesztőnek ugyanazok a szerepkörök lesznek hozzárendelve, mivel a szerepkörök csoportszinten vannak hozzárendelve.
  • Ha új szerepkörre van szükség az alkalmazáshoz, azt csak az alkalmazás Azure AD-csoportjához kell hozzáadni.
  • Ha egy új fejlesztő csatlakozik a csapathoz, egyszerűen hozzá kell adni őket a megfelelő Azure AD-csoporthoz, hogy megkapják a megfelelő engedélyeket az alkalmazás használatához.

Ha már rendelkezik Azure AD-csoporttal a fejlesztői csapathoz, használhatja ezt a csoportot. Ellenkező esetben hajtsa végre az alábbi lépéseket egy Azure AD-csoport létrehozásához.

Utasítások Képernyőkép
Lépjen az Azure PortalOn az Azure Active Directory lapjára az Azure Active Directory beírásával a lap tetején lévő keresőmezőbe, majd válassza ki az Azure Active Directoryt a szolgáltatások alatt. A screenshot showing how to use the top search bar in the Azure portal to search for and navigate to the Azure Active Directory page.
Az Azure Active Directory lapon válassza a Csoportok lehetőséget a bal oldali menüben. A screenshot showing the location of the Groups menu item in the left-hand menu of the Azure Active Directory Default Directory page.
A Minden csoport lapon válassza az Új csoportot. A screenshot showing the location of the New Group button in the All groups page.
Az Új csoport lapon:
  1. CsoporttípusSecurity
  2. A csoport neve → A biztonsági csoport neve, amely általában az alkalmazás nevéből jön létre. Az is hasznos, ha a csoport nevében egy helyi fejlesztéshez hasonló sztringet is felveszünk a csoport céljának jelzésére.
  3. A csoport leírása → A csoport céljának leírása.
  4. A Tagok csoportban válassza a Nem kijelölt tagok hivatkozást, ha tagokat szeretne hozzáadni a csoporthoz.
A screenshot showing how to fill out the form to create a new Azure Active Directory group for the application. This screenshot also shows the location of the link to select to add members to this group
A Tagok hozzáadása párbeszédpanelen:
  1. A keresőmezővel szűrheti a listában szereplő felhasználónevek listáját.
  2. Válassza ki az alkalmazás helyi fejlesztéséhez szükséges felhasználó(ka)t. Az objektumok kijelölésekor a párbeszédpanel alján található Kijelölt elemek listára kerülnek.
  3. Ha végzett, válassza a Kiválasztás gombot.
A screenshot of the Add members dialog box showing how to select developer accounts to be included in the group.
Az Új csoport lapon válassza a Létrehozás lehetőséget a csoport létrehozásához.

A rendszer létrehozza a csoportot, és visszavesz a Minden csoport lapra. A csoport megjelenése akár 30 másodpercet is igénybe vehet, és előfordulhat, hogy frissítenie kell az oldalt az Azure Portal gyorsítótárazása miatt.
A screenshot of the New Group page showing how to complete the process by selecting the Create button.

2 – Szerepkörök hozzárendelése az Azure AD-csoporthoz

Ezután meg kell határoznia, hogy az alkalmazásnak milyen szerepkörökre (engedélyekre) van szüksége az adott erőforrásokhoz, és ki kell osztania ezeket a szerepköröket az alkalmazáshoz. Ebben a példában a szerepkörök az 1. lépésben létrehozott Azure Active Directory-csoporthoz lesznek hozzárendelve. A szerepkörök 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 box in the Azure portal to locate and navigate to the resource group you want to 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 of the resource group page showing the location of the Access control (IAM) menu item.
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 Felhasználó, csoport vagy szolgáltatásnév 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 the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to.
A Tagok kiválasztása párbeszédpanelen:
  1. A Kijelölés szövegmezővel szűrheti az előfizetésben lévő felhasználók és csoportok listáját. Szükség esetén írja be az alkalmazáshoz létrehozott helyi fejlesztési Azure AD-csoport első néhány karakterét.
  2. Válassza ki az alkalmazáshoz társított helyi fejlesztési Azure AD-csoportot.
A folytatáshoz válassza a Párbeszédpanel alján található Kijelölés lehetőséget.
A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box.
Az Azure AD-csoport mostantól a Szerepkör-hozzárendelés hozzáadása képernyőn kiválasztott módon 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 showing the completed Add role assignment page and the location of the Review + assign button used to complete the process.

3 – Bejelentkezés az Azure-ba a .NET-eszközök használatával

Ezután több .NET-eszközbeállítás egyikével kell bejelentkeznie az Azure-ba. A bejelentkezett fióknak a korábban létrehozott és konfigurált Azure Active Directory-csoportban is léteznie kell.

A Visual Studio felső menüjében lépjen az Eszközök>beállításai elemre a beállítások párbeszédpanel megnyitásához. A beállítások szűréséhez írja be az Azure-t a bal felső keresősávba. Az Azure Service Authentication alatt válassza a Fiókválasztás lehetőséget.

Válassza a Fiók kiválasztása menü legördülő menüjét, és válassza a Microsoft-fiók hozzáadását. Ekkor megnyílik egy ablak, amely arra kéri, hogy válasszon egy fiókot. Adja meg a kívánt Azure-fiók hitelesítő adatait, majd válassza ki a megerősítést.

A screenshot showing how to sign in to Azure using Visual Studio.

4 – 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.