Azure-szolgáltatásnév használata tanúsítványalapú hitelesítéssel
A szolgáltatásnév létrehozása során Ön választhatja ki, hogy az milyen típusú bejelentkezési hitelesítést használjon. Az Azure-szolgáltatásnevekhez kétféle hitelesítés érhető el: jelszóalapú hitelesítés és tanúsítványalapú hitelesítés.
Javasoljuk, hogy a jelszóalapú hitelesítés biztonsági korlátozásai miatt tanúsítványalapú hitelesítést használjon. A tanúsítványalapú hitelesítés lehetővé teszi az adathalászatnak ellenálló hitelesítés bevezetését feltételes hozzáférési szabályzatok használatával, amelyek jobban védik az Azure-erőforrásokat. Ha többet szeretne megtudni arról, hogy miért biztonságosabb a tanúsítványalapú hitelesítés, olvassa el a Microsoft Entra tanúsítványalapú hitelesítését.
Az oktatóanyag ezen lépése bemutatja, hogyan használhat egyszerű szolgáltatásnév-tanúsítványt egy Azure-erőforrás eléréséhez.
Új tanúsítványt tartalmazó szolgáltatásnév létrehozása
Ha önaláírt tanúsítványt szeretne létrehozni a hitelesítéshez, használja a következő paramétert--create-cert
:
az ad sp create-for-rbac --name myServicePrincipalName \
--role roleName \
--scopes /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName \
--create-cert
Konzol kimenete:
{
"appId": "myServicePrincipalID",
"displayName": "myServicePrincipalName",
"fileWithCertAndPrivateKey": "certFilePath\certFileName.pem",
"password": null,
"tenant": "myOrganizationTenantID"
}
Ha nem tárolja a tanúsítványt a Key Vaultban, a kimenet tartalmazza a fileWithCertAndPrivateKey
kulcsot. A kulcs értéke jelzi, hogy hol tárolja a létrehozott tanúsítványt. Másolja a tanúsítványt biztonságos helyre. Ha elveszíti a tanúsítvány titkos kulcsához való hozzáférést, állítsa alaphelyzetbe a szolgáltatásnév hitelesítő adatait.
A PEM-fájlok tartalma szövegszerkesztővel tekinthető meg. Íme egy PEM-fájl példa:
Szolgáltatásnév létrehozása meglévő tanúsítvány használatával
Hozzon létre egy szolgáltatásnevet egy meglévő tanúsítvánnyal a --cert
paraméter használatával. A szolgáltatásnevet használó eszközöknek hozzáféréssel kell rendelkezniük a tanúsítvány titkos kulcsához. A tanúsítványoknak ASCII formátumban kell lenniük, például PEM, CER vagy DER formátumban. Adja át a certi897ficate értéket sztringként , vagy használja a @path
formátumot a tanúsítvány fájlból való betöltéséhez.
PEM-fájl használata esetén a TANÚSÍTVÁNYt hozzá kell fűzni a fájl titkos kulcsához.
# create a service principal with the certificate as a string
az ad sp create-for-rbac --name myServicePrincipalName \
--role roleName \
--scopes /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName \
--cert "-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----"
# create a service principal with the certificate file location
az ad sp create-for-rbac --name myServicePrincipalName \
--role roleName \
--scopes /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName \
--cert @/path/to/cert.pem
Az Azure Key Vault használata
A --keyvault
paraméter hozzáadható tanúsítványok létrehozásához vagy lekéréséhez az Azure Key Vaultban. A paraméter használatakor --keyvault
a --cert
paraméterre is szükség van. Ebben a példában az --cert
érték a tanúsítvány neve.
# Create a service principal storing the certificate in Azure Key Vault
az ad sp create-for-rbac --name myServicePrincipalName \
--role roleName \
--scopes /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName \
--create-cert \
--cert myCertificateName \
--keyvault myVaultName
# Create a service principal using an existing certificate in Azure Key Vault
az ad sp create-for-rbac --name myServicePrincipalName \
--role roleName \
--scopes /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName \
--cert myCertificateName \
--keyvault myVaultName
Tanúsítvány lekérése az Azure Key Vaultból
Az Azure Key Vaultban tárolt tanúsítványhoz kérje le a tanúsítványt a titkos kulcsával az az keyvault titkos kódkijellel , és konvertálja PEM-fájllá. Az Azure Key Vaultban a tanúsítvány titkos kódjának neve megegyezik a tanúsítvány nevével.
az keyvault secret download --file /path/to/cert.pfx \
--vault-name VaultName \
--name CertName \
--encoding base64
openssl pkcs12 -in cert.pfx -passin pass: -passout pass: -out cert.pem -nodes
az login --service-principal -u "<myAppClientID>" -p cert.pem --tenant "<myTenantID>"
Meglévő PKCS12-fájl konvertálása
Ha már rendelkezik PKCS#12 fájllal, az OpenSSL használatával PEM formátumba konvertálhatja. Ha van jelszava, módosítsa az argumentumot passin
.
openssl pkcs12 -in fileName.p12 -clcerts -nodes -out fileName.pem -passin pass: -passout pass:
Tanúsítvány hozzáfűzése szolgáltatásnévhez
Az az ad --append
sp hitelesítőadat-visszaállítás paraméterével hozzáfűzhet egy tanúsítványt egy meglévő szolgáltatásnévhez.
Ez a parancs alapértelmezés szerint törli az összes jelszót és kulcsot, ezért körültekintően használja.
az ad sp credential reset --id myServicePrincipalID \
--append \
--cert @/path/to/cert.pem
Konzol kimenete:
Certificate expires yyyy-mm-dd hh:mm:ss+00:00. Adjusting key credential end date to match.
The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
{
"appId": "myServicePrincipalID",
"password": null,
"tenant": "myOrganizationTenantID"
}
Bejelentkezés szolgáltatásnévvel tanúsítvány használatával
Ha tanúsítványsal szeretne bejelentkezni, a tanúsítványnak helyileg elérhetőnek kell lennie PEM vagy DER fájlként ASCII formátumban. A PKCS#12 fájlok (.p12/.pfx) nem működnek. PEM-fájl használatakor a TITKOS KULCSOT és a TANÚSÍTVÁNYt össze kell fűzni a fájlon belül. Az elérési utat nem kell előtaggal előtagolnia, @
mint más az parancsokkal.
az login --service-principal \
--username myServicePrincipalID \
--tenant myOwnerOrganizationId \
--password /path/to/cert
Következő lépések
Most, hogy megtanulta, hogyan használhatja a szolgáltatásnevek használatát tanúsítvány használatával, folytassa a következő lépéssel, és ismerje meg, hogyan kérhető le egy meglévő szolgáltatásnév.