Útmutató: Integrált hitelesítés Python-alkalmazásokhoz azure-szolgáltatásokkal

Az Azure Key Vaulthoz használt Microsoft Entra ID robusztus és biztonságos módszert kínál az alkalmazások azure-szolgáltatásokban és külső platformokon való hitelesítéséhez, amelyekhez hozzáférési kulcsok vagy hitelesítő adatok szükségesek. Ez a kombináció szükségtelenné teszi a titkos kódok kódolását az alkalmazáskódban, ehelyett felügyelt identitásokra, szerepköralapú hozzáférés-vezérlésre (RBAC) és a Key Vaulton keresztüli központi titkos kulcskezelésre támaszkodik. Ez a megközelítés leegyszerűsíti az identitáskezelést, és javítja a felhőkörnyezetek biztonsági állapotát.

Ez az útmutató a GitHub-adattárban található gyakorlati példán keresztül vizsgálja meg ezeket a hitelesítési mechanizmusokat: github.com/Azure-Samples/python-integrated-authentication.

A minta bemutatja, hogy egy Python-alkalmazás hogyan képes:

  • Hitelesítés az Azure-ral a DefaultAzureCredential használatával

  • Az Azure Key Vault titkos kulcsainak elérése hitelesítő adatok tárolása nélkül

  • Biztonságos kommunikáció más Azure-szolgáltatásokkal, például az Azure Storage-ral, a Cosmos DB-vel és egyebekkel

Ez a cikk egy sorozat része, amely részletesen bemutatja, hogyan hitelesíthet Python-alkalmazásokat a Microsoft Entra ID, az Azure Key Vault és az Azure Queue Storage használatával az Azure Python SDK-kódtár azure-identity használatával.

1. rész: Háttér

Bár számos Azure szolgáltatás kizárólag szerepköralapú hozzáférés-vezérlésre (RBAC) támaszkodik, mások titkos kulcsokon vagy kulcsokon keresztüli hozzáférést igényelnek. Ilyen szolgáltatások például a Azure Storage, az adatbázisok, az Öntödei eszközök, a Key Vault és az Event Hubs.

Az ezekkel a szolgáltatásokkal kommunikáló felhőalkalmazások létrehozásakor a fejlesztők az Azure Portal, a parancssori felület vagy a PowerShell használatával hozhatnak létre és konfigurálhatnak szolgáltatásspecifikus hozzáférési kulcsokat. Ezek a kulcsok bizonyos hozzáférési szabályzatokhoz vannak kötve a jogosulatlan hozzáférés megakadályozása érdekében. Ehhez a modellhez azonban az alkalmazásnak explicit módon kell kezelnie a kulcsokat, és külön hitelesítenie kell az egyes szolgáltatásokkal, ami egy fárasztó és hibalehetőséget is rejtő folyamat.

A titkos kódok közvetlenül kódba való beágyazása vagy fejlesztői gépeken való tárolása a következő kockázatokkal jár:

  • Forrásvezérlő
  • Nem biztonságos helyi környezetek
  • Véletlenszerű naplófájlok vagy konfigurációexportok

Azure két kulcsfontosságú szolgáltatást kínál a biztonság javítása és a hitelesítés egyszerűsítése érdekében:

  • Azure Key Vault Az Azure Key Vault biztonságos, felhőalapú tárat biztosít a titkos kódokhoz, beleértve a hozzáférési kulcsokat, a kapcsolati sztringeket és a tanúsítványokat. Ha csak futtatókörnyezetben kér le titkos kulcsokat a Key Vaultból, az alkalmazások elkerülik a bizalmas adatok forráskódban vagy konfigurációs fájlokban való felfedését.

  • A Microsoft Entra által felügyelt identitásokkal az alkalmazás egyszer hitelesíthet a Microsoft Entra-azonosítóval. Innen hozzáférhet más Azure-szolgáltatásokhoz – beleértve a Key Vaultot is – anélkül, hogy közvetlenül kezelned kell a hitelesítő adatokat.

Ez a megközelítés a következő lehetőségeket nyújtja:

  • Hitelesítő adatok nélküli kód (nincs titkos kód a forráskövetésben)
  • Zökkenőmentes integráció az Azure-szolgáltatásokkal
  • Környezeti konzisztencia: ugyanaz a kód helyileg és a felhőben fut, minimális konfigurációval

Ez az útmutató bemutatja, hogyan használhatja együtt a Microsoft Entra által felügyelt identitást és a Key Vaultot ugyanabban az alkalmazásban. A Microsoft Entra ID és a Key Vault együttes használatával az alkalmazásnak soha nem kell önálló Azure-szolgáltatásokkal hitelesítenie magát, és könnyen és biztonságosan hozzáférhet a külső szolgáltatásokhoz szükséges kulcsokhoz.

Fontos

Ez a cikk a "kulcs" általános kifejezéssel hivatkozik az Azure Key Vaultban "titkos kulcsként" tárolt adatokra, például egy REST API hozzáférési kulcsára. Ezt a használatot nem szabad összekeverni a Key Vault titkosítási kulcsok kezelésével, amely a Key Vault titkos kulcsainak egy külön funkciója.

Példa felhőalkalmazás-forgatókönyvre

Az Azure hitelesítési folyamatának mélyebb megértéséhez fontolja meg a következő forgatókönyvet: A Flask-webalkalmazás üzembe helyezése az Azure App Service-ben történik. Nyilvános, hitelesítés nélküli API-végpontot tesz elérhetővé, amely JSON-adatokat ad vissza HTTP-kérelmekre válaszul.

  • A válasz létrehozásához az API meghív egy külső API-t, amely hozzáférési kulcsot igényel. A kulcs kód- vagy konfigurációs fájlokban való tárolása helyett az alkalmazás biztonságosan lekéri azt futtatókörnyezetben az Azure Key Vaultból a Microsoft Entra által felügyelt identitás használatával.

  • Mielőtt visszaküldené válaszát az ügyfélnek, az alkalmazás egy üzenetet ír egy Azure Storage-üzenetsorba aszinkron feldolgozás céljából. Az üzenet jelenthet egy feladatot, naplót vagy jelet, bár az alsóbb rétegbeli feldolgozás nem a jelen forgatókönyv középpontjában van.

Az alkalmazásforgatókönyv diagramja

Megjegyzés:

Bár a nyilvános API-végpontokat általában saját hozzáférési kulcsok vagy hitelesítési mechanizmusok védik, ez az útmutató feltételezi, hogy a végpont nyitott és hitelesítés nélküli.

Ez az egyszerűsítés segít elkülöníteni az alkalmazás belső hitelesítési követelményeit – például a Azure Key Vault és a Azure Storage elérését – a külső ügyfelekkel kapcsolatos hitelesítési problémáktól.

A forgatókönyv kizárólag az alkalmazás viselkedésére összpontosít, és nem mutatja be vagy nem von be külső hívót a végponttal való hitelesítéshez.