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.
Ismerkedjen meg az Azure Key Vault tanúsítvány klienskönyvtárával Pythonhoz. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja az alapműveletek példakódját. Ha a Key Vaultot használja a tanúsítványok tárolására, elkerülheti a tanúsítványok tárolását a kódban, ami növeli az alkalmazás biztonságát.
API-referenciadokumentáció | Kódtár forráskód | Csomag (Python-csomagindex)
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- Python 3.7+
- Azure CLI
Ez a rövid útmutató feltételezi, hogy az Azure CLI-t vagy az Azure PowerShell-t egy Linux terminálablakban futtatja.
A helyi környezet beállítása
Ez a rövid útmutató az Azure Identity Library és az Azure CLI vagy az Azure PowerShell használatával hitelesíti a felhasználót az Azure-szolgáltatásokban. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik hívásaikat. További információ: Hitelesítse az ügyfélt az Azure Identity ügyfélkönyvtárával.
Bejelentkezés az Azure-ba
- Azure CLI
- Azure PowerShell
Futtassa a
login
parancsot.az login
Ha a parancssori felület meg tudja nyitni az alapértelmezett böngészőt, az meg fogja tenni, és betölt egy Azure-bejelentkezési lapot.
Ellenkező esetben nyisson meg egy böngészőlapot a https://aka.ms/devicelogin címen, és adja meg a terminálban megjelenő engedélyezési kódot.
A böngészőben jelentkezzen be fiókja hitelesítő adataival.
A csomagok telepítése
Egy terminálban vagy parancssorban hozzon létre egy megfelelő projektmappát, majd hozzon létre és aktiváljon egy Python virtuális környezetet a Python virtuális környezetek használata című cikkben leírtak szerint.
Telepítse a Microsoft Entra identitás-kezelő könyvtárat:
pip install azure.identity
Telepítse a Key Vault tanúsítványügyfél-kódtárát:
pip install azure-keyvault-certificates
Erőforráscsoport és kulcstár létrehozása
- Azure CLI
- Azure PowerShell
Használja a
az group create
parancsot egy erőforráscsoport létrehozásához:az group create --name myResourceGroup --location eastus
Az "eastus" értékét az Önhöz közelebbi helyre módosíthatja, ha szeretné.
Használja a
az keyvault create
kulcstár létrehozásához.az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroup
Cserélje le
<your-unique-keyvault-name>
egy olyan névre, amely egyedi az Azure-ban. A személyes vagy céges nevét általában más számokkal és azonosítókkal együtt használja.
A KEY_VAULT_NAME környezeti változó beállítása
A szkript a környezeti változóhoz KEY_VAULT_NAME
rendelt értéket a kulcstároló neveként fogja használni. Ezért ezt az értéket a következő paranccsal kell beállítania:
export KEY_VAULT_NAME=<your-unique-keyvault-name>
A hozzáférés biztosítása a kulcstárhoz
A kulcstartó engedélyeinek megszerzéséhez a "Szerepköralapú hozzáférés-vezérlés (RBAC)" segítségével adjon hozzá egy szerepkört a "Felhasználói főnév" (UPN) az Azure CLI parancs az role assignment create használatával.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Cserélje le a upn, subscription-id, resource-group-name és your-unique-keyvault-name helyőrzőket a saját tényleges értékeire. Az UPN általában egy e-mail-cím (pl. username@domain.com) formátumban lesz.
A mintakód létrehozása
A Pythonhoz készült Azure Key Vault-tanúsítvány ügyfélkódtára lehetővé teszi a tanúsítványok kezelését. Az alábbi kódminta bemutatja, hogyan hozhat létre ügyfelet, állíthat be tanúsítványt, lekérhet egy tanúsítványt, és törölheti a tanúsítványt.
Hozzon létre egy kv_certificates.py nevű fájlt, amely tartalmazza ezt a kódot.
import os
from azure.keyvault.certificates import CertificateClient, CertificatePolicy
from azure.identity import DefaultAzureCredential
keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = "https://" + keyVaultName + ".vault.azure.net"
credential = DefaultAzureCredential()
client = CertificateClient(vault_url=KVUri, credential=credential)
certificateName = input("Input a name for your certificate > ")
print(f"Creating a certificate in {keyVaultName} called '{certificateName}' ...")
policy = CertificatePolicy.get_default()
poller = client.begin_create_certificate(certificate_name=certificateName, policy=policy)
certificate = poller.result()
print(" done.")
print(f"Retrieving your certificate from {keyVaultName}.")
retrieved_certificate = client.get_certificate(certificateName)
print(f"Certificate with name '{retrieved_certificate.name}' was found'.")
print(f"Deleting your certificate from {keyVaultName} ...")
poller = client.begin_delete_certificate(certificateName)
deleted_certificate = poller.result()
print(" done.")
A kód futtatása
Győződjön meg arról, hogy az előző szakaszban szereplő kód egy kv_certificates.py nevű fájlban található. Ezután futtassa a kódot a következő paranccsal:
python kv_certificates.py
- Ha engedélyekkel kapcsolatos hibákba ütközik, győződjön meg arról, hogy futtatta a
az keyvault set-policy
vagySet-AzKeyVaultAccessPolicy
parancsot. - Ha ugyanazzal a kulcsnévvel újrafuttatja a kódot, a következő hibaüzenet jelenhet meg: "(Ütközés) A tanúsítvány <neve> jelenleg törölt, de helyreállítható állapotban van." Használjon másik kulcsnevet.
Kód részletei
Ügyfél hitelesítése és létrehozása
A legtöbb Azure-szolgáltatáshoz irányuló alkalmazáskéréseket engedélyezni kell. Az Azure Identity ügyfélkönyvtár által biztosított DefaultAzureCredential osztály használata ajánlott a jelszó nélküli kapcsolatok implementálásához az Azure szolgáltatásokhoz a kódban. DefaultAzureCredential
több hitelesítési módszert támogat, és meghatározza, hogy melyik metódust kell használni futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (helyi és éles környezetben) környezetspecifikus kód implementálása nélkül.
Ebben a gyorsindítási útmutatóban DefaultAzureCredential
az Azure CLI-be bejelentkezett helyi fejlesztő felhasználó hitelesítő adatait használva hitelesíti a Key Vaultot. Az alkalmazás Azure-ban való üzembe helyezésekor ugyanaz a DefaultAzureCredential kód automatikusan felderítheti és használhatja az App Service-hez, a virtuális géphez vagy más szolgáltatáshoz hozzárendelt felügyelt identitást. További információért tekintse meg a Felügyelt identitás áttekintése című dokumentumot.
A példakódban kulcstárának neve az URI formátumú kulcstár nevévé bővül ki, így: https://\<your-key-vault-name>.vault.azure.net
.
credential = DefaultAzureCredential()
client = CertificateClient(vault_url=KVUri, credential=credential)
Tanúsítvány mentése
Miután beszerezte a kulcstár ügyfélobjektumát, létrehozhat egy tanúsítványt a begin_create_certificate metódussal.
policy = CertificatePolicy.get_default()
poller = client.begin_create_certificate(certificate_name=certificateName, policy=policy)
certificate = poller.result()
Itt a tanúsítványhoz szükséges egy irányelv, amelyet a CertificatePolicy.get_default metódus segítségével lehet beszerezni.
Az metódus meghívása aszinkron hívást kezdeményez az Azure REST API felé a kulcstartóra. Az aszinkron hívás egy poller objektumot ad vissza. A művelet eredményére való várakozáshoz hívja meg a poller result
metódusát.
Amikor az Azure kezeli a kérést, hitelesíti a hívó identitását (a szolgáltatásnevet) az ügyfélnek megadott hitelesítő objektummal.
Tanúsítvány lekérése
A Key Vaultból származó tanúsítvány olvasásához a get_certificate metódust használja:
retrieved_certificate = client.get_certificate(certificateName)
Azt is ellenőrizheti, hogy a tanúsítvány be van-e állítva az Azure CLI-paranccsal az keyvault certificate show vagy az Azure PowerShell-parancsmaggal Get-AzKeyVaultCertificate
Tanúsítvány törlése
Tanúsítvány törléséhez használja a begin_delete_certificate metódust.
poller = client.begin_delete_certificate(certificateName)
deleted_certificate = poller.result()
A begin_delete_certificate
metódus aszinkron, és egy poller objektumot ad vissza. A poller result
metódusának meghívása megvárja a befejezését.
A tanúsítvány törlését az az keyvault certificate show Azure CLI-paranccsal vagy a Get-AzKeyVaultCertificate Azure PowerShell-parancsmaggal ellenőrizheti.
A törlés után a tanúsítványok egy ideig törölt, de helyreállítható állapotban maradnak. Ha ismét futtatja a kódot, használjon másik tanúsítványnevet.
Az erőforrások rendbetétele
Ha titkokkal és kulcsokkal is kísérletezni szeretne, újra felhasználhatja a cikkben létrehozott Key Vaultot.
Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az alábbi paranccsal törölje az erőforráscsoportot és az összes benne foglalt erőforrást:
az group delete --resource-group myResourceGroup