无法在 MS Graph 平台中使用 Teams OnlineMeeting API 的工作帐户获取令牌

Unable to get Token with Work Account for Teams OnlineMeeting API within MS Graph platform

业务需求: 我们想用生产系统上的 Teams 会议替换我们的 Skype 会议 URL(在没有用户集成的 ABAP 守护程序服务中)。因此,我正在尝试使用 Microsoft Graph API 与 Teams 集成,以便能够生成一个在线会议。然后这个在线会议URL会发邮件给我们的客户

Target Graph API: For MS Graph API V1.0 verion, 我觉得只有一个选项Create onlineMeeting.( Graph API with /beta version 不是生产使用的好选择)。 根据 MS Graph 文档 V1.0 Create onlineMeeting,此 API 仅支持委托类型的权限。我认为我们只能使用 username/password 身份验证流程。如果我错了,请纠正我。

问题:我正在尝试使用 ROPC Microsoft identity platform and OAuth 2.0 Resource Owner Password Credentials 中描述的用户和密码获取令牌,使用以下 API 来测试它公司邮件。

POST /{{TennatId}}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
SdkVersion: postman-graph/v1.0
Content-Type: application/x-www-form-urlencoded

grant_type=password&client_id={{ClientId}}&client_secret={{ClientSecret}}&scope=https://graph.microsoft.com/onlineMeetings.ReadWrite&userName=MyCorporateMail@org.com&password=MyPassword

但是,它总是会得到 invalid_grant 响应:AADSTS50126:由于用户名或密码无效,验证凭证时出错。 我不知道为什么它无法通过我的公司(工作)mail/account **@sap.com 获得令牌响应,我确定我的密码和其他参数是正确的。

如果我使用由 Azure Active Directory 创建的 new-test-user sapse@wardsap.onmicrosoft.com,我将成功获得令牌。此用户登录 Azure 时不需要 Two-Step 身份验证。但此用户确实有 Teams/OnlineMeeting 许可证,因此无法生成 onlineMeeting。

我的问题:

  1. 是否可能是我组织的 MFA 配置引起的?因为我注意到每次登录 https://aad.portal.azure.com/ 时,它都有第二个身份验证步骤,请使用我的 Phone 消息进行验证。 如果是,是否可以永远禁用某些 test/dev 帐户的 MFA?我们应该在哪里配置它?在 MS Azure 或其他地方?我应该从谁那里获得支持?

  2. 对于这个 Create onlineMeeting API,对于 back-end 守护进程服务的这种委托权限类型,我们是否有其他身份验证流程?

感谢并致以最诚挚的问候, 病房

MFA 肯定会阻止您使用此身份验证流程。 不鼓励资源所有者密码凭证流程及其使用。 有很多更安全的流程,通常你可以使用像授权码流程这样的流程来实现你想要的。

MFA 由您的组织配置,您需要就此联系您的 IT。 但我不建议为此禁用 MFA。

后端守护程序应用程序需要使用应用程序权限或刷新令牌。 如果有问题的 API 不支持应用程序权限,您可以通过授权代码流为用户获取刷新令牌,安全地存储它,并在需要新令牌时使用它。 如果您这样做,请务必使用请求访问令牌时获得的新令牌覆盖旧的刷新令牌。