O365 Outlook REST API,伪装
O365 Outlook REST API, masquerading
我们必须编写一个同步解决方案,该解决方案必须在 O365 中为最多 4000 个用户创建和更新日历事件。作为每个用户进行身份验证是不可能的,但我找到的所有文档和示例都是基于作为当前用户的直接身份验证。
来自另一个 Calendar REST API 我知道伪装,在那里我可以创建一个应用程序令牌作为管理员,然后将 URI 伪装成另一个用户来创建事件。
但是Outlook/O365好像没有这个功能。我必须选择哪种方式来解决问题?
您实际上可以获得一个应用程序级令牌,它可以让您访问所有内容。
它涉及向应用程序添加应用程序级权限,然后使用管理员帐户使用一次性 oAuth 登录,这将向应用程序授予这些权限。
然后您可以使用 oAuth 客户端凭据身份验证过程来检索令牌,而无需进一步的用户交互(仅使用应用程序 ID 和密码)。
所有细节都在这里:https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service
当然,像/me
这样的东西将不再有效,你必须访问特定的用户。
注意:关于 Outlook REST API、Office 365 REST API、Microsoft Graph 之间的差异存在相当多的混淆,但后者似乎是最新的。
还有两种不同的应用程序注册方式,如果您想使用该流程,请确保使用上述文档中描述的方式。如果使用Azure app注册,过程略有不同(在上述链接文档末尾有描述),但最终结果应该是一样的。
我们必须编写一个同步解决方案,该解决方案必须在 O365 中为最多 4000 个用户创建和更新日历事件。作为每个用户进行身份验证是不可能的,但我找到的所有文档和示例都是基于作为当前用户的直接身份验证。
来自另一个 Calendar REST API 我知道伪装,在那里我可以创建一个应用程序令牌作为管理员,然后将 URI 伪装成另一个用户来创建事件。
但是Outlook/O365好像没有这个功能。我必须选择哪种方式来解决问题?
您实际上可以获得一个应用程序级令牌,它可以让您访问所有内容。
它涉及向应用程序添加应用程序级权限,然后使用管理员帐户使用一次性 oAuth 登录,这将向应用程序授予这些权限。
然后您可以使用 oAuth 客户端凭据身份验证过程来检索令牌,而无需进一步的用户交互(仅使用应用程序 ID 和密码)。
所有细节都在这里:https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service
当然,像/me
这样的东西将不再有效,你必须访问特定的用户。
注意:关于 Outlook REST API、Office 365 REST API、Microsoft Graph 之间的差异存在相当多的混淆,但后者似乎是最新的。
还有两种不同的应用程序注册方式,如果您想使用该流程,请确保使用上述文档中描述的方式。如果使用Azure app注册,过程略有不同(在上述链接文档末尾有描述),但最终结果应该是一样的。