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.
Előző rész: Bevezetés és háttér
Ebben a példában a fő alkalmazásnak három különböző hitelesítési követelménye van:
Azure Key Vault
Az alkalmazásnak hitelesítenie kell Azure Key Vault egy külső szolgáltatás meghívásához szükséges biztonságosan tárolt API-kulcs lekéréséhez.
Harmadik féltől származó API
Miután az alkalmazás lekérte az API-kulcsot, a kulcsot használja a külső külső API-val való hitelesítéshez.
Azure Queue Storage
A kérés feldolgozása után az alkalmazásnak hitelesítenie kell magát az Azure Queue Storage-ral, hogy üzenetet küldjön az aszinkron vagy halasztott feldolgozáshoz.
Ezekhez a feladatokhoz az alkalmazásnak három hitelesítőadat-készletet kell kezelnie:
Két készlet Azure erőforrásokhoz (Key Vault és storage)
Egy készlet egy külső szolgáltatás (harmadik féltől származó API) számára
A fő hitelesítési kihívások
A biztonságos felhőalkalmazások létrehozásához körültekintően kell kezelni a hitelesítő adatokat, különösen akkor, ha több szolgáltatásról van szó. Ez a példaforgatókönyv számos kritikus kihívást jelent:
Körkörös függőség a Key Vaultnál
Az alkalmazás az Azure Key Vault használatával biztonságosan tárol titkos kulcsokat, például külső API-kulcsokat vagy Azure Storage-hitelesítő adatokat. A titkos kulcsok lekéréséhez azonban az alkalmazásnak először hitelesítenie kell magát a Key Vaulttal. Ez a helyzet körkörös problémát okoz: Az alkalmazásnak hitelesítő adatokra van szüksége a Key Vault eléréséhez, de ezeket a hitelesítő adatokat biztonságosan kell tárolnia. Biztonságos megoldás nélkül ez a probléma merevlemezes hitelesítő adatokhoz vagy nem biztonságos konfigurációkhoz vezethet a fejlesztési környezetekben.
Külső API-kulcsok biztonságos kezelése
Miután lekérte az API-kulcsot a Key Vaultból, az alkalmazásnak azt kell használnia egy külső szolgáltatás meghívásához. Kezelje ezt a kulcsot rendkívül körültekintően:
- Soha ne kódolja a forráskódban vagy konfigurációs fájlokban
- Soha ne jelentkezzen be stdout, stderr vagy alkalmazásnaplókba
- Csak a memóriában tárolja, és futásidőben, közvetlenül a használat előtt férjen hozzá
- A kérés befejezése után azonnal törölje.
Ezen eljárások elmulasztása növeli a hitelesítő adatok szivárgásának vagy jogosulatlan használatának kockázatát.
Az Azure Queue Storage hitelesítő adatainak védelme
Ha üzeneteket szeretne írni az Azure Queue Storage-ba, az alkalmazásnak általában kapcsolati sztringre vagy megosztott hozzáférési jogkivonatra van szüksége. Ezek a hitelesítő adatok:
- Biztonságos helyen kell tárolni, például a Key Vaultban
- Nem jelenhet meg naplókban, veremnyomokban vagy fejlesztői eszközökben
- Csak biztonságos futtatókörnyezeti mechanizmusokkal lehet hozzáférni
- Megfelelő RBAC-konfiguráció megkövetelése felügyelt identitás használata esetén
Környezet rugalmassága
Az alkalmazásnak megbízhatóan kell futnia mind a helyi fejlesztési, mind a felhőalapú éles környezetben ugyanazzal a kódbázissal és minimális feltételes logikával.
Ez a követelmény a következőt jelenti:
- Ne ágyazza be a környezetspecifikus titkos kulcsokat a kódba
- Ne kapcsolgassa kézzel a hitelesítő adatokat vagy a logikai ágakat
- Identitásalapú hitelesítés használata konzisztensen a környezetekben
Elsődlegesen Azure-ra épülő hitelesítés Microsoft Entra ID-val
Ahogy a felhőalkalmazások összetettebbé válnak, és több szolgáltatással integrálhatók, a biztonságos és egyszerűsített hitelesítés elengedhetetlenné válik. Azure egy Azure-első identitásmodellt kínál Microsoft Entra ID keresztül, amely egységes identitáskezelést és zökkenőmentes integrációt tesz lehetővé Azure szolgáltatásokkal a biztonságos, hitelesítő adatok nélküli hitelesítés érdekében.
A titkos kódok manuális kezelése vagy a hitelesítő adatok alkalmazáskódba való beágyazása helyett – ez a biztonsági kockázatokra hajlamos gyakorlat – Microsoft Entra ID lehetővé teszi az alkalmazások számára a biztonságos hitelesítést felügyelt identitások használatával.
A Microsoft Entra által felügyelt identitások fő előnyei a következők:
Nincsenek titkos kódok a kódban
Az alkalmazások már nem igényelnek rögzített kapcsolati sztringeket, ügyfélkulcsokat vagy kulcsokat.
Beépített identitás alkalmazásokhoz
Azure automatikusan hozzárendelhet egy felügyelt identitást az alkalmazáshoz, így további hitelesítő adatok nélkül is biztonságosan elérheti az olyan szolgáltatásokat, mint a Key Vault, a Storage és az SQL.
Környezeti konzisztencia
Ugyanez a kód- és identitásmodell a helyi fejlesztési és Azure üzemeltetett környezetekben is működik a Azure SDK
DefaultAzureCredentialhasználatával.
Környezetspecifikus identitásfolyamat
A Microsoft Entra ID-t hitelesítéshez használó alkalmazások egy rugalmas identitásmodell előnyeit élvezhetik, amely zökkenőmentesen működik az Azure-ban üzemeltetett és a helyi fejlesztési környezetekben is. A Azure SDK DefaultAzureCredential ezt a konzisztenciát úgy biztosítják, hogy a környezet alapján automatikusan kiválasztja a megfelelő identitásmetódust.
Azure-környezet
Amikor üzembe helyezi az alkalmazást a Azure:
- Az alkalmazás automatikusan kap egy felügyelt identitást.
- Azure a jogkivonatok kiállítását és a hitelesítő adatok életciklusát belsőleg kezeli, így nem kell titkos kulcsokat kezelnie.
- Az alkalmazás Role-Based Access Control (RBAC) vagy Key Vault hozzáférési szabályzatok használatával fér hozzá a szolgáltatásokhoz.
Helyi fejlesztőkörnyezet
A helyi fejlesztés során:
- A szolgáltatásnév az alkalmazás identitásaként szolgál.
- A fejlesztők a Azure CLI (
az login), környezeti változókkal vagy Visual Studio/VS Code-integrációkkal hitelesítik magukat. - Ugyanaz az alkalmazáskód módosítás nélkül fut – csak az identitásforrás módosul.
Mindkét környezetben az Azure SDK-k a DefaultAzureCredential használják, amely elrejti az identitás forrását, és automatikusan kiválasztja a megfelelő módszert.
Ajánlott eljárások a biztonságos fejlesztéshez
Bár a titkos kulcsokat környezeti változókként állíthatja be (például Azure-alkalmazás Beállításokon keresztül), ennek a megközelítésnek hátrányai vannak:
- A titkos kulcsokat manuálisan kell replikálnia helyi környezetekben.
- Fennáll annak a kockázata, hogy titkos kódok szivárognak be a forráskezelésbe.
- A környezetek megkülönböztetéséhez további logikára lehet szükség.
Ehelyett használja a következő megközelítést:
- A Key Vault használatával külső API-kulcsokat és más titkos kulcsokat tárolhat.
- Felügyelt identitás hozzárendelése az üzembe helyezett alkalmazáshoz.
- Használjon szolgáltatásnév a helyi fejlesztéshez, és adja meg neki ugyanazokat a hozzáférési jogosultságokat.
- A
DefaultAzureCredentialkódban használva absztrakt hitelesítési logikát használhat. - Kerülje a hitelesítő adatok tárolását vagy naplózását.
Hitelesítési folyamat a gyakorlatban
A hitelesítés működése a futtatókörnyezetben a következőképpen működik:
- A kód létrehoz egy
DefaultAzureCredentialpéldányt. - Ezzel a hitelesítő adattal példányosíthat egy klienst (például
SecretClient,QueueServiceClient). - Amikor az alkalmazás meghív egy metódust (például
get_secret()), az ügyfél a hitelesítő adatok használatával hitelesíti a kérést. - Az Azure ellenőrzi az identitást, és ellenőrzi, hogy rendelkezik-e a megfelelő szerepkörsel vagy szabályzattal a művelet végrehajtásához.
Ez a folyamat biztosítja, hogy az alkalmazás biztonságosan hozzáférhessen az Azure-szolgáltatásokhoz anélkül, hogy titkos kódokat vagy konfigurációs fájlokat ágyazhat be. Emellett zökkenőmentes váltást tesz lehetővé a helyi fejlesztés és a felhőbeli üzembe helyezés között a hitelesítési logika módosítása nélkül.