Delen via


Een service-principaltoepassing maken met PowerShell

Verificatie via gebruikersnaam en wachtwoord is vaak niet ideaal, zeker niet na de opkomst van meervoudige verificatie. In dergelijke gevallen heeft verificatie van de service-principal (of de stroom van clientreferenties) de voorkeur. Dit kunt u doen door zowel een nieuwe service principal-toepassing te registreren in uw eigen Microsoft Entra-tenant als vervolgens dezelfde toepassing te registreren bij Power Platform.

Een beheertoepassing voor beheerders registreren

Ten eerste moet de clienttoepassing worden geregistreerd in uw Microsoft Entra-tenant. Lees het artikel Authenticatie voor Power Platform-API's als u dit wilt instellen, omdat dezelfde toepassingsconfiguratie vereist is voor PowerShell.

Nadat uw clienttoepassing is geregistreerd in Microsoft Entra ID, moet deze ook worden geregistreerd bij Microsoft Power Platform. Tegenwoordig is er geen manier om dit te doen via het Power Platform-beheercentrum. Het moet programmatisch gebeuren via Power Platform-API of PowerShell voor Power Platform-beheerders. Een service-principal kan zichzelf niet registreren. Het is zo ontworpen dat de toepassing moet worden geregistreerd door een context gebruikersnaam en wachtwoord van een beheerder. Dit zorgt ervoor dat de toepassing wordt gemaakt door iemand die een beheerder is voor de tenant.

Gebruik het volgende script om een nieuwe beheertoepassing te registreren:

$appId = "CLIENT_ID_FROM_AZURE_APP"

# Login interactively with a tenant administrator for Power Platform
Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId 

# Register a new application, this gives the SPN / client application same permissions as a tenant admin
New-PowerAppManagementApp -ApplicationId $appId

Aanvragen indienen als de service-principal

Nu het is geregistreerd bij Microsoft Power Platform, kunt u zich verifiëren als de service-principal zelf. Gebruik het volgende script om uw omgevingslijst op te vragen:

$appId = "CLIENT_ID_FROM_AZURE_APP"
$secret = "SECRET_FROM_AZURE_APP"
$tenantId = "TENANT_ID_FROM_AZURE_APP"

Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId -ApplicationId $appId -ClientSecret $secret -Verbose
Get-AdminPowerAppEnvironment

Beperkingen van service-principals

Momenteel werkt service-principal-verificatie voor omgevingsbeheer, tenantinstellingen en Power Apps-beheer. Cmdlets gerelateerd aan Flow worden ondersteund voor service-principal-authenticatie in situaties waarin een licentie niet vereist is, omdat het niet mogelijk is licenties toe te wijzen aan service-principal-identiteiten in Microsoft Entra ID.

Service principal-toepassingen worden binnen Power Platform op dezelfde manier behandeld als normale gebruikers aan wie de rol Power Platform-beheerder is toegewezen. Er kunnen geen gedetailleerde rollen en machtigingen worden toegewezen om hun mogelijkheden te beperken. De toepassing krijgt geen speciale rol toegewezen in Microsoft Entra ID, aangezien dit de manier is waarop platformservices aanvragen van service principals behandelen.