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 történő fejlesztés alatt álló alkalmazásokró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.
Ajánlott alkalmazáshitelesítési módszer
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 SDK olyan osztályokat biztosít, amelyek támogatják a jogkivonatalapú hitelesítést. Az alkalmazások zökkenőmentesen hitelesíthetik az Azure-erőforrásokat, függetlenül attól, hogy az alkalmazás helyi fejlesztés alatt áll, üzembe van helyezve az Azure-ban vagy egy helyszíni kiszolgálón.
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.
- 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 SDK á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 SDK azure.identity csomagja a színfalak mögött kezeli a jogkivonatokat. A felügyelt jogkivonatok megkönnyítik 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 SDK-ban 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 egy fejlesztő munkaállomásán fut a helyi fejlesztés során, 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 Python-alkalmazásokban való használatához adja hozzá az azure.identity csomagot az alkalmazáshoz.
pip install azure-identity
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)
Az DefaultAzureCredential
objektum automatikusan észleli az alkalmazáshoz konfigurált hitelesítési mechanizmust, és beszerezi az alkalmazás Azure-ba történő hitelesítéséhez szükséges jogkivonatokat. Ha egy alkalmazás több SDK-ügyfelet használ, ugyanazt a hitelesítő objektumot használhatja minden egyes SDK-ügyfélobjektummal.
Hitelesítési módszerek sorrendje a DefaultAzureCredential használatakor
Belsőleg DefaultAzureCredential
hitelesítőadat-szolgáltatók láncát valósítja meg az alkalmazások Azure-erőforrásokhoz való hitelesítéséhez. Minden hitelesítőadat-szolgáltató képes észlelni, hogy az adott típusú hitelesítő adatok konfigurálva vannak-e az alkalmazáshoz. Az DefaultAzureCredential
objektum sorrendben ellenőrzi az egyes szolgáltatókat, és az első, hitelesítő adatokat konfigurált szolgáltatótól származó hitelesítő adatokat használja.
A hitelesítő adatok megadásának DefaultAzureCredential
sorrendje az alábbi ábrán és táblázatban látható:
Hitelesítő adatok típusa | Leírás |
---|---|
Környezet | Az DefaultAzureCredential objektum beolvassa a környezeti változók egy készletét annak megállapításához, hogy az alkalmazáshoz be van-e állítva egy alkalmazás-szolgáltatásnév (alkalmazásfelhasználó). Ha igen, DefaultAzureCredential ezeket az értékeket használva hitelesítheti az alkalmazást az Azure-ban.Ezt a módszert leggyakrabban kiszolgálókörnyezetekben használják, de helyi fejlesztéskor is használhatja. |
Számítási feladatok identitása | Az Azure Kubernetes Service-ben (AKS) a számítási feladatok identitása egy felügyelt identitás és egy Kubernetes-szolgáltatásfiók közötti megbízhatósági kapcsolatot jelöl. Ha az AKS-ben üzembe helyezett alkalmazás egy Kubernetes-szolgáltatásfiókkal van konfigurálva egy ilyen kapcsolatban, DefaultAzureCredential a felügyelt identitás használatával hitelesíti az alkalmazást az Azure-ban. A számítási feladatok identitásának használatával történő hitelesítésről a Használat Microsoft Entra Számítási feladat ID az Azure Kubernetes Service-ben van szó. |
Felügyelt identitás | Ha az alkalmazást olyan Azure-gazdagépen helyezi üzembe, amelyen engedélyezve van a felügyelt identitás, DefaultAzureCredential azzal hitelesíti az alkalmazást az Azure-ban a felügyelt identitás használatával. A felügyelt identitással történő hitelesítésről a kiszolgálói környezetekben történő hitelesítés című szakaszban olvashat.Ez a módszer csak akkor érhető el, ha egy alkalmazást az Azure-ban üzemeltet egy olyan szolgáltatás használatával, mint a Azure-alkalmazás Szolgáltatás, az Azure Functions vagy az Azure Virtual Machines. |
Azure CLI | Ha az Azure CLI-ben található paranccsal hitelesítette az az login Azure-t, DefaultAzureCredential ugyanazzal a fiókkal hitelesíti az alkalmazást az Azure-ban. |
Azure PowerShell | Ha az Azure-ban az Azure PowerShell parancsmagjának használatával hitelesítette az Connect-AzAccount Azure-t, DefaultAzureCredential azzal a fiókkal hitelesíti az alkalmazást az Azure-ban. |
Azure Developer CLI | Ha az Azure Developer CLI-ben található paranccsal hitelesítette az azd auth login Azure-t, DefaultAzureCredential azzal a fiókkal hitelesíti az alkalmazást az Azure-ban. |
Interaktív | Ha engedélyezve van, DefaultAzureCredential interaktívan hitelesíti Önt az aktuális rendszer alapértelmezett böngészőjén keresztül. Alapértelmezés szerint ez a beállítás le van tiltva. |
Feljegyzés
Egy ismert problémaVisualStudioCodeCredential
miatt a rendszer eltávolította a DefaultAzureCredential
jogkivonatláncból. Ha a probléma egy későbbi kiadásban lesz megoldva, a rendszer visszaállítja ezt a módosítást. További információt a Pythonhoz készült Azure Identity ügyfélkódtárában talál.
Kapcsolódó tartalom
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: