我使用Azure Active Directory作为Sharepoint 2013门户的安全/权限基础。我使用Graph API开发了一个管理UI,以从Azure Active Directory加载和编辑数据。安装程序还包括Exchange Online,这样系统中定义的每个用户都将在我的域中获得一个邮箱。Azure Active Directory中的组和用户使用DirSync同步到Sharepoint 2013和Exchange Online。
该计划是使用管理页面来整合某些预期操作,包括创建新用户、将他们连接到相关安全组,以及创建新的启用邮件的安全组。
如图API组概述中所述,只允许创建"纯"安全组。此外,Graph API不允许在创建后将mailEnabled
字段更新为true。。。事实上,Azure Active Directory管理屏幕非常有限,无法在那里创建启用邮件的组(或者我遗漏了什么?)。
我正在努力寻找一个解决方案,让我仍然可以将我希望在一份行政申请中允许的所有行动合并起来。
- 看起来PowerShell可能是一个选项,尽管我并不完全精通使用PowerShell
- 我试图找到一个允许我连接到Exchange Online并执行类似操作的API-DirSync似乎可以将其中的所有内容同步到Azure Active Directory-我在Exchange中创建了一个可发送邮件的安全组,稍后我在Azure Active Directory中获得了一个已发送邮件的安全组-我找不到这样的API它存在吗
我看错了吗?是否有一个我根本不知道的简单的解决方案来满足我的上述需求?
听起来你并没有错过什么。问题是,只有当您有提供"邮件"的东西时,启用邮件的安全组才有意义。对于Microsoft的在线服务,这将是Exchange。Azure AD和"纯"安全组适用于所有地方,但有人可能会说,启用邮件的组仅适用于Exchange。无论如何,这是为了解释原因。
至于以编程方式访问Exchange,您有很多选择(请参阅Exchange Online和Exchange 2013开发(没有特定顺序):
a)Exchange PowerShell cmdlet
Exchange允许您使用Exchange Online PowerShell cmdlet以编程方式创建和管理通讯组。例如,New-DistributionGroup cmdlet:
New-DistributionGroup -Name "My Favorite People" -Type "Security"
正如您所注意到的,这些组将以只读方式同步回Azure AD。然后,您可以将它们(例如)与Azure AD Graph API一起使用,以基于组成员身份执行RBAC。
a.1)从C#代码运行Exchange PowerShell cmdlet
如果您想从其他.NET代码(例如C#)运行这些cmdlet,这是可行的。请看"如何:使用Exchange命令行管理程序获取邮件用户列表"中的示例。它可以很容易地用来获取/设置组,而不是用户。
b)Exchange Web服务和EWS管理的API
在这一点上,你最好的选择可能是使用EWS管理API:
- 开始使用EWS客户端应用程序
- 开始使用EWS托管API客户端应用程序
c)Office 365 API(尽管当前不支持此方案)
请关注Office 365 API,它看起来还不支持这种情况,但看起来很有希望:http://msdn.microsoft.com/en-us/library/office/dn605892(v=office.15).aspx