如何将组从Exchange Online匹配到Azure AD?

问题描述

我想唯一地标识Exchange Online中使用的组,以便可以在Azure AD中找到相同的组。就我而言,该组具有对邮箱的权限,如PowerShell中Get-MailBoxPermission返回的那样。

在使用 ExchangePowerShell 模块中的Get-Group cmdlet时,我得到了一些识别属性,但是这些属性都没有帮助识别Azure AD中的同一组:

  • displayName(不是唯一且不可更改)
  • SamAccountName(通过Graph API或AzureAD PowerShell模块不可用)
  • Sid(特定于Exchange Online,与Azure AD中的ID不同)
  • WindowsEmailAddress(可更改,不是必需的)
  • ExchangeObjectId(不适用于Graph API或AzureAD PowerShell模块)

在Azure AD中,我还有其他一组识别属性(例如Graph API):

  • ID(在Azure AD中显示的对象ID,在Exchange Online中不可用)
  • displayName(不是唯一且不可更改)
  • 邮件(可更改,不是必需的)
  • SecurityIdentifier(特定于Azure AD,与Exchange Online中不同)

似乎我唯一的选择是使用displayName组合,也许使用WindowsEmailAddress / Mail,这太可怕了吗?

还有其他方法可以唯一地标识出将它们匹配在一起的组吗?

更新: 我的情况如下: 我需要处理所有邮箱的所有权限:

  1. 我基本上每个邮箱都叫Get-MailBoxPermission
  2. 通过扩展属性用户”,我可以获取允许的用户或组的Exchange-SID。
  3. 然后我可以将此Exchange-SID与Get-UserGet-MailBox cmdlet返回的用户或组进行匹配。
  4. 我可以通过匹配ExternalDirectoryObjectId返回的Get-User来找到相应的Azure AD用户
  5. 该组没有属性ExternalDirectoryObjectId,在Azure AD中找不到其他唯一标识和不可更改的属性

解决方法

案例1:将组ID从Graph API匹配到Exchange Online Commandlet

从图表中获取组的列表,并将其与Exchange Online Commandlet中的组进行匹配。

从Graph API获得的ID将与Get-Group的ID匹配

以下是Graph响应的摘录:

{
            "id": "c0749057-8163-4228-be88-1a0df3aab7b1","deletedDateTime": null,"classification": null,"createdDateTime": "2020-09-08T11:21:53Z","creationOptions": [],"description": "This is a new Group","displayName": "NewGroup1","expirationDateTime": null..............
           

如果获得ID:c0749057-8163-4228-be88-1a0df3aab7b1并运行以下命令,则将获得相应的组:

Get-Group -Identity "c0749057-8163-4228-be88-1a0df3aab7b1" 

输出:

enter image description here

情况2:将Exchange Online Commandlet中的组ID与图表组ID匹配

更新

只有统一组在Graph API中可见(或)具有ExternalDirectoryObjectId

因此您可以运行

(Get-UnifiedGroup -Identity <Your Exchange Group ID>).ExternalDirectoryObjectId

这将返回组的Azure AD对象ID。

enter image description here

HTH!