Azure-beli szolgáltatásnév létrehozása az Azure PowerShell használatával

Az Azure-szolgáltatásokat használó automatizált eszközöknek mindig korlátozott hozzáférésűeknek kell lenniük. Ahelyett, hogy az alkalmazások teljes jogosultsággal rendelkező felhasználóként jelentkezzenek be, az Azure egyszerű szolgáltatásneveket biztosít.

Az Azure-beli szolgáltatásnevek olyan identitások, amelyekkel az alkalmazások, üzemeltetett szolgáltatások és automatizált eszközök hozzáférhetnek az Azure erőforrásaihoz. A hozzáférést a szolgáltatásnévhez rendelt szerepkörök korlátozzák, így Ön szabhatja meg, hogy mely erőforrások, mely szinten legyenek hozzáférhetők. Biztonsági okokból az automatizált eszközök esetében minden esetben ajánlott a szolgáltatásnevek használata a felhasználói identitással való bejelentkezés helyett.

A cikk bemutatja a szolgáltatásnevek létrehozásának, adatlekérésének és visszaállításának lépéseit az Azure PowerShellben.

Figyelemfelhívás

Amikor a New-AzADServicePrincipal paranccsal egy szolgáltatásnevet hoz létre, a kimenetben olyan hitelesítő adatok találhatóak, amelyeket meg kell védeni. Vagy felügyelt identitásokat is használhat – ebben az esetben nincs szükség hitelesítő adatokra.

Előfeltételek

Egyszerű szolgáltatás létrehozása

Hozzon létre egy szolgáltatásnevet a New-AzADServicePrincipal parancsmaggal. 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.

Fontos

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.

Feljegyzés

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ásnév 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, nem értékre van állítva, a következő Beépített Microsoft Entra-azonosító szerepkörök egyikének kell lennie (amelyek rendelkeznek a művelettel: microsoft.directory/applications/createAsOwner vagymicrosoft.directory/applications/create):

A Microsoft Entra ID felhasználói beállításaival kapcsolatos további információkért lásd: Az alkalmazások létrehozásának korlátozása.

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

Fontos

A jelszóalapú hitelesítéshez használt szolgáltatásnevek alapértelmezett szerepköre a Közreműködő. Ez a szerepkör teljes körű engedélyekkel rendelkezik az Azure-fiókba való olvasásra, illetve írásra. További információ a szerepkör-hozzárendelések kezelésével kapcsolatban: Szolgáltatásnév-szerepkörök kezelése.

Egyéb hitelesítési paraméter hiányában a rendszer jelszóalapú hitelesítést használ, és véletlenszerű jelszót hoz létre az Ön számára. Ez az ajánlott módszer, ha jelszóalapú hitelesítést szeretne használni.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

A visszaadott objektum tartalmazza a PasswordCredentials.SecretText létrehozott jelszót tartalmazó tulajdonságot. Győződjön meg róla, hogy a szolgáltatásnév hitelesítéséhez használt értéket biztonságos helyen tárolja. Ennek értéke nem fog megjelenni a konzol kimenetén. Ha elvesztette a jelszót, állítsa vissza a szolgáltatásnév hitelesítő adatait.

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

$sp.PasswordCredentials.SecretText

A New-AzADServicePrincipal által visszaadott objektum tartalmazza az Id és a DisplayName tagokat, amelyek közül bármelyik használható a szolgáltatásnévvel való bejelentkezéshez.

Fontos

A szolgáltatásnévvel való bejelentkezéshez szükség van a szolgáltatásnév létrehozásakor használt bérlőazonosítóra. A szolgáltatásnév létrehozása pillanatában aktív bérlő lekéréséhez futtassa a következő parancsot rögtön a szolgáltatásnév létrehozása után:

(Get-AzContext).Tenant.Id

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

Fontos

Tanúsítványalapú hitelesítést használó szolgáltatásnév létrehozásakor nincs alapértelmezett szerepkör hozzárendelve. További információ a szerepkör-hozzárendelések kezelésével kapcsolatban: Szolgáltatásnév-szerepkörök kezelése.

A tanúsítványalapú hitelesítést használó szolgáltatásnevek létrehozása a CertValue paraméterrel történik. E paraméter esetében a nyilvános tanúsítvány base64-kódolású ASCII sztringjére van szükség. Ez egy PEM-fájl vagy egy szöveges kódolású CRT- vagy CER-fájl lehet. A bináris kódolású nyilvános tanúsítványok nem támogatottak. Az alábbi utasítások végrehajtása során azt feltételezzük, hogy a tanúsítvány már rendelkezésre áll.

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

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

Fontos

A szolgáltatásnévvel való bejelentkezéshez szükség van a szolgáltatásnév létrehozásakor használt bérlőazonosítóra. A szolgáltatásnév létrehozása pillanatában aktív bérlő lekéréséhez futtassa a következő parancsot rögtön a szolgáltatásnév 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ásneveinek listája a Get-AzADServicePrincipal használatával kérhető le. Ez a parancs alapértelmezés szerint a bérlő összes szolgáltatásnevét visszaadja. Nagy szervezetek esetén az eredmények lekérése hosszabb időt vehet igénybe. Ehelyett javasoljuk, hogy használja valamelyik választható kiszolgálóoldali szűrőargumentumot:

  • A DisplayNameBeginsWith a megadott értékkel megegyező előtaggal rendelkező szolgáltatásneveket kéri le. A szolgáltatásnév megjelenített neve a DisplayName létrehozáskor megadott értéke.
  • A DisplayName a pontos egyezést mutató szolgáltatásneveket kéri le.

Szolgáltatásnév-szerepkörök kezelése

Az Azure PowerShell a következő parancsmagokat biztosítja a szerepkör-hozzárendelések kezeléséhez:

További információ a szerepköralapú hozzáférés-vezérlésről (RBAC) és a szerepkörökről: RBAC: Beépített szerepkörök.

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'

Fontos

A szerepkör-hozzárendelési parancsmagok esetében nincs szükség a szolgáltatásnév objektumazonosítójára. Ezek a hozzárendelt alkalmazásazonosítót használják, amelyet a rendszer a létrehozás során állít elő. A szolgáltatásnév alkalmazásazonosítójának lekéréséhez használja a Get-AzADServicePrincipal parancsmagot.

Feljegyzés

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ához. A szerepkörök kezeléséhez forduljon a Microsoft Entra rendszergazdájához.

A szerepkör hozzáadása nem korlátozza az előzetesen hozzárendelt engedélyeket. A szolgáltatásnév engedélyeinek korlátozása során a Közreműködő szerepkört el kell távolítani.

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

Get-AzRoleAssignment -ServicePrincipalName ServicePrincipalName

Bejelentkezés szolgáltatásnév használatával

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

Bejelentkezés szolgáltatásnévvel, jelszó használatá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éshez az Azure PowerShellnek egy helyi tanúsítványtárolóból kell információkat lekérnie a tanúsítvány ujjlenyomata alapján.

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 elfelejtette a szolgáltatásnévhez tartozó hitelesítő adatokat, a New-AzADSpCredential parancsmaggal adhat hozzá új hitelesítő adatokat, véletlenszerű jelszóval. Ez a parancsmag nem támogatja a felhasználó által megadott hitelesítő adatokat a jelszó alaphelyzetbe állításakor.

Fontos

Javasoljuk, hogy az új hitelesítő adatok hozzárendelése előtt törölje a meglévő hitelesítő adatokat, nehogy azokkal jelentkezzen be. Ehhez használja a Remove-AzADSpCredential parancsmagot:

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

Hibaelhárítás

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 rá szükség, az alábbi példa szerint eltávolíthatja.

Remove-AzAdServicePrincipal -DisplayName ServicePrincipalName

Ez a hiba akkor is jelentkezhet, ha korábban már létrehozott szolgáltatásnevet egy Azure Active Directory-alkalmazásban. Ha eltávolítja a szolgáltatásnevet, az alkalmazás továbbra is elérhető marad. Ez az alkalmazás segít elkerülni, hogy másik szolgáltatásnevet hozzon létre ugyanazon a néven.

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

Get-AzADApplication -DisplayName ServicePrincipalName

Ha létezik olyan azonos nevű alkalmazás, amelyre már nincs szükség, az alábbi példa szerint eltávolíthatja.

Remove-AzADApplication -DisplayName ServicePrincipalName

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