Rövid útmutató: Azure Key Vault tanúsítvány ügyfélkódtára Pythonhoz

Ismerkedés a Pythonhoz készült Azure Key Vault tanúsítvány ügyfélkódtárával. Kövesse az alábbi lépéseket a csomag telepítéséhez, és próbálja ki az alapműveletek példakódját. A tanúsítványok tárolására szolgáló Key Vault használatával elkerülheti a tanúsítványok kódban való tárolását, ami növeli az alkalmazás biztonságát.

API-referenciadokumentáció | Kódtár forráskódja | Csomag (Python-csomagindex)

Előfeltételek

Ez a rövid útmutató feltételezi, hogy az Azure CLI-t linuxos terminálablakban futtatja.

A helyi környezet beállítása

Ez a rövid útmutató az Azure Identity Library és az Azure CLI használatával hitelesíti a felhasználót az Azure Servicesben. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik a hívásaikat. További információt az Ügyfél hitelesítése az Azure Identity ügyfélkódtárával című témakörben talál.

Bejelentkezés az Azure-ba

  1. Futtassa a következő parancsot: login.

    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 oldalt.

    Ellenkező esetben nyisson meg egy böngészőlapot a címen https://aka.ms/devicelogin , és adja meg a terminálban megjelenő engedélyezési kódot.

  2. A böngészőben jelentkezzen be fiókja hitelesítő adataival.

A csomagok telepítése

  1. 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ű témakörben leírtak szerint.

  2. Telepítse az Azure Active Directory-identitástárat:

    pip install azure.identity
    
  3. Telepítse a Key Vault tanúsítványügyfél-kódtárat:

    pip install azure-keyvault-certificates
    

Erőforráscsoport és kulcstartó létrehozása

  1. az group create Az paranccsal hozzon létre egy erőforráscsoportot:

    az group create --name myResourceGroup --location eastus
    

    Ha szeretné, módosíthatja az "eastus" értékét az Önhöz közelebb eső helyre.

  2. A kulcstartó létrehozásához használja az keyvault create a következőt:

    az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroup
    

    Cserélje le a elemet <your-unique-keyvault-name> egy olyan névre, amely az összes Azure-ban egyedi. 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 fogja használni a kulcstartó neveként. Ezért ezt az értéket a következő paranccsal kell beállítania:

export KEY_VAULT_NAME=<your-unique-keyvault-name>

Hozzáférés biztosítása a kulcstartóhoz

Hozzáférési szabályzat létrehozása a kulcstartóhoz, amely tanúsítványengedélyt ad a felhasználói fióknak

az keyvault set-policy --name <your-unique-keyvault-name> --upn user@domain.com --certificate-permissions delete get list create

A mintakód létrehozása

A Pythonhoz készült Azure Key Vault tanúsítványügyfél-kó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, kérdezhet le egy tanúsítványt, és hogyan törölhet 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,CertificateContentType, WellKnownIssuerNames 
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élyhibákba ütközik, győződjön meg arról, hogy futtatta a az keyvault set-policy parancsot.
  • Ha újrafuttatja a kódot ugyanazzal a kulcsnévvel, 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

Ebben a rövid útmutatóban a bejelentkezett felhasználóval hitelesíthető a Key Vault, amely a helyi fejlesztés előnyben részesített módszere. Az Azure-ban üzembe helyezett alkalmazások esetében a felügyelt identitást App Service vagy virtuális géphez kell rendelni. További információt a Felügyelt identitás áttekintése című témakörben talál.

Az alábbi példában a kulcstartó neve ki van bontva a kulcstartó URI-jára a formátumban https://\<your-key-vault-name\>.vault.azure.net. Ebben a példában a "DefaultAzureCredential()" osztályt használjuk, amely lehetővé teszi ugyanazt a kódot különböző környezetekben, és különböző lehetőségeket kínál az identitás biztosítására. További információ: Alapértelmezett Azure Hitelesítő adatok hitelesítése.

credential = DefaultAzureCredential()
client = CertificateClient(vault_url=KVUri, credential=credential)

Tanúsítvány mentése

Miután beszerezte a kulcstartó ü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 egy , a CertificatePolicy.get_default metódussal beszerzett szabályzatra van szükség.

A begin_create_certificate metódus meghívása a kulcstartó Azure REST API-jának aszinkron hívását generálja. Az aszinkron hívás egy poller objektumot ad vissza. A művelet eredményére való várakozáshoz hívja meg a lekérdezés metódusát result .

A kérés kezelésekor az Azure hitelesíti a hívó identitását (a szolgáltatásnevet) az ügyfélnek megadott hitelesítőadat-objektummal.

Tanúsítvány lekérése

Ha Key Vault tanúsítványt szeretne olvasni, használja a get_certificate metódust:

retrieved_certificate = client.get_certificate(certificateName)

Azt is ellenőrizheti, hogy a tanúsítvány be van-e állítva az az keyvault certificate show Azure CLI-paranccsal.

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 metódusának meghívása result megvárja a befejezését.

A tanúsítvány törlését az az keyvault certificate show Azure CLI-paranccsal 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 újra futtatja a kódot, használjon másik tanúsítványnevet.

Az erőforrások eltávolítása

Ha titkos kódokkal és kulcsokkal is kísérletezni szeretne, újra felhasználhatja a cikkben létrehozott Key Vault.

Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az alábbi paranccsal törölje az erőforráscsoportot és annak összes tartalmazott erőforrását:

az group delete --resource-group myResourceGroup

Következő lépések