Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure által üzemeltetett alkalmazások más Azure erőforrásokra való hitelesítésének ajánlott módszere egy felügyelt identitás használata. Ez a megközelítés támogatott a legtöbb Azure szolgáltatáshoz, beleértve a Azure App Service, Azure Container Apps és Azure Virtual Machines üzemeltetett alkalmazásokat is. A hitelesítés áttekintési oldalán talál további információkat a különböző hitelesítési technikákról és módszerekről. Az alábbi szakaszokban a következő ismereteket fogja elsajátítani:
- Alapvető felügyelt identitásfogalmak
- Felhasználó által hozzárendelt felügyelt identitás létrehozása az alkalmazáshoz
- Szerepkörök hozzárendelése a felhasználó által hozzárendelt felügyelt identitáshoz
- Hitelesítés a felhasználó által hozzárendelt felügyelt identitással az alkalmazáskódból
Alapvető felügyelt identitásfogalmak
A felügyelt identitás lehetővé teszi, hogy az alkalmazás biztonságosan csatlakozzon más Azure erőforrásokhoz titkos kulcsok vagy más alkalmazáskulcsok használata nélkül. Belsőleg Azure nyomon követi az identitást, és hogy mely erőforrásokhoz csatlakozhat. Azure ezeket az információkat arra használja, hogy automatikusan Microsoft Entra tokeneket szerezzen meg az alkalmazáshoz, lehetővé téve, hogy más Azure erőforrásokhoz csatlakozzon.
A felügyelt identitások kétféleképpen konfigurálhatók a üzemeltetett alkalmazás konfigurálásakor:
- System által hozzárendelt felügyelt identitások közvetlenül egy Azure erőforráson vannak engedélyezve, és az életciklusához vannak kötve. Az erőforrás törlésekor az Azure automatikusan törli az identitást. A rendszer által hozzárendelt identitások minimalista megközelítést biztosítanak a felügyelt identitások használatához.
- Felhasználó által hozzárendelt felügyelt identitások különálló Azure erőforrásokként jönnek létre, és nagyobb rugalmasságot és képességeket biztosítanak. Olyan megoldásokhoz ideálisak, amelyek több Azure erőforrást tartalmaznak, amelyeknek azonos identitással és engedélyekkel kell rendelkezniük. Ha például több virtuális gépnek kell elérnie ugyanazt a Azure erőforráskészletet, a felhasználó által hozzárendelt felügyelt identitás újrahasználhatóságot és optimalizált felügyeletet biztosít.
Jótanács
További információ a rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitások kiválasztásáról és kezeléséről a felügyelt identitásokkal kapcsolatos ajánlott eljárásokra vonatkozó javaslatokkal foglalkozó cikkben.
A következő szakaszok ismertetik a felhasználó által hozzárendelt felügyelt identitás engedélyezésének és használatának lépéseit egy Azure által üzemeltetett alkalmazáshoz. Ha rendszer által hozzárendelt felügyelt identitást kell használnia, további információért tekintse meg a rendszer által hozzárendelt felügyelt identitásokról szóló cikket.
Felhasználó által hozzárendelt felügyelt identitás létrehozása
A felhasználó által hozzárendelt felügyelt identitások különálló erőforrásokként jönnek létre az Azure-előfizetésben a Azure portál vagy a Azure CLI használatával. Azure CLI parancsok futtathatók a Azure Cloud Shell vagy a Azure CLI telepített munkaállomáson.
A Azure portálon adja meg a Managed identityes kifejezést a fő keresősávban, és válassza ki az egyező találatot a Szolgáltatások szakaszban.
A Felügyelt identitások lapon válassza a +létrehozása lehetőséget.
A Felhasználó által hozzárendelt felügyelt identitás létrehozása lapon válassza ki a felhasználó által hozzárendelt felügyelt identitáshoz tartozó előfizetést, erőforráscsoportot és régiót, majd adjon meg egy nevet.
Válassza Véleményezés + létrehozása lehetőséget a bemenetek áttekintéséhez és érvényesítéséhez.
Válassza a létrehozása lehetőséget a felhasználó által hozzárendelt felügyelt identitás létrehozásához.
Az identitás létrehozása után válassza az Ugrás az erőforrásra.
Az új identitás Áttekintés oldalon másolja a ügyfélazonosító értéket, amelyet később felhasználhat az alkalmazáskód konfigurálásakor.
Felügyelt identitás hozzárendelése az alkalmazáshoz
Egy felhasználó által hozzárendelt felügyelt identitás társítható egy vagy több Azure erőforráshoz. Az identitást használó összes erőforrás az identitás szerepkörei által alkalmazott engedélyeket szerzi be.
A Azure portálon keresse meg az alkalmazáskódot futtató erőforrást, például egy Azure App Service vagy Azure Container Apps-példányt.
Az erőforrás Áttekintés lapján bontsa ki a Beállítások elemet, és válassza ki az Identitás elemet a navigációs sávon.
Az Identitás lapon váltson a Felhasználó által hozzárendelt lapra.
Válassza a + hozzáadása lehetőséget a Felhasználó által hozzárendelt felügyelt identitás hozzáadása panel megnyitásához.
A Felhasználó által hozzárendelt felügyelt identitás hozzáadása panelen a Előfizetés legördülő lista használatával szűrheti az identitások keresési eredményeit. A Felhasználó által hozzárendelt felügyelt identitások keresőmezővel keresse meg az alkalmazást futtató Azure erőforráshoz engedélyezett felhasználó által hozzárendelt felügyelt identitást.
Válassza ki az azonosítót, és a panel alján válassza a hozzáadása lehetőséget a folytatáshoz.
Szerepkörök hozzárendelése a felügyelt identitáshoz
Ezután határozza meg, hogy az alkalmazásnak mely szerepkörökre van szüksége, és rendelje hozzá ezeket a szerepköröket a felügyelt identitáshoz. A szerepköröket a következő hatókörökben rendelheti hozzá egy felügyelt identitáshoz:
- erőforrás-: A hozzárendelt szerepkörök csak az adott erőforrásra vonatkoznak.
- erőforráscsoport: A hozzárendelt szerepkörök az erőforráscsoportban található összes erőforrásra vonatkoznak.
- Előfizetési: A hozzárendelt szerepkörök az előfizetésben található összes erőforrásra vonatkoznak.
Az alábbi példa bemutatja, hogyan rendelhet hozzá szerepköröket az erőforráscsoport hatóköréhez, mivel számos alkalmazás egyetlen erőforráscsoport használatával kezeli az összes kapcsolódó Azure erőforrást.
Nyissa meg az Áttekintés lapját annak az erőforráscsoportnak, amely a felhasználó által hozzárendelt felügyelt identitással rendelkező alkalmazást tartalmazza.
Válassza Hozzáférés-vezérlés (IAM) a bal oldali navigációs sávon.
A Hozzáférés-vezérlés (IAM) lapon válassza a + hozzáadása lehetőséget a felső menüben, majd válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget a Szerepkör-hozzárendelés hozzáadása lapra való navigáláshoz.
A Szerepkör-hozzárendelés hozzáadása oldal egy füles, többlépéses munkafolyamatot jelenít meg a szerepkörök identitásokhoz való hozzárendeléséhez. A kezdeti Szerepkör lapon a felső keresőmezővel keresse meg az identitáshoz hozzárendelni kívánt szerepkört.
Válassza ki a szerepkört az eredmények közül, majd a Következő lehetőséget választva lépjen a Tagok lapra.
A Hozzáférés hozzárendeléséhez a beállításnál válassza ki a Felügyelt identitáslehetőséget.
A Tagok beállításnál válassza a + Tagok kijelölése lehetőséget a Felügyelt identitások kiválasztása panel megnyitásához.
A Felügyelt identitások kiválasztása panelen az Előfizetés és Felügyelt identitás legördülő menükből szűrheti az identitások keresési eredményeit. A Select keresőmezőt használva keresse meg a felhasználó által hozzárendelt felügyelt identitást, amelyet engedélyezett az alkalmazást üzemeltető Azure erőforráshoz.
Válassza ki az azonosságot, és válassza a Kijelölés lehetőséget a panel alján a folytatáshoz.
Válassza a Véleményezés és a Hozzárendelés lehetőséget az oldal alján.
Az utolsó Véleményezés és hozzárendelés lapon válassza az Véleményezés és hozzárendelés lehetőséget a munkafolyamat befejezéséhez.
Hitelesítés Azure szolgáltatásokhoz az alkalmazásból
A Azure Identitástár különböző hitelesítő adatokat biztosít– a TokenCredential különböző forgatókönyvek és Microsoft Entra hitelesítési folyamatok támogatásához igazított implementációit. Mivel a felügyelt identitás helyi futtatáskor nem érhető el, az alábbi lépések bemutatják, hogy melyik hitelesítő adatot melyik forgatókönyvben érdemes használni:
-
Helyi fejlesztési környezet: helyi fejlesztés során csakhasználjon egy DefaultAzureCredential nevű osztályt a hitelesítő adatok véleményezett, előre konfigurált láncolatához.
DefaultAzureCredentialfelderíti a felhasználói hitelesítő adatokat a helyi eszközkészletből vagy IDE-ből, például a Azure CLI vagy Visual Studio. Emellett rugalmasságot és kényelmet biztosít az újrapróbálkozáshoz, a válaszok várakozási idejéhez és a több hitelesítési lehetőség támogatásához is. További információért látogasson el az Azure szolgáltatások hitelesítése helyi fejlesztés során című cikkre. - Azure által üzemeltetett alkalmazások: Ha az alkalmazás Azure fut, az ManagedIdentityCredential használatával biztonságosan felderítheti az alkalmazáshoz konfigurált felügyelt identitást. Ennek a hitelesítő adattípusnak a megadása megakadályozza, hogy más elérhető hitelesítő adatok váratlanul átvehetők legyenek.
A kód implementálása
Adja hozzá a azure-identity-cpp csomagot az alkalmazáshoz vcpkg használatával.
Keresse meg az alkalmazásprojekt könyvtárát egy tetszőleges terminálon, és futtassa a következő parancsot:
vcpkg add port azure-identity-cppAdja hozzá a következőket a CMake-fájlhoz:
find_package(azure-identity-cpp CONFIG REQUIRED) target_link_libraries(<your project name> PRIVATE Azure::azure-identity)Azure szolgáltatások speciális ügyfelekkel érhetők el a különböző Azure SDK ügyfélkódtárakból. Minden olyan C++ kód esetében, amely létrehoz egy Azure SDK-ügyfelet az alkalmazásban, a következőkre van szüksége:
- Adja meg a fejlécet
azure/identity.hpp. - Hozza létre a
DefaultAzureCredentialegy példányát. - Adja át a
DefaultAzureCredentialpéldányát a Azure SDK ügyfélkonstruktornak. - Állítsa a környezeti változót
AZURE_CLIENT_IDa felhasználó által hozzárendelt felügyelt identitás ügyfélazonosítójára. - Állítsa be a
AZURE_TOKEN_CREDENTIALSkörnyezeti változótManagedIdentityCredentialúgy, hogyDefaultAzureCredentiala felügyelt identitás hitelesítő adatait használja. Ez a gyakorlat kiszámíthatóbbá és egyszerűbbé teszi a hitelesítés hibakeresését Azure üzembe helyezéskor. További információ: Adott hitelesítő adatok használata.
Ezekre a lépésekre a következő kódszakaszban látható példa egy Azure Storage Blob-ügyféllel.
#include <azure/identity.hpp> #include <azure/storage/blobs.hpp> #include <iostream> #include <memory> #include <cstdlib> int main() { try { // Set the AZURE_CLIENT_ID environment variable to your user-assigned managed identity client ID // This can be done in your deployment environment or in code (shown below for demonstration) // std::putenv("AZURE_CLIENT_ID=your-user-assigned-identity-client-id"); // Create a credential - DefaultAzureCredential will use the AZURE_CLIENT_ID environment variable // Create a credential - DefaultAzureCredential will use the AZURE_CLIENT_ID and AZURE_TOKEN_CREDENTIALS environment variables auto credential = std::make_shared<Azure::Identity::DefaultAzureCredential>(true); // Create a client for the specified storage account std::string accountUrl = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/"; Azure::Storage::Blobs::BlobServiceClient blobServiceClient(accountUrl, credential); // Get a reference to a container std::string containerName = "sample-container"; auto containerClient = blobServiceClient.GetBlobContainerClient(containerName); // Get a reference to a blob std::string blobName = "sample-blob"; auto blobClient = containerClient.GetBlobClient(blobName); // TODO: perform some action with the blob client // auto downloadResult = blobClient.DownloadTo("path/to/local/file"); std::cout << "Successfully authenticated using user-assigned managed identity." << std::endl; } catch (const std::exception& ex) { std::cout << "Exception: " << ex.what() << std::endl; return 1; } return 0; }- Adja meg a fejlécet
A C++ hitelesítés Azure SDK áttekintésében cikkben leírtak szerint a DefaultAzureCredential több hitelesítési módszert is támogat, és meghatározza a futtatókörnyezetben használt hitelesítési módszert. Ennek a megközelítésnek az az előnye, hogy 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. Ha az előző kódot a helyi fejlesztés során futtatja a munkaállomáson, DefaultAzureCredential vagy egy alkalmazásszolgáltatásnevet használ a környezeti beállítások alapján, vagy a fejlesztői eszköz hitelesítő adatait más Azure-erőforrásokkal való hitelesítéshez. Így ugyanaz a kód használható az alkalmazás hitelesítésére az Azure erőforrásaihoz helyi fejlesztés során és az Azure-ba való üzembe helyezéskor.
Fontos
DefaultAzureCredential leegyszerűsíti a hitelesítést, miközben a Azure üzembe helyező alkalmazásokat úgy fejleszti, hogy egyesíti a Azure üzemeltetési környezetekben használt hitelesítő adatokat és a helyi fejlesztés során használt hitelesítő adatokat. Éles környezetben jobb, ha egy adott hitelesítő adattípust használ, így a hitelesítés kiszámíthatóbb és könnyebben hibakereshető.
A DefaultAzureCredential alternatíva a ManagedIdentityCredential használata. A használat ManagedIdentityCredential lépései megegyeznek a DefaultAzureCredential típussal.
Ezekre a lépésekre a következő kódszakaszban látható példa egy Azure Storage Blob-ügyféllel.
#include <azure/identity.hpp>
#include <azure/storage/blobs.hpp>
#include <iostream>
#include <memory>
int main() {
try {
// Create a user-assigned managed identity credential with the client ID
Azure::Identity::ManagedIdentityCredentialOptions options;
options.ClientId = "abcd1234-..."; // Replace with your user-assigned managed identity client ID
auto credential = std::make_shared<Azure::Identity::ManagedIdentityCredential>(options);
// Create a client for the specified storage account
std::string accountUrl = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/";
Azure::Storage::Blobs::BlobServiceClient blobServiceClient(accountUrl, credential);
// Get a reference to a container
std::string containerName = "sample-container";
auto containerClient = blobServiceClient.GetBlobContainerClient(containerName);
// Get a reference to a blob
std::string blobName = "sample-blob";
auto blobClient = containerClient.GetBlobClient(blobName);
// TODO: perform some action with the blob client
// auto downloadResult = blobClient.DownloadTo("path/to/local/file");
std::cout << "Successfully authenticated using user-assigned managed identity." << std::endl;
} catch (const std::exception& ex) {
std::cout << "Exception: " << ex.what() << std::endl;
return 1;
}
return 0;
}