使用单个 Azure 函数代表多个用户访问他们的资源

Using a single Azure Function to access multiple users' resources on their behalf

TL;DR:我不确定如何在我们组织的日历资源(只读)中访问多个用户,以及是否可以在单个 Azure 函数中这样做。任何关于我能做什么的指导都将不胜感激。

正如标题所说,我正在寻找一种使用 Azure Functions 和 Microsoft Graph API 代表他们访问多个用户资源的方法。目前我有一点使用 Auth Token binding 的经验,但到目前为止我只能使用一个 user-id 作为输入来获取他们同意访问的令牌。我希望能够在单个函数中访问 多个 用户的令牌,而不管我是否需要使用 Auth Token 绑定或以其他获取和检索方法编码令牌。目前,我能看到使用 Auth Token 绑定实现此功能的唯一方法是分别为我们的每个用户创建一个 Azure 函数,这需要管理员为每个新用户创建一个新函数。有没有另一种方法可以做到这一点,以便我可以将要求限制为单个功能?我希望能够遍历每个标记(或 user-id 以获取所述标记)并在所述循环中检查它们的日历事件。我喜欢这个,因为这意味着添加的任何新用户都不需要专门为他们创建的新功能,这意味着更少的管理开销。重要的是要注意,这是为 运行 一次为 < 10 个用户和每天 < 50 个应用程序而设计的。我们将在每天的特定时间 运行 启用该功能。

如果您想知道,我们的用例是能够查看我们组织中多个用户的日历,然后能够将提醒 SMS 消息发送到每个用户日历中每个约会中包含的号码。

我看到您可以尝试的两个主要方向:

  • 创建一个额外的 Azure 函数 来提取所有相关的用户 ID 并将每个 ID 传递给第二个 Azure 函数(如果您希望继续使用 来自 ID 的令牌)。
  • 您可以使用 OAuth 的 Client Credentials 流程,这意味着 Azure Function 的专用令牌可用于访问所需的资源。这可能允许您遍历相关用户列表并在同一函数中为每个用户提取所需信息。

希望对您有所帮助!