阅读分配给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;
}
您应该使用Microsoft Graph API。它是适用于所有Office 365端点的通用API。如果您正在使用Office 365,则您的所有用户都将是Azure AD域的一部分。
尝试Microsoft图形资源管理器并查询/Users端点,如下所示:
https://graph.microsoft.com/v1.0/users