阅读分配给AD组Outlook 2010/Office 365的电子邮件地址

本文关键字:Office 电子邮件地址 2010 Outlook 分配 AD | 更新日期: 2023-09-27 18:24:57

Office 365/Outlook 2010Exchange服务器,Outlook(2010)插件开发

场景:

简单的情况是,在我们的组织中,我们有共享邮箱,用户将这些邮箱用作与客户沟通的主要电子邮件,以及处理传入电子邮件的邮箱。用户帐户已在Active Directory(云)中创建,作为电子邮件帐户,这些帐户是通过Office 365管理员(Exchange Server)为相应用户创建的。

当前插件读取AD并检查用户是否属于Active directory中的某个组。用户是否可以代表其经理发送电子邮件,取决于其分配的权限。在第二种情况下,用户是否只能通过共享邮箱发送电子邮件(共享邮箱应作为主要帐户)

请注意,AD中没有为用户分配电子邮件地址。但是,它应该读取AD组并获取分配给该特定组(例如Sales)的电子邮件地址。这些信息应该与Office 365同步。

say"Sales"组的成员只能使用该共享邮箱发送电子邮件(sales@domain.com)而不是他们的个人用户帐户(thomas@domain.com)。在现有代码中检查了此条件,但我没有看到任何关于共享邮箱的实现,而是在名为例如的常规邮箱上。Sales@domain.com(许可帐户不是共享邮箱)

有没有一种方法可以让我读取AD组并检索在AD组的数据字段中输入的相应共享邮箱地址,从而对某个组内的用户应用进一步的权限?

非常感谢您在这方面的帮助!!

我已经在这里复制了当前的查询,它是我正在处理的插件的一部分。

 bool QueryAD(string EMailAdresse, string Gruppe)  
 {
      PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
      GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, Gruppe);
      GroupMembershipCacheInitialized = true;
      if (grp != null)
      {
         foreach (Principal p in grp.GetMembers(false))
         {
          if (((UserPrincipal)p).EmailAddress == EMailAdresse) // this doesnt make sense because p.EmailAddress is always null
              {
                     GroupMembershipCache.Add(EMailAdresse, Gruppe);                        
                     return true;
              }
          }
         grp.Dispose();
         ctx.Dispose();
     }
     return false;
 }

阅读分配给AD组Outlook 2010/Office 365的电子邮件地址

您应该使用Microsoft Graph API。它是适用于所有Office 365端点的通用API。如果您正在使用Office 365,则您的所有用户都将是Azure AD域的一部分。

尝试Microsoft图形资源管理器并查询/Users端点,如下所示:

https://graph.microsoft.com/v1.0/users