【问题标题】:To read the email adress assigned to an AD group Outlook 2010/Office 365读取分配给 AD 组的电子邮件地址 Outlook 2010/Office 365
【发布时间】:2016-03-01 18:52:02
【问题描述】:

Office 365/Outlook 2010 交换服务器, Outlook(2010) 插件开发。

场景:

简短的场景是,在我们的组织中,我们共享邮箱,用户将使用这些邮箱作为与客户交流的主要电子邮件,以及一个用于处理传入电子邮件的邮箱。用户帐户已在 Active Directory(云)中创建,而电子邮件帐户是通过 Office 365 管理员(Exchange Server)为相应用户创建的。

当前插件读取 AD 并检查用户是否属于 Active Directory 中的某个组。根据组,它分配用户是否可以代表他/她的经理发送电子邮件的权限。在第二种情况下,用户是否只能通过共享邮箱发送电子邮件(共享邮箱应该充当主帐户)

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

“销售”组的成员只能使用该共享邮箱 (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;
 }

【问题讨论】:

    标签: c# active-directory outlook-addin outlook-2010 exchange-server-2010


    【解决方案1】:

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

    尝试Microsoft Graph Explorer 并像这样查询 /Users 端点:

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

    【讨论】:

    • 感谢您的回复,我会检查 Graph API。目前,经理不希望用户通过 Office 365 webapp 访问电子邮件,而是希望他们通过 Outlook 2010 桌面应用程序访问。并希望当前插件能够进行权限和传输规则处理。我已经从我的其他同事那里确认 AD 只是一个普通的 Active Directory,而不是 Azure AD。我会检查链接
    • 任何 Office 365 用户都将在 Azure Active Directory 中。用户已正确同步到您的本地 AD
    • 我在服务器上检查了 AD 和 AzureAD 之间没有同步。目前,用户、组是根据他们在办公室中的角色在 AD 中定义的,并且在使用 Office 365 管理员建立电子邮件帐户的情况下单独管理。该插件安装在 Outlook 2010 桌面应用程序中。它通过 MAPI 收集用户信息,一个用户帐户已被授予对第二个用户帐户的完全访问权限。代码选择“发件人”地址作为第二个用户帐户(共享收件箱是默认收件箱,所有电子邮件都通过代码规则移动)。
    • 请注意,我不是专业的 Outlook 开发人员,而是在公司实习,因此我的知识有限。但我真的很感激你帮助我,因为总是有更多的东西要学:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多