SharePoint Online PowerShell mit App-Registrierung authentifizieren
In diesem Video erfährst du, wie du die SharePoint Online PowerShell (Microsoft.Online.SharePoint.PowerShell) mit einer App-Registrierung und einem Zertifikat authentifizieren kannst. Dafür benötigst du mindestens Version 16.0.26712.12000 des PowerShell-Moduls, da in älteren Modulen die Parameter für die zertifikatsbasierte Authentifizierung nicht vorhanden sind.
Benötigst du Unterstützung?
Melde dich bei uns!
Hier findest du das im Video gezeigte Script zur Erstellung des Zertifikats.
Create-SelfSignedCertificate.ps1
$CertName = "SharePoint Online PowerShell Automation $(Get-Date -Format yyyy-MM-dd)"
$ExportPath = "$env:USERPROFILE\Downloads\"
#Zertifikat erstellen
$NewCert = New-SelfSignedCertificate -Subject "CN=$CertName" -CertStoreLocation "cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
#pfx erportieren
$NewCert | Export-PfxCertificate -FilePath "$ExportPath\$CertName.pfx" -Password (Get-Credential).password
#cer exportieren
$NewCert | Export-Certificate -FilePath "$ExportPath\$CertName.cer"
Das nachfolgende Script kannst du dann zur Authentifizierung nutzen.
Connect-SPOServiceWithAppAuth.ps1
#mindestens Version 16.0.26712.12000
#vorher alle älteren Versionen vollständig deinstallieren
Install-Module Microsoft.Online.SharePoint.PowerShell -MinimumVersion 16.0.26712.12000 -Force
Import-Module Microsoft.Online.SharePoint.PowerShell -MinimumVersion 16.0.26712.12000
#SharePoint URL
$Url = "https://itestlio-admin.sharepoint.com"
#Ids und Thumbprint können in Entra ID bei der App-Registrierung ausgelesen werden
$ClientId = "e0e1f40e-4bde-46a1-84b5-b3ed9ec9daf9"
$TenantId = "dfb16387-752d-43d6-96ec-bc4250a5ebc7"
$Thumbprint = "80B3A2036FB83FF94F2EC463FD98722B1AA94B88"
#Zertifikat aus dem Computerspeicher auslesen
$Cert = Get-ChildItem "Cert:\LocalMachine\My\$Thumbprint"
Connect-SPOService -Url $Url -ClientId $ClientId -Tenant $TenantId -Certificate $Cert
#was eigentlich funktionieren sollte: Zertifikat aus dem Benutzerspeicher auslesen
#Connect-SPOService -Url $Url -ClientId $ClientId -Tenant $TenantId -CertificateThumbprint $Thumbprint