Python alkalmazások hitelesítése Azure szolgáltatásokhoz a helyi fejlesztés során szolgáltatásnevek használatával

A helyi fejlesztés során az alkalmazásoknak hitelesítést kell végeznie a különböző Azure szolgáltatások eléréséhez Azure. Ez a cikk azt ismerteti, hogyan használhatja az alkalmazásszolgáltatási főszereplőt a helyi azonosítás két gyakori megközelítésének egyikeként.

  • Microsoft Entra alkalmazás regisztrálása szolgáltatás főfelhasználó létrehozásához
  • Microsoft Entra csoportok használata az engedélyek hatékony kezeléséhez
  • Szerepkörök hozzárendelése hatókörengedélyekhez
  • Hogyan hitelesítsünk szolgáltatás főnév alkalmazásával az alkalmazásod kódjából

A dedikált alkalmazásszolgáltatás-tagok használata lehetővé teszi, hogy betartsa a minimális jogosultság elvét Azure erőforrások elérésekor. Az engedélyek az alkalmazás adott követelményeire korlátozódnak a fejlesztés során, megakadályozva a más alkalmazásokhoz vagy szolgáltatásokhoz szánt Azure erőforrások véletlen elérését. Ez a megközelítés segít elkerülni azokat a problémákat is, amikor az alkalmazást éles környezetbe helyezik át, mivel biztosítja, hogy a fejlesztési környezetben ne rendelkezzen túlzott jogosultságokkal.

Egy diagram, amely bemutatja, hogy egy helyi fejlesztői környezetben futó alkalmazás hogyan szerzi be az alkalmazás szolgáltatási főazonosítóját egy .env fájlból, majd ezt az identitást használva csatlakozik az Azure-erőforrásokhoz.

Amikor az alkalmazás regisztrálva van az Azure-ben, létrejön egy szolgáltatási főfelhasználó. Helyi fejlesztéshez:

  • Hozzon létre egy külön alkalmazásregisztrációt minden fejlesztő számára, aki az alkalmazáson dolgozik, hogy minden fejlesztő rendelkezzen saját alkalmazásszolgáltatásnévvel, elkerülve a hitelesítő adatok megosztásának szükségességét.
  • Hozzon létre egy külön alkalmazásregisztrációt minden alkalmazáshoz, hogy az alkalmazás engedélyeit csak a szükségesre korlátozza.

A helyi fejlesztés során a környezeti változók az application service principal identitásával vannak beállítva. Az Azure Identitástár beolvassa ezeket a környezeti változókat az alkalmazás hitelesítéséhez a szükséges Azure erőforrásokhoz.

Az alkalmazás regisztrálása a Azure

Az alkalmazásszolgáltatási szolgáltatásfő objektumai az Azure-ban egy alkalmazásregisztráción keresztül jönnek létre, az Azure portál vagy az Azure CLI használatával.

  1. A Azure portál keresősávján lépjen a App registrations lapra.

  2. A App registrations lapon válassza a + Új regisztráció lehetőséget.

  3. Az alkalmazás regisztrálása oldalon:

    • A Név mezőben adjon meg egy leíró értéket, amely tartalmazza az alkalmazás nevét és a célkörnyezetet.
    • A Támogatott fióktípusokesetén válassza csak ebben a szervezeti címtárban lévő fiókokat (csak Microsoft Ügyfél által vezetett – Egyetlen bérlő), vagy amelyik a legjobban megfelel a követelményeknek.
  4. Az alkalmazás regisztrálásához és a szolgáltatásfőfelhasználó létrehozásához válassza a Regisztrálás lehetőséget.

    Az Azure portálon egy alkalmazásregisztráció létrehozását bemutató képernyőkép.

  5. Az alkalmazás alkalmazásregisztrációs lapján másolja ki a alkalmazás (ügyfél) azonosítóját és címtár (bérlő) azonosítóját, majd illessze be őket egy ideiglenes helyre, hogy később használhassa őket az alkalmazáskód-konfigurációkban.

  6. Válassza Tanúsítvány vagy titkos hozzáadása lehetőséget az alkalmazás hitelesítő adatainak beállításához.

  7. A Tanúsítványok > titkos kódok lapon válassza az + Új ügyfélkód lehetőséget.

  8. A megnyíló Ügyfélkód hozzáadása legördülő panelen:

    • A Leírásmezőben adja meg az Aktuális értéket.
    • A Lejárat értéknél hagyja meg az alapértelmezett 180 napos ajánlott értéket.
    • Válassza az Hozzáadás lehetőséget a titkos kód hozzáadásához.
  9. A Tanúsítványok & titkos kulcsok lapon másolja ki az ügyfél titkos kódjának Érték tulajdonságát egy későbbi lépésben való használatra.

    Feljegyzés

    Az ügyfél titkos kódjának értéke csak egyszer jelenik meg az alkalmazásregisztráció létrehozása után. Több ügyféltitkot is hozzáadhat anélkül, hogy érvénytelenítené ezt az ügyféltitkot, de ennek az értékét többé nem lehet megjeleníteni.

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 ahelyett, hogy a szerepköröket az egyes szolgáltatásnév-objektumokhoz rendelné. 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.
  1. Lépjen a Microsoft Entra ID áttekintési lapjára a Azure portálon.

  2. Válassza az Összes csoportot a bal oldali menüből.

  3. A Csoportok lapon válassza Új csoportlehetőséget.

  4. Az Új csoport lapon töltse ki az alábbi űrlapmezőket:

    • Csoport típusa: Válassza a Biztonság lehető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.

    Az Azure portál képernyőképe, amely bemutatja, hogyan lehet létrehozni egy csoportot.

  5. A Tagok alatt válassza a Nincsenek tagok kiválasztva hivatkozást, hogy tagokat adjon a csoporthoz.

  6. 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.

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

  1. A Azure portálon keresse meg az alkalmazást tartalmazó erőforráscsoport Overview lapját.

  2. A bal oldali navigációs sávon válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. 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.

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

  5. 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.

    Egy képernyőkép, amely megmutatja, hogyan lehet szerepkört hozzárendelni a Microsoft Entra csoporthoz.

  6. 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.

Az alkalmazáskörnyezet változóinak beállítása

Futtatási időben az Azure Identity könyvtár bizonyos hitelesítő adatai, mint például a DefaultAzureCredential, EnvironmentCredential és ClientSecretCredential, konvenció szerint keresik a szolgáltatás főgazda információkat a környezeti változókban. A környezeti változók többféleképpen konfigurálhatók a Python 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 konfigurálja a következő környezeti változókat egy szolgáltatásnévhez:

  • AZURE_CLIENT_ID: A regisztrált alkalmazás alkalmazásazonosítója Azure.
  • AZURE_TENANT_ID: A Microsoft Entra bérlő azonosítója.
  • AZURE_CLIENT_SECRET: Az alkalmazás titkos ügyfélkódjának hitelesítő adatai.

Mivel a fejlesztők többsége több alkalmazáson is dolgozik, a fejlesztés során ajánlott olyan csomagokat használni, mint a Python-dotenv , hogy hozzáférjenek az alkalmazás könyvtárában tárolt fájl környezeti .env változóihoz. Ez a megközelítés a környezeti változók hatókörébe tartozik, így csak ez az alkalmazás használhatja őket.

A .env fájl soha nem kerül be a forrásvezérlőbe, mivel tartalmazza a Azure alkalmazás titkos kulcsát. A standard .gitignore Python fájl automatikusan kizárja a .env fájlt a bejelentkezésből.

A python-dotenv csomag használatához először telepítse a csomagot az alkalmazásban:

pip install python-dotenv

Ezután hozzon létre egy .env fájlt az alkalmazás gyökérkönyvtárában. Állítsa be a környezeti változó értékeit az alkalmazásregisztrációs folyamatból kapott értékekkel:

AZURE_CLIENT_ID=<your-client-id>
AZURE_TENANT_ID=<your-tenant-id>
AZURE_CLIENT_SECRET=<your-client-secret>

Végül az alkalmazás indítási kódjában a python-dotenv könyvtár használatával olvassa be a környezeti változókat a .env fájlból indításkor.

from dotenv import load_dotenv

load_dotenv()

Hitelesítés Azure szolgáltatásokhoz az alkalmazásból

A azure-identity kódtár különböző hitelesítő adatokat – a különböző forgatókönyvek és Microsoft Entra hitelesítési folyamatok támogatásához igazított TokenCredential implementációit biztosítja. Az alábbi lépések bemutatják, hogyan használható a ClientSecretCredential a szolgáltatás-alapelvek helyben és termelési környezetben történő használata során.

A kód implementálása

Először adja hozzá a csomagot az alkalmazáshoz.

pip install azure-identity

Ezután minden olyan Python kód esetében, amely létrehoz egy Azure SDK ügyfélobjektumot az alkalmazásban, a következőket kell tenni:

  1. Importálja az osztályt ClientSecretCredential a azure.identity modulból.
  2. Importálja a modult a os környezeti változók olvasásához.
  3. Olvassa el a környezeti változókat az ügyfélazonosító, a bérlőazonosító és az ügyfél titkos kódjának lekéréséhez.
  4. Hozzon létre egy ClientSecretCredential objektumot, amely megfelel a bérlőazonosítónak, az ügyfélazonosítónak és az ügyfél titkos kódjának.
  5. Adja át a ClientSecretCredential objektumot a Azure SDK ügyfélobjektum-konstruktornak.

Erre a megközelítésre az alábbi kódszegmensben mutatunk be példát.

import os
from azure.identity import ClientSecretCredential
from azure.storage.blob import BlobServiceClient

tenant_id = os.environ.get("AZURE_TENANT_ID")
client_id = os.environ.get("AZURE_CLIENT_ID")
client_secret = os.environ.get("AZURE_CLIENT_SECRET")

credential = ClientSecretCredential(tenant_id, client_id, client_secret)

blob_service_client = BlobServiceClient(
    account_url="https://<my_account_name>.blob.core.windows.net",
    credential=credential)