Ende der PnP PowerShell Multi-Tenant App ab September 2024

Heute können SharePoint Administratoren und berechtigte Konten über folgende Commands im Tenant eine PnP PowerShell Multi-Tenant App registrieren.

  • Register-PnPManagementShellAccess
  • Connect-PnPOnline <Tenantname>.sharepoint.com -Credentials (Get-Credential) > für Konten ohne MFA
  • Connect-PnPOnline <Tenantname>.sharepoint.com -Interactive > für Konten mit MFA

Beim ersten Aufruf möchte PnP die Multi-Tenant App “PnP Management Shell” im Tenant registrieren. Ein Administrator kann den Berechtigungen zustimmen und die Registrierung durchführen.

PnP PowerShell Multi-Tenant App
PnP PowerShell Multi-Tenant App

In Entra wird die App als Enterprise App registriert.

PnP PowerShell Multi-Tenant App
PnP PowerShell Multi-Tenant App

Wie die PnP Community informiert (hier und hier) wird diese Multi-Tenant App am 9. September 2024 entfernt.
Von der Änderung betroffen ist auch CLI for Microsoft 365, das ebenfalls die PnP PowerShell Multi-Tenant App nutzt.

Changes in PnP Management Shell registration in Microsoft 365
Changes in PnP Management Shell registration in Microsoft 365

Die PnP Hilfe informiert über die Änderung.
Statt der Multi-Tenant App sollen Organisationen eine eigene Azure App nutzen. Mit der eigenen App können Organisationen Berechtigungen der App selbst definieren. Die Multi-Tenant App hatte bisher vordefinierte Rechte. Neu ist der Vorgang nicht.

Eine Azure App einzurichten ist kein grosser Aufwand. Microsoft und die PnP Community (für CLI for Microsoft) beschreiben in der Dokumentation Schritte zur Registrierung einer App und wie Administratoren API Berechtigungen vergeben. Optional registriert das Command Register-PnPEntraIDApp eine vorkonfigurierte Azure App.

PowerShell
# PnP connection with Azure app and certificate
Import-Module PnP.PowerShell
Connect-PnPOnline <SharePointUrl> -ClientId <AppID> -Thumbprint <CertThumbprint> -Tenant <TenantID>

  • Mit der App kannst du über den Parameter Interactive auch wieder eine interaktive Anmeldung mit Benutzerkonto durchführen. Die interaktive Anmeldung funktioniert für Delegated Permissions.

Eine Interactive-Anmeldung benötigst du für Benutzerkonten mit MFA.

PowerShell
# PnP connection with Azure app and interactive logon (for users with MFA)
Import-Module PnP.PowerShell
Connect-PnPOnline -Url <SharePointUrl> -ClientId <AppID> -Interactive


Beachte, für den Parameter Interactive erwartet PnP PowerShell die Redirect URI http://localhost in der App Registration. Unter Authentication fügst du die Redirect URI hinzu.

Redirect URI in Azure App Registration ergänzen (nur für Interactive-Anmeldungen)
Redirect URI in Azure App Registration ergänzen (nur für Interactive-Anmeldungen)

Ohne Redirect URI gibt PnP bei der Verbindung einen Fehler aus.

Screenshot


Bonus – Azure App in PowerShell als Umgebungsvariable speichern

Mit einer Umgebungsvariable kannst du für PowerShell Werte wie die Azure App ID speichern. Dadurch wird das Command Connect-PnPOnline für eine interaktive Anmeldung wie in der Vergangenheit genutzt.

PowerShell
# Save the Azure App ID as environment variable
# Set the environment variable for the current PowerShell session
$env:ENTRAID_APP_ID = "e17dc044-f8d5-4542-bb4b-3ceb352d3ab1"

# Or set the environment variable for the current user
[System.Environment]::SetEnvironmentVariable("ENTRAID_APP_ID", "e17dc044-f8d5-4542-bb4b-3ceb352d3ab1", [System.EnvironmentVariableTarget]::User)

Connect-PnPOnline -Url <SharePointURL> -Interactive


Die interaktive Verbindung zur App war erfolgreich und SharePoint gibt Daten zurück.
Eine Kontrolle zeigt mit der Umgebungsvariable wurde die Verbindung über meine Azure App e17dc044-f8d5-4542-bb4b-3ceb352d3ab1 hergestellt. Ohne der Umgebungsvariable hätte PnP die Multi-Tenant App registrieren wollen.

PowerShell
Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert