Fra og med 9. september vil PnP Management Shell-appen bli slettet av sikkerhetsmessige årsaker, noe som krever at alle som bruker PnP PowerShell mot Microsoft 365 registrerer en ny app i Entra ID. Denne endringen påvirker spesielt skript som kjøres interaktivt av administratorer og utviklere. I denne artikkelen viser vi deg hvordan du enkelt kan registrere den nye appen og sikre at dine PowerShell-skript fortsatt fungerer uten avbrudd.
Bakgrunn
For alle som jobber teknisk med Microsoft 365 og Microsoft Graph, er PowerShell et viktig verktøy. PowerShell brukes for eksempel til distribusjon og oppsett av mange applikasjoner, som Prosjektportalen.
Modulen PnP PowerShell krever at man legger til en multitenant-app, PnP Management Shell. Denne appen gir PnP PowerShell mulighet til å bli kjørt interaktivt med rettighetene til den som kjører skriptet.
Forrige uke kom nyheten om at PnP Managment Shell appen slettes 9. september av sikkerhetsmessige årsaker. For å kunne fortsette å kjøre skript mot Microsoft 365, må vi nå registrere vår egen app i Entra ID med nødvendige rettighetene. Merk at skript som er satt opp til å kjøre ubetjent, for eksempel i Azure Runbooks, allerede vil være konfigurert til å bruke en app eller Managed Identity og vil derfor fortsette å fungere etter 9. september. Denne endringen påvirker først og fremst skript som kjøres interaktivt av oss som administratorer eller utviklere.
Hva må vi gjøre i vår organisasjon?
Hvis dere eller partnere trenger å bruke PowerShell mot Microsoft 365 må vi registrere opp en app. PnP PowerShell 2.10 eller senere kommer levert med en praktisk kommando for som gjør mesteparten av jobben for oss.
NB: Siste versjon av PnP PowerShell krever PowerShell 7. Om du ikke har installert PowerShell 7 så gjør dette først.
1a) Hvis PnP PowerShell ikke er installert, installer modulen:
Install-Module PnP.PowerShell -Scope CurrentUser
1b) Hvis PnP PowerShell er installert, sørg for å oppdatere til siste versjon
Update-Module PnP.PowerShell -Scope CurrentUser
2) Registrer den nye appen vi skal bruke
Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP PowerShell for MyCompany" -Tenant <tenant>.onmicrosoft.com -Interactive
Kommandoen over vil installere en ny app med navnet vi spesifiserer, bruk et navn som gir mening og er lett å gjenkjenne. Unngå å kalle applikasjonen "PnP Managment Shell".
Merk at sammenlignet med den gamle PnP Managment Shell appen er settet med rettigheter denne appen settes opp med som standard ganske begrenset. Det er også slik at disse rettighetene er (som tidligere) "delegerte" som betyr at det er rettighetene til den kjører PowerShell scriptet som gjelder.
Standardrettighetene vil dekke grunnleggende bruk av PnP PowerShell mot Microsoft 365. Om det er behov for ytterligere rettigheter kan du tildele dette når appen opprettes, eller disse kan legges til i etterkant. Om det kjøres script som krever rettigheter denne appen ikke har vil det gis tilbakemelding til brukeren.
3) for å bruke den nye appen når vi kobler til Microsoft 365 må vi spesifisere App ID'en til appen vi opprettet i steg 2.
Connect-PnPOnline -Url https://<tenant>.sharepoint.com/sites/<site> -Interactive -ApplicationId <ID'en til appen vi opprettet>
Det er mulig å opprette en miljøvariabel ENTRAID_APP_ID som har ID'en til applikasjonen. PnP PowerShell vil da bruke denne ID'en om du ikke har spesifisert en ApplicationId når du kjører Connect-PnPOnline med -Interactive flagget.
Veien videre
Alle som skal bruke PnP PowerShell mot Microsoft 365 i deres organisasjon trenger å spesifisere en app id tilsvarende det vi har vist over. Fordelen med det nye regimet er at vi kan diffrensiere enklere, for eksempel opprette app-registreringer for spesifikke formål eller for enkelte brukergrupper. Om dette gjøres som et sikkerhetstiltak bør det også begrenses via Entra ID hvem som får lov til å bruke de forskjellige appene.
Ole Kristian Mørch-Storstein