Hitelesítés Azure-erőforrásokon a helyszínen üzemeltetett .NET-alkalmazásokból
Az Azure-on kívül (például helyszíni vagy külső adatközpontban) üzemeltetett alkalmazásoknak az Azure-erőforrások elérésekor egy alkalmazásszolgáltatás-egyszerű használatával kell hitelesítést végeznie az Azure-ban. Az alkalmazásszolgáltatás egyszerű objektumai az azure-beli alkalmazásregisztrációs folyamattal jönnek létre. Az alkalmazás-szolgáltatásnév létrehozásakor létrejön egy ügyfélazonosító és egy titkos ügyfélkód az alkalmazáshoz. Az ügyfélazonosítót, az ügyfélkulcsot és a bérlőazonosítót ezután környezeti változók tárolják, így az Azure SDK for .NET használhatja őket az alkalmazás futásidőben történő hitelesítéséhez az Azure-ban.
Minden olyan környezethez létre kell hozni egy másik alkalmazásregisztrációt, amelyben az alkalmazás üzemel. Ez lehetővé teszi a környezetspecifikus erőforrás-engedélyek konfigurálását minden egyes szolgáltatásnévhez, és győződjön meg arról, hogy egy adott környezetben üzembe helyezett alkalmazás nem beszél egy másik környezet részét képező Azure-erőforrással.
1 – Az alkalmazás regisztrálása az Azure-ban
Egy alkalmazás regisztrálható az Azure-ban az Azure Portal vagy az Azure CLI használatával.
Jelentkezzen be az Azure Portalra , és kövesse az alábbi lépéseket.
2 – Szerepkörök hozzárendelése az application service principalhez
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. 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 szerepköröket a szolgáltatásnévhez az erőforráscsoport hatókörében, mivel a legtöbb alkalmazás egyetlen erőforráscsoportba csoportosítja az összes Azure-erőforrást.
3 – Környezeti változók konfigurálása az alkalmazáshoz
Az DefaultAzureCredential
objektum futásidőben a környezeti változók halmazában fogja keresni a szolgáltatásnév hitelesítő adatait. A környezeti változók többféleképpen konfigurálhatók a .NET használata során az eszköztől és a környezettől függően.
A választott megközelítéstől függetlenül a következő környezeti változókat kell konfigurálnia egy szolgáltatásnév használatakor.
AZURE_CLIENT_ID
→ Az alkalmazásazonosító értéke.AZURE_TENANT_ID
→ a bérlőazonosító értékét.AZURE_CLIENT_SECRET
→ Az alkalmazáshoz létrehozott jelszó/hitelesítő adatok.
Ha az alkalmazást az IIS-ben üzemelteti, javasoljuk, hogy alkalmazáskészletenként állítson be környezeti változókat, hogy elkülönítse az alkalmazások közötti beállításokat.
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='ASPNETCORE_ENVIRONMENT',value='Production']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_CLIENT_ID',value='00000000-0000-0000-0000-000000000000']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_TENANT_ID',value='11111111-1111-1111-1111-111111111111']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_CLIENT_SECRET',value='=abcdefghijklmnopqrstuvwxyz']" /commit:apphost
Ezeket a beállításokat közvetlenül a applicationPools
fájlon belüli applicationHost.config
elem használatával is konfigurálhatja.
<applicationPools>
<add name="CorePool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic">
<environmentVariables>
<add name="ASPNETCORE_ENVIRONMENT" value="Development" />
<add name="AZURE_CLIENT_ID" value="00000000-0000-0000-0000-000000000000" />
<add name="AZURE_TENANT_ID" value="11111111-1111-1111-1111-111111111111" />
<add name="AZURE_CLIENT_SECRET" value="=abcdefghijklmnopqrstuvwxyz" />
</environmentVariables>
</add>
</applicationPools>
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 DefaultAzureCredential
elő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.cs
Belül kövesse az alábbi lépéseket a szolgáltatás és a .DefaultAzureCredential
- A névterek és
Microsoft.Extensions.Azure
aAzure.Identity
névterek belefoglalása egyusing
irányelvbe. - Regisztrálja az Azure-szolgáltatást a megfelelő segítő módszerek használatával.
- Adja át az objektum egy példányát
DefaultAzureCredential
aUseCredential
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: