【问题标题】:How to connect to Microsoft Booking through Graph API without a user?如何在没有用户的情况下通过 Graph API 连接到 Microsoft Booking?
【发布时间】:2020-12-21 05:21:05
【问题描述】:

要求是使用 Graph API Beta 从 Microsoft Bookings 访问详细信息。按照here 的步骤在没有用户的情况下获得访问权限,但在分配权限的步骤中,“预订”和“预订预约”的权限仅存在于委派权限中(您的应用程序需要使用登录用户访问 API)而不是在应用程序权限中(您的应用程序在没有登录用户的情况下作为后台服务或守护程序运行)。

如果没有此权限,我将无法使用 grant_type 作为 client_credentials 访问预订 API。使用已登录用户的问题是该用户启用了 MFA,因此无法使用 grant_type 作为密码访问 API。

谁能帮忙解决这个问题?提前致谢。

【问题讨论】:

  • Microsoft Bookings 不支持应用程序权限,只能使用委派权限,所以用户必须登录。您是否尝试过使用auth code flow? docs.microsoft.com/en-us/azure/active-directory/develop/…
  • 感谢@CarlZhao 提供的信息。不,我没试过。那么,如果用户需要 MFA,我们可以使用身份验证代码流访问令牌吗?目前,我正在使用 HttpClient 检索访问令牌并使用它来构建 GraphServiceClient 对象。为用户启用 MFA 后,API 调用失败,错误描述为“error_description”:“AADSTS50076:由于管理员进行了配置更改,或者因为您移动到了新位置,您必须使用多重身份验证来访问“
  • 是的,身份验证代码流允许具有多重身份验证的用户登录应用程序。

标签: c# azure-active-directory microsoft-graph-api microsoft-graph-sdks microsoft-graph-booking


【解决方案1】:

Microsoft Bookings 不支持应用程序权限,只能使用委派权限,因此用户必须登录。

如果为用户启用 MFA,则无法使用 ROPC 流。对于您的问题,我建议您使用auth code flow,它允许具有多重身份验证的用户登录应用程序。

【讨论】:

  • 非常感谢您的帮助。我是 Graph API 的新手,如果您可以为此授权代码流提供使用 C# 的代码示例的任何参考,那将非常有帮助。
  • @SnehaDominic 这对您有帮助吗? github.com/Azure-Samples/…
  • 对给定的代码示例有疑问。运行应用程序后需要用户登录体验。我们被要求使用个人/工作帐户登录。 [github.com/Azure-Samples/… 在我的要求中,这些 API 被公开以供其他应用程序使用。那么,在这些情况下,我们如何促进用户登录体验呢?这可能吗?
  • @SnehaDominic 用户登录体验如何?你能解释一下吗?
  • 通过用户登录体验,我的意思是,当我们运行应用程序时,第一步提到登录到微软帐户。所以登录窗口显示在浏览器中,如果需要,我们需要在其中提供用户名、密码和 MFA 并登录。在生成该代码之后,然后将其用于获取访问令牌。在我的例子中,使用 Graph API 调用的 API 被公开,并被另一个移动应用程序使用。那么,当进行 API 调用时,我们如何促进这种用户交互以登录 Microsoft 帐户?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
相关资源
最近更新 更多