我正在构建一个自定义移动应用程序,它有一个客户端、自定义后端服务器(我正在构建)并与许多其他 api 交互。这些 api 之一是 Microsoft 预订。
我面临的问题是我需要通过服务器到服务器进行身份验证,并使用共享的客户端密码。我知道来自 MS 的众多文档,但尚未找到解决方案。我想知道服务器到服务器是否甚至可以使用 Bookings。
我能够获得具有这些权限的 access_token 服务器到服务器。(我已经在 Azure AD 中授予此应用程序的“所有权限”)。
"roles": [
"Calls.JoinGroupCall.All",
"OnlineMeetings.Read.All",
"OnlineMeetings.ReadWrite.All",
"Application.ReadWrite.OwnedBy",
"Calendars.Read",
"People.Read.All",
"Application.ReadWrite.All",
"Calls.InitiateGroupCall.All",
"Directory.ReadWrite.All",
"Calls.JoinGroupCallAsGuest.All",
"Sites.Read.All",
"Sites.ReadWrite.All",
"Sites.Manage.All",
"Files.ReadWrite.All",
"Directory.Read.All",
"User.Read.All",
"Calendars.ReadWrite",
"Mail.Send",
"ProgramControl.Read.All",
"ProgramControl.ReadWrite.All",
"Calls.Initiate.All"
],
这些是来自解码令牌的权限。当我去调用 Bookings api 时,我收到 401。
但是,我可以使用此令牌访问不同的图形端点没有问题。
我会注意到,我可以使用我的帐户通过 Graph Explorer 成功调用 bookings api,这与“Azure AD 中的应用程序”无关。
Azure AD 中的此资源是否需要预订许可证?这甚至可能是 S2S 吗?
有没有其他方法可以在没有用户凭据的情况下绕过它?
谢谢。