Azure szolgáltatási fiók létrehozása az Azure PowerShell segítségével

Az Azure szolgáltatásokat használó automatizált eszközöknek mindig korlátozott engedélyekkel kell rendelkezniük. Ahelyett, hogy az alkalmazások teljes jogú felhasználóként jelentkeznek be, az Azure szolgáltatás-felhasználókat kínál.

Az Azure szolgáltatásnévazonosító egy olyan identitás, amely alkalmazások, üzemeltetett szolgáltatások és automatizált eszközök számára készült az Azure erőforrások eléréséhez. Ezt a hozzáférést a szolgáltatásnévhez rendelt szerepkörök korlátozzák, így ön szabályozhatja, hogy mely erőforrások érhetők el, és mely szinten. Biztonsági okokból mindig ajánlott szolgáltatásfiókokat használni automatizált eszközökkel, ahelyett, hogy lehetővé tennénk számukra a felhasználói identitással való bejelentkezést.

Ez a cikk bemutatja a szolgáltatásfőnök Azure PowerShell-el való létrehozásának, információ lekérésének és alaphelyzetbe állításának lépéseit.

Caution

Amikor a New-AzADServicePrincipal paranccsal hoz létre szolgáltatásnevet, a kimenet olyan hitelesítő adatokat tartalmaz, amelyeket védenie kell. Alternatív megoldásként fontolja meg a felügyelt identitások használatát, hogy elkerülje a hitelesítő adatok használatát.

Előfeltételek

Szolgáltatási főszereplő létrehozása

Hozzon létre egy szolgáltatás-azonosítót a New-AzADServicePrincipal parancsmaggal. Szolgáltatásnév létrehozásakor kiválaszthatja az általa használt bejelentkezési hitelesítés típusát.

Important

Az Az PowerShell-modul 7.x-es verziójától kezdve a New-AzADServicePrincipal alapértelmezés szerint nem rendeli hozzá a Közreműködő szerepkört a szolgáltatásnévhez. Ha egy adott szerepkört szeretne hozzárendelni egy szolgáltatásnévhez, tekintse meg a szerepkör-hozzárendelés hozzáadásának lépéseit.

Note

Ha a fiókja nem rendelkezik szolgáltatásnév létrehozására vonatkozó engedéllyel, egy hibaüzenetet ad vissza, New-AzADServicePrincipal amely a következőt tartalmazza: "A művelet végrehajtásához nem megfelelő jogosultságok". Szolgáltatási főfelhasználó létrehozásához forduljon a Microsoft Entra rendszergazdájához.

Egy Microsoft Entra ID-címtárban, ahol a Felhasználók regisztrálhatnak alkalmazásokat beállítás Nem-re van állítva, a következő Microsoft Entra ID beépített szerepkörök egyikének tagja kell lennie (amelyek rendelkeznek a művelettel: microsoft.directory/applications/createAsOwner vagy microsoft.directory/applications/create):

A Microsoft Entra ID felhasználói beállításairól további információt a Ki korlátozható az alkalmazások létrehozásában című témakörben talál.

A szolgáltatásnevekhez kétféle hitelesítés érhető el: jelszóalapú hitelesítés és tanúsítványalapú hitelesítés.

Jelszóalapú hitelesítés

Important

A jelszóalapú hitelesítési szolgáltatási főszereplő alapértelmezett szerepköre a Közreműködő. Ez a szerepkör teljes engedéllyel rendelkezik egy Azure-fiók olvasásához és írásához. A szerepkör-hozzárendelések kezelésével kapcsolatos információkért lásd: Szolgáltatásnév-szerepkörök kezelése.

Más hitelesítési paraméterek nélkül a rendszer jelszóalapú hitelesítést használ, és véletlenszerű jelszót hoz létre Önnek. Ha jelszóalapú hitelesítést szeretne, ez a módszer ajánlott.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

A visszaadott objektum tartalmazza a PasswordCredentials.SecretText létrehozott jelszót tartalmazó tulajdonságot. Győződjön meg arról, hogy ezt az értéket biztonságos helyen tárolja a szolgáltatásnévvel való hitelesítéshez. Az értéke nem jelenik meg a konzol kimenetében. Ha elveszíti a jelszót, újraállítsa a szolgáltatásnév-modul hitelesítő adatait.

Az alábbi kód lehetővé teszi a titkos kód exportálását:

$sp.PasswordCredentials.SecretText

A visszaadott New-AzADServicePrincipal objektum tartalmazza a Id és DisplayName tagokat, amelyek bármelyike használható a szolgáltatás objektumazonosítójával való bejelentkezéshez.

Important

A szolgáltatási objektum használatával való bejelentkezéshez szükség van annak a bérlőazonosítónak a megadására, amely alatt a szolgáltatási objektum létrejött. Ha le szeretné kérdezni az aktív bérlőt a szolgáltatásfelelős létrehozásakor, futtassa a következő parancsot közvetlenül a szolgáltatásfelelős létrehozása után:

(Get-AzContext).Tenant.Id

Tanúsítványalapú hitelesítés

Important

Tanúsítványalapú hitelesítési szolgáltatásfő létrehozásakor nincs alapértelmezett szerepkör hozzárendelve. A szerepkör-hozzárendelések kezelésével kapcsolatos információkért lásd: Szolgáltatásnév-szerepkörök kezelése.

A tanúsítványalapú hitelesítést használó szolgáltatásnevek a CertValue paraméterrel jönnek létre. Ez a paraméter a nyilvános tanúsítvány alap64 kódolású ASCII-sztringét használja. Ezt egy PEM-fájl, vagy egy szövegkódolt CRT vagy CER jelöli. A nyilvános tanúsítvány bináris kódolása nem támogatott. Ezek az utasítások feltételezik, hogy már rendelkezik elérhető tanúsítvánnyal.

$cert = <public certificate as base64-encoded string>
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName -CertValue $cert

A visszaadott New-AzADServicePrincipal objektum tartalmazza a Id és DisplayName tulajdonságokat, amelyek bármelyike használható szolgáltatásnévvel való bejelentkezéshez. A szolgáltatásnévvel bejelentkező ügyfeleknek is hozzá kell férni a tanúsítvány titkos kulcsához.

Important

A szolgáltatási objektum használatával való bejelentkezéshez szükség van annak a bérlőazonosítónak a megadására, amely alatt a szolgáltatási objektum létrejött. Ha le szeretné kérdezni az aktív bérlőt a szolgáltatásfelelős létrehozásakor, futtassa a következő parancsot közvetlenül a szolgáltatásfelelős létrehozása után:

(Get-AzContext).Tenant.Id

Meglévő szolgáltatásnév lekérése

Az aktív bérlő szolgáltatási felelőseinek listája lekérhető a Get-AzADServicePrincipal használatával. Ez a parancs alapértelmezés szerint egy bérlő összes szolgáltatásnevét visszaadja. A nagy szervezetek esetében hosszú időt vehet igénybe az eredmények visszaadása. Ehelyett az opcionális kiszolgálóoldali szűrési argumentumok egyikének használata ajánlott:

  • DisplayNameBeginsWith a megadott értéknek megfelelő előtaggal rendelkező szolgáltatásnevek kérése. A szolgáltatási főkomponens megjelenítendő neve a létrehozás során beállított DisplayName érték.
  • DisplayName A szolgáltatásnév nevének pontos egyezését kéri.

Szolgáltatási főszerepkörök kezelése

Azure PowerShell a következő parancsmagokkal rendelkezik a szerepkör-hozzárendelések kezeléséhez:

A Role-Based Access Control (RBAC) és a szerepkörökről további információt a RBAC: Beépített szerepkörök című témakörben talál.

Az alábbi példa hozzáadja az Olvasó szerepkört, és eltávolítja a Közreműködő szerepkört:

New-AzRoleAssignment -ApplicationId <service principal application ID> -RoleDefinitionName 'Reader'
Remove-AzRoleAssignment -ObjectId <service principal object ID> -RoleDefinitionName 'Contributor'

Important

A szerepkör-hozzárendelési parancsmagok nem veszik át a szolgáltatásnév objektumazonosítóját. A társított alkalmazásazonosítót használják, amely a létrehozáskor jön létre. A szolgáltatás-főnév alkalmazásazonosítójának lekéréséhez használja a következőt: Get-AzADServicePrincipal.

Note

Ha a fiókja nem rendelkezik szerepkör hozzárendelésére vonatkozó engedéllyel, hibaüzenet jelenik meg, amely szerint a fiókja "nem rendelkezik engedéllyel a 'Microsoft.Authorization/roleAssignments/write' művelet végrehajtására". A szerepkörök kezeléséhez forduljon a Microsoft Entra rendszergazdájához.

A szerepkör hozzáadása nem korlátozza a korábban hozzárendelt engedélyeket. A szolgáltatásvezérlő engedélyeinek korlátozásakor a közreműködő szerepet el kell távolítani.

A módosítások a hozzárendelt szerepkörök felsorolásával ellenőrizhetők:

Get-AzRoleAssignment -ServicePrincipalName ServicePrincipalName

Bejelentkezés szolgáltatási főazonosítóval

Bejelentkezéssel tesztelheti az új szolgáltatásnév hitelesítő adatait és engedélyeit. Ha szolgáltatásnévvel szeretne bejelentkezni, szüksége van a hozzá tartozó applicationId értékre és a bérlőre, amely alatt a szolgáltatásnév létrejön.

Szolgáltatásnévvel való bejelentkezés jelszóval:

# Use the application ID as the username, and the secret as password
$credentials = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $credentials -Tenant <tenant ID>

A tanúsítványalapú hitelesítés megköveteli, hogy Azure PowerShell a tanúsítvány ujjlenyomata alapján adatokat kérjen le egy helyi tanúsítványtárolóból.

Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <Thumbprint> -ApplicationId <ApplicationId>

A PowerShell által elérhető hitelesítőadat-tárolóba történő tanúsítványimportálással kapcsolatos utasításokért tekintse meg a tanúsítványalapú hitelesítést ismertető cikket

Hitelesítő adatok visszaállítása

Ha elfelejti egy szolgáltatásnév hitelesítő adatait, a New-AzADSpCredential használatával adjon hozzá egy új hitelesítő adatot véletlenszerű jelszóval. Ez a parancsmag nem támogatja a felhasználó által megadott hitelesítő adatokat a jelszó alaphelyzetbe állításakor.

Important

Az új hitelesítő adatok hozzárendelése előtt érdemes lehet eltávolítani a meglévő hitelesítő adatokat, hogy megakadályozza a velük való bejelentkezést. Ehhez használja a Remove-AzADSpCredential parancsmagot:

Remove-AzADSpCredential -DisplayName ServicePrincipalName
$newCredential = New-AzADSpCredential -ServicePrincipalName ServicePrincipalName

Troubleshooting

Ha a következő hibaüzenetet kapja : "New-AzADServicePrincipal: Egy másik objektum, amelynek ugyanaz az értéke a tulajdonságazonosítóurisnak, már létezik", ellenőrizze, hogy az azonos nevű szolgáltatásnév még nem létezik-e.

Get-AzAdServicePrincipal -DisplayName ServicePrincipalName

Ha a meglévő szolgáltatásnévre már nincs szükség, az alábbi példával eltávolíthatja.

Remove-AzAdServicePrincipal -DisplayName ServicePrincipalName

Ez a hiba akkor is előfordulhat, ha korábban létrehozott egy szolgáltatásnevet egy Azure Active Directory-alkalmazáshoz. Ha eltávolítja a szolgáltatásnevet, az alkalmazás továbbra is elérhető. Ez az alkalmazás megakadályozza, hogy egy azonos nevű szolgáltatás-felelőst hozzon létre.

Az alábbi példával ellenőrizheti, hogy nem létezik-e azonos nevű Microsoft Entra alkalmazás:

Get-AzADApplication -DisplayName ServicePrincipalName

Ha egy azonos nevű alkalmazás létezik, és már nincs rá szükség, az alábbi példával eltávolítható.

Remove-AzADApplication -DisplayName ServicePrincipalName

Ellenkező esetben válasszon alternatív nevet a létrehozni kívánt új szolgáltatásnévnek.