Voor een aantal integraties die Neoforce aanbiedt met Microsoft Azure vereisen we een Tenant ID, Client ID en Client Secret. Dit stelt Neoforce in staat om bijvoorbeeld e-mails te importeren of gebruikerssynchronisatie uit te voeren. Echter betekent dit vaak ook dat Neoforce meer rechten krijgt dan gewenst op de verleende API rechten.
Met de standaardrechten in Microsoft Azure kan Neoforce toegang krijgen tot alle mailboxen binnen de tenant om e-mails op te halen voor import.
Met behulp van Microsoft PowerShell is het mogelijk om deze rechten te beperken tot specifieke mailboxen.
Disclaimer: We adviseren om deze stappen uit te voeren door iemand met Powershell en Microsoft Entra ID (Azure AD) kennis.
Benodigdheden:
- Powershell met administratorrechten
- Exchange Online PowerShell module
- App registratie in Azure voor het clientID
Exchange Online kan geïnstalleerd worden door middel van het onderstaande commando in te voeren. Doe dit wel via Powershell met administrator rechten :
Install-Module -Name ExchangeOnlineManagement
Instellen restrictie
Na de installatie van Exchange Online voor Powershell kun je deze opstarten middels het commando:
Import-Module ExchangeOnlineManagement
Vervolgens dien je in te loggen middels het commando:
Connect-ExchangeOnline
Log hier in met het Microsoft 365/ azure account dat administrator rechten heeft.
Na het succesvol inloggen verschijnt onderstaand:
Aanmaken scope
Allereerst is het van belang om een scope te maken. Hiermee geef je aan voor welke mailboxen deze regel geldt.
Je kunt direct meerdere mailboxen instellen.
Voorbeeld commando:
één mailbox
New-ManagementScope -Name "Scope-Neoforce-Mailbox" `
-RecipientRestrictionFilter "PrimarySmtpAddress -eq 'mailbox@bedrijf.nl'"
meerdere mailboxen:
New-ManagementScope -Name "Scope-Neoforce-Mailboxes" `
-RecipientRestrictionFilter "PrimarySmtpAddress -in {'mailbox1@bedrijf.nl','mailbox2@bedrijf.nl','mailbox3@bedrijf.nl'}"
Meer informatie over het aanmaken van de scope is te vinden via deze link.
Koppelen van de app aan de scope
Na het aanmaken van de scope is het tijd om deze te koppelen aan de applicatie (service principal) zodat de app alleen maar toegang krijgt tot de ingestelde mailbox(en). Je geeft bij het koppelen direct aan welke rechten van toepassing zijn. Een lijstje van de ondersteunde rollen is hier te vinden.
Het instellen kun je vervolgens doen middels dit commando:
New-ManagementRoleAssignment `
-Name "Neoforce-Mail-Read" `
-Role "Application Mail.Read" `
-App <ClientID> `
-CustomResourceScope "Scope-Neoforce-Mailbox"
Let op:Je kunt per commando maar één rol toewijzen. Wil je meerdere rollen toewijzen, herhaal dan dit commando.
Meer informatie over het koppelen van de app aan de scope is hier te vinden.
Controleren van de toegang
Na het uitvoeren van de vorige stappen kun je controleren of alles goed is ingesteld.
Allereerst kun je controleren of alles goed is ingesteld en wat er ingesteld is. Dit kun je doen via het commando:
Get-ManagementRoleAssignment -RoleAssigneeType ServicePrincipal |
Where-Object {$_.App -eq "<ClientID>"}
Testen van de toegang
Als laatste kun je de ingestelde restrictie ook testen/ simuleren.
Test-ServicePrincipalAuthorization `
-Identity <ClientID> `
-Resource mailbox@bedrijf.nl
Als resultaat laat die zien of je wel of geen toegang hebt.
Verwijderen van de restrictie
Als laatste kun je de restrictie ook weer verwijderen door middel van dit commando:
Remove-ManagementRoleAssignment -Identity "<Name>"
Voordat je de Management Scope kunt verwijderen is het van belang dat eerst alle assignments verwijdert zijn. Indien deze allemaal zijn verwijdert. Dan kun je de Management Scope verwijderen doormiddel van het commando:
Remove-ManagementScope -Identity "Scope-Neoforce-SharedMailboxes"
Let op! Houdt er rekening mee dat Neoforce (waarschijnlijk) geen rechten meer heeft om een mailbox uit te lezen of mails te versturen.
Meer info
Microsoft: Role Based Access Control