Jag sitter just nu med att skriva en website  med Angularjs och Web Api för att administrera användare i Azure AD. Under min katalog i Azureportalen har jag skapat upp en “web application” som har skriv- och läsrättigheter. Create, read och update funger fint men när jag skulle ta bort användare med metoden “DeleteAsync()” från klassen “ActiveDirectoryClient” då fick jag “Insufficient privileges to complete the operation.”

Som vanligt satte jag mig googlade och hittade denna tråd User delete async result “Insufficient privileges to complete the operation.” på github. Med hjälp av denna lyckades jag lista ut hur man sätter extra behörigheter på en servicePrincipal via PowerShell.

  1. Installera dessa paket för att få tillgång till de PowerShellmoduler som behövs
  2. Öppna sedan upp “Windows Azure Active Directory-module” eller starta PowerShell som vanligt och importera modulen MsOnline “Import-Module MSOnline
  3. Kör “Connect-MsolService” Du får nu upp en inloggningsruta där du fyller i dina uppgifter.
  4. Nästa steg är att först ta reda på sitt appid som är samma sak som clientid under applications i azure portalen eller via kommandot “Get-MsolServicePrincipal“. Nu kan du köra “_$app = Get-MsolServicePrincipal -AppPrincipalId _“
  5. Vi behöver även hämta rollen som vi vill lägga till applikationen i. Det gör vi med “$role = Get-MsolRole -RoleName “Company Administrator”
  6. Nu lägger vi till applikationen i rollen med “Add-MsolRoleMember -RoleObjectId $role.ObjectId -RoleMemberType ServicePrincipal -RoleMemberObjectId $app.ObjectId

Så nu ska applikationen fått rätt behörigheter för att kunna ta bort användare ur Azure AD. Jag hade dock problem med att jag fortfarande fick behörighetsfel men det räckte med att ta generera en ny secret till applikationen så fungerade det.