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.
Felhőalkalmazások fejlesztésekor a fejlesztők általában helyileg építik fel, tesztelik és hibakeresésre használják a kódjukat, mielőtt üzembe helyezték volna az Azure-ban. Az alkalmazásnak azonban még a helyi fejlesztés során is hitelesítenie kell magát minden olyan Azure-szolgáltatással, amellyel kommunikál, például a Key Vaulttal, a Storage-ral vagy az adatbázisokkal.
Ez a cikk bemutatja, hogyan konfigurálhatja az alkalmazást úgy, hogy a fejlesztő Azure-beli hitelesítő adatait használja hitelesítésre a helyi fejlesztés során. Ez a megközelítés zökkenőmentes és biztonságos fejlesztési élményt tesz lehetővé titkos kódok beágyazása vagy környezetspecifikus logika írása nélkül.
A fejlesztői fiókok használatával végzett helyi fejlesztési hitelesítés áttekintése
A PythonHoz készült Azure Identity-kódtárat használó alkalmazások fejlesztésekor a helyi fejlesztés során hitelesítheti magát az Azure-szolgáltatásokban a fejlesztő Azure-fiókjával. Ez a módszer gyakran a legegyszerűbb módszer az Azure-szolgáltatások hitelesítésére a helyi fejlesztés során, mivel nem igényel szolgáltatásnevek vagy titkos kódok létrehozását és kezelését.
Ahhoz, hogy egy alkalmazás a fejlesztő saját Azure-hitelesítő adataival hitelesítse magát az Azure-ban a helyi fejlesztés során, először be kell jelentkeznie a támogatott parancssori eszközök egyikével:
- Azure CLI (
az login) - Azure Developer CLI (
azd login) - Azure PowerShell (
Connect-AzAccount)
Bejelentkezés után a Python Azure Identity-kódtára automatikusan észleli az aktív munkamenetet, és lekéri a szükséges jogkivonatokat a hitelesítő adatok gyorsítótárából. Ez a funkció lehetővé teszi, hogy az alkalmazás bejelentkezett felhasználóként hitelesítse magát az Azure-szolgáltatásokban anélkül, hogy további konfigurációt vagy kódolt titkos kódokat kellene megkövetelnie.
Ez a viselkedés engedélyezve van, amikor a DefaultAzureCredential használatára kerül sor, amely a helyi környezetekben átlátható módon visszatér a CLI-alapú hitelesítő adatokhoz.
A helyi fejlesztés legegyszerűbb beállítása egy fejlesztő bejelentkezett Azure-beli hitelesítő adatainak használata. Az egyes csapattagok meglévő Azure-fiókját használja, így további konfiguráció nélkül zökkenőmentes hozzáférést biztosít az Azure-szolgáltatásokhoz.
A fejlesztői fiókok azonban általában szélesebb engedélyekkel rendelkeznek, mint amennyi az alkalmazásnak éles környezetben kellene lennie. Ezek a szélesebb körű engedélyek inkonzisztenciákat okozhatnak a tesztelés során, vagy véletlenül lehetővé tehetik azokat a műveleteket, amelyeket az alkalmazás nem lenne jogosult éles környezetben végrehajtani. Az éles engedélyek pontos tükrözése és a biztonsági helyzet javítása érdekében célszerű alkalmazásspecifikus szolgáltatás-azonosítókat létrehozni a helyi fejlesztéshez. Ezek az identitások:
- Csak az alkalmazáshoz szükséges szerepkörök és engedélyek rendelhetők hozzá
- A minimális jogosultság támogatási elve
- A hozzáféréssel kapcsolatos viselkedés konzisztens tesztelésének biztosítása a környezetekben
A fejlesztők konfigurálhatják a helyi környezetet úgy, hogy környezeti változókon keresztül használják a szolgáltatásnevet, és DefaultAzureCredential automatikusan felveszik. További információ: Python-alkalmazások hitelesítése az Azure-szolgáltatásokban a helyi fejlesztés során szolgáltatásnevek használatával.
1 – Microsoft Entra biztonsági csoport létrehozása helyi fejlesztéshez
A legtöbb fejlesztési forgatókönyvben több fejlesztő is hozzájárul ugyanahhoz az alkalmazáshoz. A hozzáférés-vezérlés egyszerűsítése és a csapat egységes engedélyeinek biztosítása érdekében javasoljuk, hogy először hozzon létre egy Microsoft Entra biztonsági csoportot, amely kifejezetten az alkalmazás helyi fejlesztési igényeihez igazodik.
Az Azure-szerepkörök csoportszinten való hozzárendelése – és nem az egyes felhasználók számára – számos fő előnyt kínál:
Konzisztens szerepkör-hozzárendelések
A csoport összes fejlesztője automatikusan örökli ugyanazokat a szerepköröket és engedélyeket, biztosítva az egységes fejlesztési környezetet.
Egyszerűsített szerepkör-kezelés
Ha az alkalmazásnak új szerepkörre van szüksége, csak egyszer kell hozzáadnia a csoporthoz. Nem kell frissítenie az egyes felhasználói engedélyeket.
Egyszerű előkészítés
Az új fejlesztők egyszerűen megkaphatják a szükséges engedélyeket, ha hozzáadják őket a csoporthoz. Nincs szükség manuális szerepkör-hozzárendelésekre.
Ha szervezete már rendelkezik megfelelő Microsoft Entra biztonsági csoporttal a fejlesztői csapat számára, újra felhasználhatja azt. Ellenkező esetben létrehozhat egy új csoportot kifejezetten az alkalmazáshoz.
Ha biztonsági csoportot szeretne létrehozni a Microsoft Entra-azonosítóban, használja az az ad group createe Azure CLI parancsot.
Ehhez a parancshoz a következő paraméterek szükségesek:
--display-name: A csoport felhasználóbarát neve
--mail-nickname: E-mailhez és belső hivatkozáshoz használt egyedi azonosító
Javasoljuk, hogy a csoport nevét az alkalmazás nevére alapozza, és adjon meg egy utótagot, amely -local-dev egyértelműen jelzi a célját.
#!/bin/bash
az ad group create \
--display-name MyDisplay \
--mail-nickname MyDisplay \
--description "<group-description>"
# PowerShell syntax
az ad group create `
--display-name MyDisplay `
--mail-nickname MyDisplay `
--description "<group-description>"
A parancs futtatása az ad group create után másolja ki a id tulajdonság értékét a parancs kimenetéből. A szerepkörök hozzárendeléséhez szüksége lesz a Object ID Microsoft Entra biztonsági csoportra a jelen cikk későbbi lépéseiben. Egy későbbi lekéréshez használja az alábbi parancsot Object ID: .
Ha hozzá szeretne adni egy felhasználót a csoporthoz, először be kell szereznie a Object ID hozzáadni kívánt Azure-felhasználói fiókot. Az az ad user list paranccsal a --filter paraméterrel megjelenítendő név alapján kereshet egy adott felhasználót. A --query paraméter segít a kimenet megfelelő mezőkre való korlátozásában:
#!/bin/bash
az ad user list \
--filter "startswith(displayName, 'Bob')" \
--query "[].{objectId:id, displayName:displayName}" \
--output table
# PowerShell syntax
az ad user list `
--filter "startswith(displayName, 'Bob')" `
--query "[].{objectId:id, displayName:displayName}" `
--output table
Miután megkapta a Object ID felhasználó adatait, hozzáadhatja őket a csoporthoz az az ad group member add paranccsal.
#!/bin/bash
az ad group member add \
--group <group-name> \
--member-id <object-id>
# PowerShell syntax
az ad group member add `
--group <group-name> `
--member-id <object-id>
Feljegyzés
Alapértelmezés szerint a Microsoft Entra biztonsági csoportok létrehozása a címtárban lévő bizonyos kiemelt szerepkörökre korlátozódik. Ha nem tud csoportot létrehozni, forduljon a címtár rendszergazdájához. Ha nem tud tagokat felvenni egy meglévő csoportba, forduljon a csoport tulajdonosához vagy egy címtáradminisztrátorhoz. További információ: Microsoft Entra-csoportok és csoporttagság kezelése.
2 – Szerepkörök hozzárendelése a Microsoft Entra-csoporthoz
A Microsoft Entra biztonsági csoport létrehozása és tagok hozzáadása után a következő lépés annak meghatározása, hogy az alkalmazás milyen szerepköröket (engedélyeket) igényel, és ezeket a szerepköröket a megfelelő hatókörben rendelje hozzá a csoporthoz.
Kötelező szerepkörök meghatározása
Azonosítsa az alkalmazás működéséhez szükséges szerepköröket. Néhány általános példa:
- Key Vault titkos kulcsfelhasználó – titkos kulcsok olvasása az Azure Key Vaultból
- Storage Queue Data Contributor – üzenetek küldése az Azure Queue Storage-ba
További lehetőségekért tekintse meg a beépített szerepkördefiníciókat.
Hatókör kiválasztása a szerepkör-hozzárendeléshez
A szerepkörök különböző hatókörökben rendelhetők hozzá:
- Erőforrásszintű (például egyetlen Key Vault- vagy Storage-fiók)
- Erőforráscsoport-szint (a legtöbb alkalmazáshoz ajánlott)
- Előfizetési szint (körültekintő használat – legszélesebb körű hozzáférés)
Ebben a példában szerepköröket rendelünk az erőforráscsoport hatóköréhez, ami általában akkor jellemző, ha az összes alkalmazáserőforrás egy erőforráscsoport alá van csoportosítva.
Az Azure-ban egy felhasználó, csoport vagy alkalmazásszolgáltatási főszereplő szerepkörhöz van rendelve az az role assignment create paranccsal. Megadhat egy csoportot a Object ID megadásával.
#!/bin/bash
az role assignment create --assignee <objectId> \
--scope /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName> \
--role "<roleName>"
# PowerShell syntax
az role assignment create `
--assignee <objectId> `
--scope /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName> `
--role "<roleName>"
A hozzárendelhető szerepkörnevek lekéréséhez használja az az role definition list parancsot.
#!/bin/bash
az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table
# PowerShell syntax
az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table
Ha olvasási, írási és törlési hozzáférést szeretne biztosítani az Azure Storage blobtárolóihoz és adataihoz egy adott erőforráscsoport összes tárfiókjához, rendelje hozzá a Storage Blob Data Közreműködő szerepkört a Microsoft Entra biztonsági csoporthoz.
#!/bin/bash
az role assignment create --assignee bbbbbbbb-1111-2222-3333-cccccccccccc \
--scope /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-python-sdk-auth-example \
--role "Storage Blob Data Contributor"
# PowerShell syntax
az role assignment create --assignee bbbbbbbb-1111-2222-3333-cccccccccccc `
--scope /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-python-sdk-auth-example `
--role "Storage Blob Data Contributor"
Az engedélyek erőforrás- vagy előfizetési szinten az Azure CLI-vel való hozzárendeléséről az Azure CLI-vel történő Azure-szerepkörök hozzárendelése című cikk nyújt tájékoztatást.
3 – Bejelentkezés az Azure-ba az Azure CLI, az Azure PowerShell, az Azure Developer CLI vagy egy böngésző használatával
Az Azure-fiókkal való hitelesítéshez válasszon az alábbi módszerek közül:
Nyisson meg egy terminált a fejlesztői munkaállomáson, és jelentkezzen be az Azure-ba az Azure CLI-ből.
az login
4 – DefaultAzureCredential implementálása az alkalmazásban
Az Azure SDK-ügyfélobjektumok Azure-ral való hitelesítéséhez az alkalmazásnak a DefaultAzureCredential csomagból származó azure-identity osztályt kell használnia. Ez az ajánlott hitelesítési módszer mind a helyi fejlesztés, mind az éles telepítések esetében.
Egy helyi fejlesztési forgatókönyvben DefaultAzureCredential a rendelkezésre álló hitelesítési források egymás utáni ellenőrzésével működik. Konkrétan az alábbi eszközökben keresi az aktív munkameneteket:
- Azure CLI (az login)
- Azure PowerShell (Connect-AzAccount)
- Azure Developer CLI (azd auth login)
Ha a fejlesztő ezen eszközök bármelyikével jelentkezik be az Azure-ba, automatikusan észleli a munkamenetet, DefaultAzureCredential és ezekkel a hitelesítő adatokkal hitelesíti az alkalmazást az Azure-szolgáltatásokkal. Ez lehetővé teszi a fejlesztők számára a biztonságos hitelesítést titkos kódok tárolása vagy a különböző környezetek kódjának módosítása nélkül.
Először adja hozzá az azure.identity 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 elvégeznie:
- Importálja az osztályt
DefaultAzureCredentialaazure.identitymodulból. - Hozzon létre egy objektumot
DefaultAzureCredential. - Adja át az
DefaultAzureCredentialobjektumot az Azure SDK ügyfélobjektum-konstruktorának.
Ezekre a lépésekre az alábbi kódszakaszban látható példa.
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
# Acquire a credential object
token_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
account_url="https://<my_account_name>.blob.core.windows.net",
credential=token_credential)