Eine Dienstprinzipalanwendung mit PowerShell erstellen
Die Authentifizierung über Benutzername und Kennwort ist oft nicht ideal, insbesondere mit dem Aufkommen der Multi-Factor-Authentifizierung. In solchen Fällen wird die Authentifizierung über den Dienstprinzipal (oder den Client-Anmeldeinformationsflow) bevorzugt. Dies kann durch die Registrierung einer neuen Dienstprinzipalanwendung in Ihrem eigenen Microsoft Entra-Mandanten und die anschließende Registrierung derselben Anwendung bei Power Platform erfolgen.
Registrieren einer Administratorverwaltungsanwendung
Zunächst muss die Client-Anwendung in Ihrem Microsoft Entra-Mandanten registriert werden. Lesen Sie dazu den Artikel zur Authentifizierung für Power Platform-APIs, da für PowerShell dieselbe Anwendungskonfiguration erforderlich ist.
Nachdem Ihre Client-Anwendung in Microsoft Entra ID registriert wurde, muss sie auch bei Microsoft Power Platform registriert werden. Heute kann dies nicht mehr über das Power Platform Admin Center, sondern programmgesteuert über Power Platform-API oder PowerShell für Power Platform-Administratoren erfolgen. Ein Dienstprinzipal kann sich nicht selbst registrieren. Die Anwendung muss standardmäßig von einem Benutzernamen- und Kenntwortkontext für Administratoren registriert werden. Dadurch wird sichergestellt, dass die Anwendung von jemandem erstellt wird, der ein Administrator für den Mandanten ist.
Verwenden Sie das folgende Skript, um eine neue Verwaltungsanwendung zu registrieren:
$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
Anforderungen als Dienstprinzipal einreichen
Nachdem die Registrierung bei Microsoft Power Platform erfolgt ist, können Sie sich selbst als Dienstprinzipal authentifizieren. Verwenden Sie das folgende Skript, um Ihre Umgebungsliste abzufragen:
$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
Einschränkungen des Dienstprinzipals
Derzeit funktioniert die Dienstprinzipalauthentifizierung für die Umgebungsverwaltung, die Mandanteneinstellungen und die Power Apps-Verwaltung. Flow-bezogene Cmdlets werden für die Dienstprinzipalauthentifizierung in Situationen unterstützt, in denen keine Lizenz erforderlich ist, da es nicht möglich ist, Dienstprinzipalidentitäten in Microsoft Entra ID Lizenzen zuzuweisen.
Dienstprinzipalanwendungen werden Power Platform ähnlich behandelt wie normale Benutzer mit der zugewiesenen Power Platform-Administratorrolle. Es können keine detaillierten Rollen und Berechtigungen zugewiesen werden, um ihre Fähigkeiten einzuschränken. Der Anwendung wird in Microsoft Entra ID keine besondere Rolle zugewiesen, da Plattformdienste auf diese Weise Anfragen von Dienstprinzipalen behandeln.