Csatlakozás az alkalmazásból az erőforrásokba hitelesítő adatok kezelése nélkül
A felügyelt identitásokkal rendelkező Azure-erőforrások mindig lehetőséget biztosítanak egy felügyelt identitás megadására a Microsoft Entra-hitelesítést támogató Azure-erőforrásokhoz való csatlakozáshoz. A felügyelt identitások támogatása feleslegessé teszi a fejlesztők számára a hitelesítő adatok kódban való kezelését. A felügyelt identitások az ajánlott hitelesítési lehetőségek az őket támogató Azure-erőforrások használatakor. Olvassa el a felügyelt identitások áttekintését.
Ez a lap bemutatja, hogyan konfigurálhat egy App Service-t az Azure Key Vaulthoz, az Azure Storage-hoz és a Microsoft SQL Serverhez való csatlakozáshoz. Ugyanezek az alapelvek használhatók minden olyan Azure-erőforráshoz, amely támogatja a felügyelt identitásokat, és amelyek a Microsoft Entra-hitelesítést támogató erőforrásokhoz csatlakoznak.
A kódminták az Azure Identity ügyfélkódtárát használják, amely az ajánlott módszer, mivel automatikusan kezeli az Ön számára szükséges lépések nagy részét, beleértve a kapcsolathoz használt hozzáférési jogkivonat beszerzését is.
Milyen erőforrásokhoz csatlakozhatnak a felügyelt identitások?
A felügyelt identitások bármilyen olyan erőforráshoz csatlakozhatnak, amely támogatja a Microsoft Entra-hitelesítést. Általában nincs szükség különleges támogatásra ahhoz, hogy az erőforrás lehetővé tegye a felügyelt identitások számára a csatlakozást.
Egyes erőforrások nem támogatják a Microsoft Entra-hitelesítést, vagy az ügyfélkódtáruk nem támogatja a jogkivonatokkal való hitelesítést. Olvassa el a felügyelt identitások biztonságos elérésére vonatkozó útmutatónkat anélkül, hogy a kódban vagy az alkalmazáskonfigurációban kellene tárolnia őket.
Felügyelt identitás létrehozása
A felügyelt identitásnak két típusa van: a rendszer által hozzárendelt és a felhasználó által hozzárendelt. A rendszer által hozzárendelt identitások közvetlenül egyetlen Azure-erőforráshoz vannak társítva. Az Azure-erőforrás törlésekor az identitás is. A felhasználó által hozzárendelt felügyelt identitás több Azure-erőforráshoz is társítható, életciklusa pedig független ezekétől az erőforrásoktól.
Ez a cikk bemutatja, hogyan hozhat létre és konfigurálhat egy felhasználó által hozzárendelt felügyelt identitást, amely a legtöbb forgatókönyv esetében ajánlott. Ha a használt forráserőforrás nem támogatja a felhasználó által hozzárendelt felügyelt identitásokat, tekintse meg az erőforrás-szolgáltató dokumentációját, amelyből megtudhatja, hogyan konfigurálhatja rendszer által hozzárendelt felügyelt identitásként.
Felhasználó által hozzárendelt felügyelt identitás létrehozása
Megjegyzés:
Új felhasználó által hozzárendelt felügyelt identitás létrehozásához olyan szerepkörre lesz szüksége, mint a "Felügyelt identitás közreműködője".
- Keressen rá a "Felügyelt identitások" kifejezésre a portál tetején található keresősávon, és válassza ki a megfelelő eredményt.
- Válassza a "Létrehozás" gombot.
- Válassza ki az Előfizetés és erőforrás csoportot, és adja meg a felügyelt identitás nevét.
Az érvényesítési teszt futtatásához válassza a "Véleményezés + létrehozás" lehetőséget, majd a "Létrehozás" gombot.
Az identitás létrehozásakor megjelenik egy megerősítést kérő képernyő.
Most már rendelkezik egy identitással, amely társítható egy Azure-forráserőforráshoz. További információ a felhasználó által hozzárendelt felügyelt identitások kezeléséről.
A forráserőforrás konfigurálása felhasználó által hozzárendelt felügyelt identitás használatára
Az alábbi lépéseket követve konfigurálhatja az Azure-erőforrást úgy, hogy felügyelt identitással rendelkezzen a portálon keresztül. Az adott erőforrástípus dokumentációjában megtudhatja, hogyan konfigurálhatja az erőforrás identitását parancssori felület, PowerShell vagy ARM-sablon használatával.
Megjegyzés:
Az Azure-erőforrások rendszer által hozzárendelt identitáshoz való konfigurálásához "Írási" engedélyekre lesz szüksége. A felhasználó által hozzárendelt identitás azure-erőforráshoz való társításához szüksége lesz egy olyan szerepkörre, mint a "Managed Identity Operator".
- Keresse meg az erőforrást a portál tetején található keresősáv használatával
- Válassza ki az Identitás hivatkozást a navigációs sávon
Válassza a "Felhasználó által hozzárendelt" lapot
Válassza a "Hozzáadás" gombot
- Válassza ki a korábban létrehozott felhasználó által hozzárendelt identitást, és válassza a "Hozzáadás" lehetőséget
- Az identitás az erőforráshoz lesz társítva, és a lista frissül.
A forráserőforrás mostantól rendelkezik egy felhasználó által hozzárendelt identitással, amellyel csatlakozhat a célerőforrásokhoz.
Engedélyek hozzáadása az identitáshoz
Megjegyzés:
Szerepkör-hozzárendelések hozzáadásához a célerőforráshoz olyan szerepkörre lesz szüksége, mint a "Felhasználói hozzáférés Rendszergazda istrator" vagy a "Tulajdonos". Győződjön meg arról, hogy az alkalmazás futtatásához szükséges legkisebb jogosultságot biztosítja.
Most, hogy az App Service rendelkezik felügyelt identitással, meg kell adnia az identitásnak a megfelelő engedélyeket. Mivel ezt az identitást használja az Azure Storage használatához, az Azure Szerepköralapú hozzáférés-vezérlési (RBAC) rendszert fogja használni.
- Keresse meg azt az erőforrást, amelyhez csatlakozni szeretne a portál tetején található keresősáv használatával
- A bal oldali navigációs sávon válassza a "Hozzáférés-vezérlés (IAM)" hivatkozást.
- Válassza a képernyő tetején található "Hozzáadás" gombot, és válassza a "Szerepkör-hozzárendelés hozzáadása" lehetőséget.
- Megjelenik a szerepkörök listája. A szerepkörök adott engedélyeit a "Nézet" hivatkozásra kattintva tekintheti meg. Válassza ki az identitásnak adni kívánt szerepkört, és válassza a "Tovább" gombot.
- A rendszer kérni fogja, hogy válassza ki a szerepkört. Válassza a "Felügyelt identitás" lehetőséget, majd a "Tagok hozzáadása" hivatkozást.
- Megjelenik egy helyi panel a jobb oldalon, ahol a felügyelt identitás típusa alapján kereshet. Válassza a "Felhasználó által hozzárendelt felügyelt identitás" lehetőséget a "Felügyelt identitás" lehetőségből.
- Válassza ki a korábban létrehozott identitást és a "Kiválasztás" gombot. A környezeti panel bezárul, és az identitás hozzá lesz adva a listához.
- Válassza a "Véleményezés + hozzárendelés" gombot a szerepkör-hozzárendelés összegzésének megtekintéséhez, majd még egyszer a megerősítéshez.
- Válassza a "Szerepkör-hozzárendelések" lehetőséget, és megjelenik az erőforrás szerepkör-hozzárendeléseinek listája.
A felügyelt identitás most már rendelkezik a megfelelő engedélyekkel az Azure-célerőforrás eléréséhez. További információ az Azure Szerepköralapú hozzáférés-vezérlésről.
A felügyelt identitás használata a kódban
Az App Service mostantól rendelkezik engedéllyel rendelkező felügyelt identitással. A kódban szereplő felügyelt identitással ahelyett, hogy hitelesítő adatokat tárol a kódban, használhatja a célerőforrásokat.
Az ajánlott módszer az Azure Identity-kódtár használata az előnyben részesített programozási nyelvhez. A támogatott nyelvek közé tartozik a .NET, a Java, a JavaScript, a Python, a Go és a C++. A kódtár hozzáférési jogkivonatokat szerez be Önnek, így egyszerűen csatlakozhat a célerőforrásokhoz.
Az Azure Identity-kódtár használata a fejlesztési környezetben
A C++ kódtár kivételével az Azure Identity-kódtárak támogatnak egy típust DefaultAzureCredential
. DefaultAzureCredential
automatikusan megkísérli a hitelesítést több mechanizmuson keresztül, beleértve a környezeti változókat vagy egy interaktív bejelentkezést. A hitelesítő adattípus a saját hitelesítő adataival használható a fejlesztési környezetben. Az éles Azure-környezetben is használható felügyelt identitással. Az alkalmazás üzembe helyezésekor nincs szükség kódmódosításra.
Ha felhasználó által hozzárendelt felügyelt identitásokat használ, explicit módon meg kell adnia azt a felhasználó által hozzárendelt felügyelt identitást is, amellyel hitelesítést kíván végezni az identitás ügyfélazonosítójának paraméterként való átadásával. Az ügyfél-azonosító lekéréséhez nyissa meg az identitást a portálon.
További információ az Azure Identity-kódtárakról:
- Azure Identity Library for .NET
- Azure Identity library for Java
- Azure Identity library for JavaScript
- Azure Identity library for Python
- Azure Identity modul Go-hoz
- Azure Identity library for C++
Blob elérése az Azure Storage-ban
using Azure.Identity;
using Azure.Storage.Blobs;
// code omitted for brevity
// Specify the Client ID if using user-assigned managed identities
var clientID = Environment.GetEnvironmentVariable("Managed_Identity_Client_ID");
var credentialOptions = new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = clientID
};
var credential = new DefaultAzureCredential(credentialOptions);
var blobServiceClient1 = new BlobServiceClient(new Uri("<URI of Storage account>"), credential);
BlobContainerClient containerClient1 = blobServiceClient1.GetBlobContainerClient("<name of blob>");
BlobClient blobClient1 = containerClient1.GetBlobClient("<name of file>");
if (blobClient1.Exists())
{
var downloadedBlob = blobClient1.Download();
string blobContents = downloadedBlob.Value.Content.ToString();
}
Az Azure Key Vaultban tárolt titkos kód elérése
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using Azure.Core;
// code omitted for brevity
// Specify the Client ID if using user-assigned managed identities
var clientID = Environment.GetEnvironmentVariable("Managed_Identity_Client_ID");
var credentialOptions = new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = clientID
};
var credential = new DefaultAzureCredential(credentialOptions);
var client = new SecretClient(
new Uri("https://<your-unique-key-vault-name>.vault.azure.net/"),
credential);
KeyVaultSecret secret = client.GetSecret("<my secret>");
string secretValue = secret.Value;
Az Azure SQL Database elérése
using Azure.Identity;
using Microsoft.Data.SqlClient;
// code omitted for brevity
// Specify the Client ID if using user-assigned managed identities
var clientID = Environment.GetEnvironmentVariable("Managed_Identity_Client_ID");
var credentialOptions = new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = clientID
};
AccessToken accessToken = await new DefaultAzureCredential(credentialOptions).GetTokenAsync(
new TokenRequestContext(new string[] { "https://database.windows.net//.default" }));
using var connection = new SqlConnection("Server=<DB Server>; Database=<DB Name>;")
{
AccessToken = accessToken.Token
};
var cmd = new SqlCommand("select top 1 ColumnName from TableName", connection);
await connection.OpenAsync();
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
Console.WriteLine(dr.GetValue(0).ToString());
}
dr.Close();
Csatlakozás olyan erőforrásokhoz, amelyek nem támogatják a Microsoft Entra-azonosítót vagy a jogkivonatalapú hitelesítést a tárakban
Egyes Azure-erőforrások még nem támogatják a Microsoft Entra-hitelesítést, vagy az ügyfélkódtárak nem támogatják a jogkivonatokkal való hitelesítést. Ezek az erőforrások általában nyílt forráskódú technológiák, amelyek felhasználónevet és jelszót vagy hozzáférési kulcsot várnak egy kapcsolati sztring.
A hitelesítő adatok kódban vagy alkalmazáskonfigurációban való tárolásának elkerülése érdekében titkos kulcsként tárolhatja a hitelesítő adatokat az Azure Key Vaultban. A fenti példában szereplő példában lekérheti a titkos kódot az Azure KeyVaultból egy felügyelt identitással, és átadhatja a hitelesítő adatokat a kapcsolati sztring. Ez a megközelítés azt jelenti, hogy a hitelesítő adatokat nem kell közvetlenül a kódban vagy a környezetben kezelni.
Irányelvek a jogkivonatok közvetlen kezelése esetén
Bizonyos esetekben érdemes lehet manuálisan beszerezni a felügyelt identitásokhoz tartozó jogkivonatokat ahelyett, hogy beépített módszert használna a célerőforráshoz való csatlakozáshoz. Ezek a forgatókönyvek nem tartalmaznak ügyfélkódtárat a használt programozási nyelvhez vagy a célerőforráshoz, amelyhez csatlakozik, vagy nem az Azure-ban futó erőforrásokhoz csatlakozik. A jogkivonatok manuális beszerzésekor a következő irányelveket biztosítjuk:
A beszerzett jogkivonatok gyorsítótárazása
A teljesítmény és a megbízhatóság érdekében javasoljuk, hogy az alkalmazás gyorsítótárazza a jogkivonatokat a helyi memóriában, vagy titkosítsa őket, ha lemezre szeretné menteni őket. Mivel a felügyelt identitás jogkivonatai 24 órán át érvényesek, nem jár előnyökkel az új jogkivonatok rendszeres kérése, mivel a rendszer gyorsítótárazott jogkivonatot ad vissza a jogkivonatot kibocsátó végponttól. Ha túllépi a kérelemkorlátokat, korlátozott lesz a sebesség, és HTTP 429-hiba jelenik meg.
Jogkivonat beszerzésekor beállíthatja, hogy a jogkivonat gyorsítótára 5 perccel a expires_on
jogkivonat létrehozásakor visszaadott (vagy azzal egyenértékű) tulajdonság előtt lejárjon.
Jogkivonat ellenőrzése
Az alkalmazásnak nem szabad egy jogkivonat tartalmára támaszkodnia. A jogkivonat tartalma csak az elérni kívánt célközönségnek (célerőforrásnak) szól, nem pedig a jogkivonatot kérő ügyfélnek. A jogkivonat tartalma a jövőben változhat vagy titkosítható.
Jogkivonatok nem tehetők közzé és nem helyezhetők át
A jogkivonatokat hitelesítő adatokként kell kezelni. Ne tegye közzé őket a felhasználók vagy más szolgáltatások számára; például naplózási/monitorozási megoldások. Nem szabad áthelyezni őket az őket használó forráserőforrásból, kivéve a célerőforráson való hitelesítést.
További lépések
- Felügyelt identitások használata az App Service-hez és az Azure Functionshez
- How to use managed identities with Azure Container Instances
- Felügyelt identitások implementálása a Microsoft Azure-erőforrásokhoz
- Számítási feladatok identitás-összevonásának használata felügyelt identitásokhoz a Microsoft Entra által védett erőforrások titkos kulcsok kezelése nélkül való eléré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: