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
- Ha az Azure PowerShell helyi használatát választja:
- Telepítse az Az PowerShell-modult.
- Csatlakozás az Azure-fiókjába az Csatlakozás-AzAccount parancsmag használatával.
- Ha az Azure Cloud Shell használata mellett dönt:
- További információkért tekintse meg az Azure Cloud Shell áttekintését.
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
):
- Alkalmazásfejlesztő
- Alkalmazás-rendszergazda
- Felhőalkalmazás-rendszergazda
- Globális rendszergazda
- Hibrid identitás Rendszergazda istrator
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 aDisplayName
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.