Megosztás a következőn keresztül:


Azure-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 engedélyekkel kell rendelkezniü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-szolgáltatásnév egy olyan identitás, amely alkalmazásokkal, üzemeltetett szolgáltatásokkal és automatizált eszközökkel való használatra 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 a szolgáltatásnevek használata automatizált eszközökkel ahelyett, hogy lehetővé tenné számukra a felhasználói identitással való bejelentkezést.

Ez a cikk bemutatja a szolgáltatásnév Azure PowerShell-lel való létrehozásának, információké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 egyszerű szolgáltatást 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.

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.

Megjegyzé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á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á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ési szolgáltatásnév alapértelmezett szerepköre a Közreműködő. Ez a szerepkör teljes engedélyekkel 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, állítsa alaphelyzetbe 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 visszaadott New-AzADServicePrincipal objektum tartalmazza azokat és Id a DisplayName tagokat, amelyek bármelyike használható a szolgáltatásnévvel való bejelentkezéshez.

Fontos

A szolgáltatásnévvel való bejelentkezéshez a bérlőazonosítóra van szükség, amely alatt a szolgáltatásnév létre lett hozva. Ha le szeretné szerezni az aktív bérlőt a szolgáltatásnév létrehozásakor, futtassa a következő parancsot közvetlenül a szolgáltatásnév létrehozása után :

(Get-AzContext).Tenant.Id

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

Fontos

A tanúsítványalapú hitelesítési szolgáltatásnév 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 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 is hozzá kell férni a tanúsítvány titkos kulcsához.

Fontos

A szolgáltatásnévvel való bejelentkezéshez a bérlőazonosítóra van szükség, amely alatt a szolgáltatásnév létre lett hozva. Ha le szeretné szerezni az aktív bérlőt a szolgáltatásnév létrehozásakor, futtassa a következő parancsot közvetlenül 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 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ásnév 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

Az Azure PowerShell a következő parancsmagokkal kezeli a szerepkör-hozzárendeléseket:

A hozzáférés-vezérlés (RBAC) és a szerepkörök Role-Based további információkért lásd: 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 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ásnév alkalmazásazonosítójának lekéréséhez használja a következőt Get-AzADServicePrincipal: .

Megjegyzé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 a korábban hozzárendelt engedélyeket. A szolgáltatásnév engedélyeinek korlátozásakor a közreműködői szerepkört 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ásnévvel

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 applicationId hozzá társított értékre és a bérlőre, amely alatt 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 az Azure PowerShell lekérje az adatokat egy helyi tanúsítványtárolóból egy 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 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.

Fontos

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

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 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ásnevet 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.