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.
A helyi fejlesztés során az alkalmazásoknak hitelesíteni kell magukat az Azure-ban a különböző Azure-szolgáltatások használatához. Helyi hitelesítés az alábbi módszerek egyikével:
- Használjon fejlesztői fiókot az Azure Identity-kódtár által támogatott fejlesztői eszközök egyikével.
- Használjon egyszerű szolgáltatást.
Ez a cikk azt ismerteti, hogyan hitelesíthető egy fejlesztői fiókkal az Azure Identity-kódtár által támogatott eszközökkel. Az alábbi szakaszokban a következő ismereteket ismerheti meg:
- A Microsoft Entra-csoportok használata több fejlesztői fiók engedélyeinek hatékony kezelésére.
- Fejlesztői fiókokhoz szerepkörök hozzárendelése a jogosultságok hatókörének meghatározásához.
- Bejelentkezés a támogatott helyi fejlesztési eszközökre.
- Hogyan hitelesíthető egy fejlesztői fiókkal az alkalmazás kódjából.
Támogatott fejlesztői eszközök hitelesítéshez
Ahhoz, hogy egy alkalmazás a fejlesztő Azure-beli hitelesítő adataival hitelesítse magát az Azure-ban a helyi fejlesztés során, a fejlesztőnek be kell jelentkeznie az Azure-ba az Azure CLI használatával.
Az Azure Identity-kódtár képes észlelni, hogy a fejlesztő bejelentkezett az eszközről. Ezután a könyvtár beszerezheti az eszközzel a Microsoft Entra hozzáférési jogkivonatot, hogy az alkalmazást bejelentkezett felhasználóként az Azure-ban hitelesítse.
Ez a megközelítés kihasználja a fejlesztő meglévő Azure-fiókjait a hitelesítési folyamat egyszerűsítése érdekében. 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 az alkalmazás éles környezetben futtatott engedélyeit. Alternatív megoldásként létrehozhat alkalmazási szolgáltatás-főkomponenseket, amelyeket a helyi fejlesztés során használhat, és amelyek hatóköre kizárólag az alkalmazás által igényelt hozzáférésre terjedhet ki.
Microsoft Entra-csoport létrehozása helyi fejlesztéshez
Hozzon létre egy Microsoft Entra-csoportot, amely az alkalmazás által igényelt szerepköröket (engedélyeket) foglalja magában a helyi fejlesztés során, és nem rendeli hozzá a szerepköröket az egyes szolgáltatásnév-objektumokhoz. Ez a megközelítés a következő előnyöket kínálja:
- Minden fejlesztőhöz ugyanazok a szerepkörök vannak hozzárendelve a csoport szintjén.
- Ha új szerepkörre van szükség az alkalmazáshoz, azt csak az alkalmazás csoportához kell hozzáadni.
- Ha egy új fejlesztő csatlakozik a csapathoz, egy új alkalmazásszolgáltatás-tag jön létre a fejlesztő számára, és hozzáadódik a csoporthoz, biztosítva, hogy a fejlesztő megfelelő engedélyekkel rendelkezik az alkalmazás használatához.
Lépjen a Microsoft Entra ID áttekintési oldalára az Azure Portalon.
Válassza az Összes csoportot a bal oldali menüből.
A Csoportok lapon válassza Új csoportlehetőséget.
Az Új csoport lapon töltse ki az alábbi űrlapmezőket:
- Csoporttípus: Válassza Biztonságilehetőséget.
- Csoportnév: Adja meg annak a csoportnak a nevét, amely az alkalmazás vagy a környezet nevére mutató hivatkozást tartalmaz.
- Csoport leírása: Adjon meg egy leírást, amely ismerteti a csoport célját.
A Tagok alatt válassza a Nincsenek tagok kiválasztva hivatkozást, hogy tagokat adjon a csoporthoz.
A megnyíló legördülő panelen keresse meg a korábban létrehozott szolgáltatási objektumot, és válassza ki a szűrt eredmények közül. A kijelölés megerősítéséhez kattintson a panel alján található Kiválasztás gombra.
Az Új csoport lap alján válassza a Létrehozás lehetőséget a csoport létrehozásához és a Minden csoport laphoz való visszatéréshez. Ha nem látja az új csoportot a listában, várjon egy kis időt, és frissítse a lapot.
Szerepkörök hozzárendelése a csoporthoz
Ezután határozza meg, hogy az alkalmazásnak milyen szerepkörökre (engedélyekre) van szüksége az erőforrásokhoz, és rendelje hozzá ezeket a szerepköröket a létrehozott Microsoft Entra-csoporthoz. A csoportok szerepkörhöz rendelhetők az erőforrás, az erőforráscsoport vagy az 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.
Az Azure Portalon lépjen az alkalmazást tartalmazó erőforráscsoport Áttekintés lapjára.
A bal oldali navigációs sávon válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
A Hozzáférés-vezérlés (IAM) lapon válassza a + Hozzáadás lehetőséget, majd a legördülő menüben válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget. A Szerepkör-hozzárendelés hozzáadása lap számos lapot biztosít a szerepkörök konfigurálásához és hozzárendeléséhez.
A Szerepkör lapon a keresőmezővel keresse meg a hozzárendelni kívánt szerepkört. Jelölje ki a szerepkört, majd kattintson a Tovább gombra.
A Tagok lapon:
- Az értékhez való hozzáférés hozzárendeléséhez válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget.
- A Tagok értéknél válassza a + Tagok kijelölése lehetőséget a Tagok kijelölése úszó panel megnyitásához.
- Keresse meg a korábban létrehozott Microsoft Entra-csoportot, és válassza ki a szűrt eredmények közül. Válassza a , majd a lehetőséget a csoport kijelöléséhez és a lebegő panel bezárásához.
- Válassza a Véleményezés + hozzárendelés lehetőséget a Tagok lap alján.
A Véleményezés + hozzárendelés lapon válassza a Véleményezés + hozzárendelés lehetőséget a lap alján.
Bejelentkezés az Azure-ba fejlesztői eszközökkel
Jelentkezzen be az Azure-ba számos olyan fejlesztői eszköz egyikével, amellyel hitelesítést végezhet a fejlesztési környezetben. A hitelesített fióknak a korábban létrehozott és konfigurált Microsoft Entra-csoportban is léteznie kell.
Azure CLI (Az Azure parancssori felülete)
A fejlesztők az Azure CLI használatával végezhetnek hitelesítést. A DefaultAzureCredential vagy az AzureCliCredential szolgáltatást használó alkalmazások ezt a fiókot használhatják az alkalmazáskérések hitelesítéséhez.
Az Azure CLI-vel való hitelesítéshez futtassa a az login parancsot. Egy alapértelmezett webböngészővel rendelkező rendszeren az Azure CLI elindítja a böngészőt a felhasználó hitelesítéséhez.
az login
Az alapértelmezett webböngészővel nem rendelkező rendszerek esetében a az login parancs az eszközkód-hitelesítési folyamatot használja. A felhasználó a --use-device-code argumentum megadásával arra is kényszerítheti az Azure CLI-t, hogy használja az eszköz kódfolyamatát a böngésző elindítása helyett.
az login --use-device-code
Hitelesítés az Azure-szolgáltatásokban az alkalmazásból
A C++-hoz készült Azure Identity-kódtár különböző hitelesítő adatokat biztosít a különböző forgatókönyvek és a Microsoft Entra hitelesítési folyamatok támogatásához. Az alábbi lépések bemutatják, hogyan használható a DefaultAzureCredential a felhasználói fiókokkal való helyi munka során.
A kód implementálása
A DefaultAzureCredential osztály a Microsoft Entra ID-ra való hitelesítés mechanizmusainak rendezett sorozata. Minden hitelesítési mechanizmus egy osztály, amely az TokenCredential osztályból származik, és hitelesítő adatként ismert. Ebben a forgatókönyvben egymás után ellenőrzi, DefaultAzureCredential hogy a fejlesztő bejelentkezett-e az Azure-ba az Azure CLI használatával. Ha a fejlesztő bejelentkezett az Azure CLI-be, akkor az alkalmazás az eszközbe való bejelentkezéshez használt hitelesítő adatokat használja az Azure-ba való hitelesítéshez. A hitelesítőadat-lánc testreszabásáról további információt a DefaultAzureCredential testreszabása című témakörben talál.
Adja hozzá az azure-identity-cpp csomagot az alkalmazáshoz a vcpkg használatával.
vcpkg add port azure-identity-cppAdja hozzá a következő sorokat a CMake-fájlhoz:
find_package(azure-identity-cpp CONFIG REQUIRED) target_link_libraries(<your project name> PRIVATE Azure::azure-identity)Minden olyan C++ kód esetében, amely létrehoz egy Azure SDK-ügyfélobjektumot az alkalmazásban, a következőket szeretné tenni:
Adja meg a fejlécet
azure/identity.hpp.Használja a
DefaultAzureCredentialvagyAzureCliCredentialelemeket hitelesítő adatok példányának létrehozásához. Például:A használathoz
DefaultAzureCredentialállítsa a környezeti változótAZURE_TOKEN_CREDENTIALSdevúgy, hogy az azt jelzi, hogy az alkalmazás fejlesztői környezetben fut. További információ: DefaultAzureCredential testreszabása.// Environment variable AZURE_TOKEN_CREDENTIALS=dev auto credential = std::make_shared<Azure::Identity::DefaultAzureCredential>(true);Vagy használja a
AzureCliCredentialparancsot, hogy mindig az Azure CLI-be bejelentkezett felhasználóval hitelesítse magát.auto credential = std::make_shared<Azure::Identity::AzureCliCredential>();
Az
DefaultAzureCredentialvagyAzureCliCredentialpéldányát adja át az Azure SDK-ügyfél konstruktorának.
Ezekre a lépésekre az alábbi kódszakaszban látható példa. A példa létrehoz egy Azure Storage Blob kliens-t, amely
DefaultAzureCredentialsegítségével hitelesíti magát az Azure-ban.#include <azure/identity.hpp> #include <azure/storage/blobs.hpp> #include <iostream> #include <memory> int main() { try { // DefaultAzureCredential supports dev, test, and prod environments. // See documentation for details on customizing the credential chain: // https://learn.microsoft.com/azure/developer/cpp/sdk/authentication/credential-chains#defaultazurecredential-overview // In production, it's better to use a specific credential type so authentication is more predictable and easier to debug. // Here DefaultAzureCredential is used for local development and environment variable AZURE_TOKEN_CREDENTIALS=dev auto credential = std::make_shared<Azure::Identity::DefaultAzureCredential>(true); // Or use AzureCliCredential to always use the Azure CLI signed-in user to authenticate // auto credential = std::make_shared<Azure::Identity::AzureCliCredential>(); // 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); // TODO: perform some action with the blob client // auto blobClient = containerClient.GetBlobClient("sample-blob"); // auto downloadResult = blobClient.DownloadTo("path/to/local/file"); } catch (const std::exception& ex) { std::cout << "Exception: " << ex.what() << std::endl; return 1; } return 0; }