Megosztás a következőn keresztül:


Python-alkalmazások hitelesítése Az Azure-szolgáltatásokban a Pythonhoz készült Azure SDK használatával

Ha egy alkalmazásnak hozzá kell férnie egy Azure-erőforráshoz, például az Azure Storage-hoz, az Azure Key Vaulthoz vagy az Azure AI-szolgáltatásokhoz, az alkalmazást hitelesíteni kell az Azure-ban. Ez a követelmény minden alkalmazásra érvényes, legyen szó az Azure-ban történő üzembe helyezésről, a helyszíni üzembe helyezésről vagy a helyi fejlesztői munkaállomáson végzett fejlesztésről. Ez a cikk azokat a módszereket ismerteti, hogyan hitelesítheti az alkalmazásokat az Azure-ban a Pythonhoz készült Azure SDK használatakor.

Használjon jogkivonatalapú hitelesítést az alkalmazások kapcsolati sztring helyett, amikor az Azure-erőforrásokon való hitelesítést elvégzik. A PythonHoz készült Azure Identity ügyfélkódtár olyan osztályokat biztosít, amelyek támogatják a jogkivonatalapú hitelesítést, és lehetővé teszik az alkalmazások számára, hogy zökkenőmentesen hitelesítsék magukat az Azure-erőforrásokon, függetlenül attól, hogy az alkalmazás helyi fejlesztés alatt áll, üzembe helyezve az Azure-ban vagy egy helyszíni kiszolgálón van üzembe helyezve.

Az alkalmazás által az Azure-erőforrásokon való hitelesítéshez használt jogkivonatalapú hitelesítés konkrét típusa attól függ, hogy hol fut az alkalmazás. A jogkivonatalapú hitelesítés típusai az alábbi ábrán láthatók.

Diagram, amely egy alkalmazás ajánlott jogkivonatalapú hitelesítési stratégiáit mutatja be attól függően, hogy hol fut.

  • Ha egy fejlesztő a helyi fejlesztés során futtat egy alkalmazást: Az alkalmazás egy alkalmazásszolgáltatás-tag használatával hitelesíti az Azure-t a helyi fejlesztéshez, vagy a fejlesztő Azure-beli hitelesítő adataival. Ezeket a beállításokat a hitelesítés a helyi fejlesztés során című szakaszban tárgyaljuk.
  • Amikor egy alkalmazást az Azure-ban üzemeltetnek: Az alkalmazás felügyelt identitás használatával hitelesíti az Azure-erőforrásokat. Ezt a lehetőséget a kiszolgálói környezetek hitelesítése című szakasz ismerteti.
  • Amikor egy alkalmazást üzemeltetnek és üzembe helyeznek a helyszínen: Az alkalmazás egy alkalmazás-szolgáltatásnév használatával hitelesíti az Azure-erőforrásokat. Ezt a lehetőséget a kiszolgálói környezetek hitelesítése című szakasz ismerteti.

DefaultAzureCredential

Az Azure Identity ügyfélkódtár által biztosított DefaultAzureCredential osztály lehetővé teszi, hogy az alkalmazások a futtatásuk környezetétől függően különböző hitelesítési módszereket használjanak. Ily módon az alkalmazások előléptethetők a helyi fejlesztéstől a tesztelési környezeteken át az éles környezetekig kódmódosítások nélkül.

Konfigurálja a megfelelő hitelesítési módszert az egyes környezetekhez, és DefaultAzureCredential automatikusan észleli és használja ezt a hitelesítési módszert. A használatát DefaultAzureCredential előnyben részesíti a feltételes logika vagy a funkciójelzők manuális kódolása, hogy különböző hitelesítési módszereket használjon különböző környezetekben.

Az osztály használatáról a DefaultAzureCredential DefaultAzureCredential használata az alkalmazásban című szakaszban olvashat.

A jogkivonatalapú hitelesítés előnyei

Az Azure-hoz készült alkalmazások létrehozásakor használjon jogkivonatalapú hitelesítést kapcsolati sztring helyett. A jogkivonatalapú hitelesítés a következő előnyöket nyújtja a kapcsolati sztring hitelesítésével szemben:

  • A cikkben ismertetett jogkivonatalapú hitelesítési módszerek lehetővé teszik az alkalmazás által az Azure-erőforráson szükséges konkrét engedélyek létrehozását. Ez a gyakorlat a minimális jogosultság elvét követi. Ezzel szemben egy kapcsolati sztring teljes jogokat biztosít az Azure-erőforrás számára.
  • Bárki vagy bármely kapcsolati sztring rendelkező alkalmazás csatlakozhat egy Azure-erőforráshoz, de a jogkivonatalapú hitelesítési módszerek csak az erőforrás eléréséhez használni kívánt alkalmazásokhoz férnek hozzá.
  • Felügyelt identitás esetén nincs tárolandó alkalmazáskulcs. Az alkalmazás biztonságosabb, mert nincs kapcsolati sztring vagy alkalmazáskulcs, amely feltörhető.
  • Az azure-identity csomag microsoft Entra-jogkivonatokat szerez be és kezel Önnek. Ez megkönnyíti a jogkivonatalapú hitelesítés használatát kapcsolati sztring.

A kapcsolati sztring használatának korlátozása olyan kezdeti megvalósíthatósági igazolási alkalmazásokra vagy fejlesztési prototípusokra, amelyek nem férnek hozzá éles vagy bizalmas adatokhoz. Ellenkező esetben az Azure Identity-ügyfélkódtárban elérhető jogkivonatalapú hitelesítési osztályok mindig előnyben részesülnek, amikor az Azure-erőforrásokhoz való hitelesítést elvégzik.

Hitelesítés kiszolgálói környezetekben

Amikor kiszolgálókörnyezetben üzemel, minden alkalmazáshoz egyedi alkalmazásidentitás lesz hozzárendelve minden olyan környezetben, ahol az alkalmazás fut. Az Azure-ban az alkalmazásidentitást egy szolgáltatásnév képviseli. Ez a speciális biztonsági egyszerű típus azonosítja és hitelesíti az alkalmazásokat az Azure-ban. Az alkalmazáshoz használandó szolgáltatásnév típusa attól függ, hogy az alkalmazás hol fut:

Hitelesítési módszer Leírás
Az Azure-ban üzemeltetett alkalmazások Az Azure-ban üzemeltetett alkalmazásoknak felügyelt identitásszolgáltatásnevet kell használniuk. A felügyelt identitások az Azure-ban üzemeltetett alkalmazások identitásának megjelenítésére szolgálnak, és csak az Azure által üzemeltetett alkalmazásokkal használhatók.

A Azure-alkalmazás Szolgáltatásban üzemeltetett Django-webalkalmazáshoz például felügyelt identitás lesz hozzárendelve. Az alkalmazáshoz rendelt felügyelt identitás ezután az alkalmazás más Azure-szolgáltatásokban való hitelesítésére szolgál.

Az Azure Kubernetes Service-ben (AKS) futó alkalmazások számítási feladatok identitásának hitelesítő adatait használhatják. Ez a hitelesítő adat egy felügyelt identitáson alapul, amely megbízhatósági kapcsolatban áll egy AKS-szolgáltatásfiókkal.
,
Az Azure-on kívül üzemeltetett alkalmazások
(például helyszíni alkalmazások)
Az Azure-on kívül üzemeltetett alkalmazásoknak (például helyszíni alkalmazásoknak) az Azure-szolgáltatásokhoz való csatlakozáshoz egy alkalmazásszolgáltatás-egyszerű szolgáltatást kell használniuk. Az alkalmazás-szolgáltatásnév az alkalmazás identitását jelöli az Azure-ban, és az alkalmazásregisztrációs folyamaton keresztül jön létre.

Vegyük például egy helyszíni django-webalkalmazást, amely az Azure Blob Storage-t használja. Az alkalmazásregisztrációs folyamattal létrehozna egy alkalmazás-szolgáltatásnevet az alkalmazáshoz. A AZURE_CLIENT_ID, AZURE_TENANT_IDés AZURE_CLIENT_SECRET mind környezeti változókként lesz tárolva, amelyeket az alkalmazás futásidőben olvas be, és lehetővé teszi az alkalmazás számára az Azure-ban való hitelesítést az alkalmazás szolgáltatásnévvel.

Hitelesítés a helyi fejlesztés során

Ha egy alkalmazás a helyi fejlesztés során egy fejlesztő munkaállomásán fut, akkor is hitelesítenie kell az alkalmazás által használt Azure-szolgáltatásokban. Két fő stratégia létezik az alkalmazások Azure-ba történő hitelesítésére a helyi fejlesztés során:

Hitelesítési módszer Leírás
Hozzon létre dedikált alkalmazásszolgáltatás-egyszerű objektumokat, amelyeket a helyi fejlesztés során kell használni. Ebben a módszerben a dedikált alkalmazásszolgáltatás-egyszerű objektumok az alkalmazásregisztrációs folyamat használatával vannak beállítva a helyi fejlesztés során való használatra. A szolgáltatásnév identitása ezután környezeti változókként lesz tárolva, amelyeket az alkalmazás a helyi fejlesztésben való futtatáskor érhet el.

Ez a módszer lehetővé teszi az alkalmazás által igényelt erőforrás-engedélyek hozzárendelését a fejlesztők által a helyi fejlesztés során használt egyszerű szolgáltatásobjektumokhoz. Ez a gyakorlat biztosítja, hogy az alkalmazás csak azokhoz az erőforrásokhoz fér hozzá, amelyekre szüksége van, és replikálja azokat az engedélyeket, amelyeket az alkalmazás éles környezetben fog biztosítani.

Ennek a megközelítésnek a hátránya, hogy külön szolgáltatásnév-objektumokat kell létrehozni minden olyan fejlesztő számára, aki egy alkalmazáson dolgozik.

Hitelesítse az alkalmazást az Azure-ban a fejlesztő hitelesítő adataival a helyi fejlesztés során. Ebben a módszerben egy fejlesztőnek be kell jelentkeznie az Azure CLI-ből, az Azure PowerShellből vagy az Azure Developer CLI-ből az Azure-ba a helyi munkaállomáson. Az alkalmazás ezután hozzáférhet a fejlesztői hitelesítő adatokhoz a hitelesítőadat-tárolóból, és ezekkel a hitelesítő adatokkal elérheti az Azure-erőforrásokat az alkalmazásból.

Ez a módszer a könnyebb beállítás előnye, mivel a fejlesztőknek csak a fent említett fejlesztői eszközök egyikével kell bejelentkezniük az Azure-fiókjukba. Ennek a módszernek a hátránya, hogy a fejlesztő fiókja valószínűleg több engedéllyel rendelkezik, mint amennyit az alkalmazás igényel. Ennek eredményeképpen az alkalmazás nem replikálja pontosan az éles környezetben futtatott engedélyeket.

DefaultAzureCredential használata egy alkalmazásban

A DefaultAzureCredential a Microsoft Entra-azonosítóhoz való hitelesítéshez szükséges, véleményezett, rendezett mechanizmussorozat. Minden hitelesítési mechanizmus egy osztály, amely implementálja a TokenCredential protokollt, és hitelesítő adatként ismert. Futásidőben DefaultAzureCredential megkísérli a hitelesítést az első hitelesítő adatok használatával. Ha a hitelesítő adatok nem szereznek be hozzáférési jogkivonatot, a rendszer megkísérli a következő hitelesítő adatot a sorozatban, és így tovább, amíg egy hozzáférési jogkivonatot nem szerez be sikeresen. Ily módon az alkalmazás különböző hitelesítő adatokat használhat különböző környezetekben anélkül, hogy környezetspecifikus kódot ír.

Python-alkalmazásban való használathoz DefaultAzureCredential adja hozzá az azure-identity csomagot az alkalmazáshoz.

pip install azure-identity

Az Azure-szolgáltatások speciális ügyfélosztályokkal érhetők el a különböző Azure SDK-ügyfélkódtárakból. Az alábbi példakód bemutatja, hogyan lehet példányosítani egy DefaultAzureCredential objektumot, és hogyan használhatja azt egy Azure SDK-ügyfélosztálysal. Ebben az esetben BlobServiceClient az Azure Blob Storage eléréséhez használt objektum.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

# Acquire a credential object
credential = DefaultAzureCredential()

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

Amikor az előző kód a helyi fejlesztői munkaállomáson fut, az alkalmazásszolgáltatásnév környezeti változóiban vagy a helyileg telepített fejlesztői eszközökben, például az Azure CLI-ben keres egy fejlesztői hitelesítő adatokat. Bármelyik módszer használható az alkalmazás Azure-erőforrásokon való hitelesítésére a helyi fejlesztés során.

Az Azure-ban való üzembe helyezéskor ugyanez a kód hitelesítheti az alkalmazást az Azure-erőforrásokban is. DefaultAzureCredential lekérheti a környezeti beállításokat és a felügyelt identitáskonfigurációkat az Azure-szolgáltatások automatikus hitelesítéséhez.