Weisen Sie der App-Only-Authentifizierung mit Exchange Online Powershell eine bestimmte Exchange-Rolle zu

Weisen Sie der App-Only-Authentifizierung mit Exchange Online Powershell eine bestimmte Exchange-Rolle zu

Ich muss die folgenden Cmdlets aus dem ExchangeOnline Powershell-Modul mit einer unbeaufsichtigten Verbindung verwenden.

  • Get-QuarantineMessage
  • Vorschau-Quarantänenachricht
  • Freigabe-Quarantänenachricht
  • Export-QuarantineMessage
  1. Nach dieser ersten Dokumentationhttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps, ich habe eine Azure App-Registrierung mit selbstsigniertem Zertifikat erstellt, die API-Berechtigung „Exchange.ManageAsApp“ zugewiesen und dann die Zustimmung erteilt.

  2. Dann habe ich eine Azure-Sicherheitsgruppe erstellt und meine Anwendung als Mitglied dieser Gruppe hinzugefügt.

  3. Anschließend habe ich gemäß dieser Dokumentation eine benutzerdefinierte Rolle im Microsoft 365 Defender-Portal erstellt: https://learn.microsoft.com/en-us/defender-for-identity/role-groups

  4. In dieser Rolle habe ich die folgende benutzerdefinierte Berechtigung hinzugefügt:

  • E-Mail-Quarantäne (verwalten)
  • E-Mail erweiterte Aktionen (verwalten) Und Schreibgeschützt fürRohdaten (E-Mail und Zusammenarbeit)
  1. Und natürlich habe ich meiner in Schritt 2 erstellten Gruppe diese neue Rolle zugewiesen

All dies ermöglicht mir die Verwendung der ersten beiden Cmdlets ohne Probleme, aber ich kann nicht auf dieExport-QuarantineMessageUndFreigabe-Quarantänenachricht.

Wir können die für dieses Cmdlet benötigten Berechtigungen über diese Befehle auflisten (von dort:https://learn.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps)

PS > $Perms = Get-ManagementRole -Cmdlet Export-QuarantineMessage
PS > $Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

Role           RoleAssigneeType RoleAssigneeName
----           ---------------- ----------------
Security Admin RoleGroup        Organization Management
Security Admin RoleGroup        SecurityAdmins_782500194



Role              RoleAssigneeType RoleAssigneeName
----              ---------------- ----------------
Transport Hygiene RoleGroup        Hygiene Management
Transport Hygiene RoleGroup        Organization Management

Ich habe diesen letzten Befehl ausprobiert:

PS > Add-RoleGroupMember "Hygiene Management" -Member <name of the application created at step 1>

Ich kann mein Anwendungsmitglied sehen, wenn ich Folgendes ausführe:

PS > Get-RoleGroupMember "Hygiene Management"

Aber ich habe immer noch keinen Zugriff auf dieExport-QuarantineMessageUndFreigabe-QuarantänenachrichtCmdlets.

AKTUALISIEREN

Ich versuche folgendeshttps://learn.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps#assign-custom-exchange-online-role-groups-to-the-application-using-service-principals

  1. Erstellen einer benutzerdefinierten Exchange-Rolle mit „Transporthygiene“ + „Sicherheitsadministrator“

  2. PS > $AadApp = Get-AzureADServicePrincipal -SearchString ""

    PS > New-ServicePrincipal -AppId $AadApp.AppId -ServiceId $AadApp.ObjectId -DisplayName "ServicePrincipal für meine App"

    PS > $SP = Get-ServicePrincipal -Identity "ServicePrincipal für meine App"

    PS > Add-RoleGroupMember -Identity "<Rolle erstellt in Schritt 1>" -Member $SP.Identity

Ohne Erfolg.

AKTUALISIEREN Das Ändern meiner benutzerdefinierten Exchange-Rolle mit nur: -Mailbox Import Export -Mailbox Search -MailboxSearchApplication -Message Tracking -Transport Hygiene -View-Only Configuration -View-Only Recipients scheint zu funktionieren. Ich werde das Wochenende verstreichen lassen, um zu sehen, ob dies nicht weitere Änderungen sind, deren Replikation auf der Microsoft-Seite Zeit in Anspruch nimmt

verwandte Informationen