Microsoft Graph:Daemon App访问仅一个用户的共享日历

时间:2019-10-21 15:59:53

标签: java microsoft-graph microsoft-graph-sdks microsoft-graph-calendar

我的情况:

  • 我希望用户能够与守护程序共享他们的日历中的一些
  • 我想要守护程序应用程序。可以对这些共享日历进行 only 的readWrite访问。

这个想法是,用户只需创建日历并与守护程序共享日历,然后取消共享以选择退出,即可“选择加入”服务。我想避免必须让管理人员来管理权限。我也想避免不得不编写一些程序来管理权限。共享部分使我的守护程序可以轻松找到必须使用的日历。

我的解决方案:

  1. 使用电子邮件和日历创建服务帐户。用户与此帐户共享所需的日历。
  2. 创建具有日历和电子邮件权限的应用程序帐户。
  3. 创建具有电子邮件访问权限的安全组,并将服务帐户添加到该组。
  4. 使用 New-ApplicationAccessPolicy PowerShell cmdlet 将应用程序限制为只能访问安全组。

问题在于此cmdlet似乎无法理解共享日历。在支持的权限和其他资源列表中,没有提及共享日历。 (我会尽快尝试,但我怀疑它会失败)

有没有办法解决这个限制?这个问题似乎与应用所在的其他问题相似。应该“ ActAs”一个特定用户,而其他答案通常是“做不到”。

New-ApplicationAccessPolicy documentation

Mail-Enabled-Security-Group documentation

该解决方案必须使用Java。

1 个答案:

答案 0 :(得分:0)

New-ApplicationAccessPolicy旨在限制仅应用程序对特定邮箱的访问。

在您的方案中,您应该能够在服务帐户的上下文中使用“委派权限”,该权限已在它可以读取的邮箱中受到限制。

设备代码流应该工作。或使用KeyVault(或同等功能)存储服务帐户的凭据并使用ROPC流。