微软团队 | OAuth2 |身份验证.authenticate() |没有收到提供的 URL 的提示

问题描述 投票:0回答:1

我在 MS Teams 中有一个可配置选项卡。 为了访问图形 API,使用 Microsoft 的 OAuth2 身份验证。
单击按钮时,要求用户授予所需范围的权限。

当前使用 URL https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-url}&response_mode=query&scope=User.Read 电子邮件openid配置文件offline_access User.ReadBasic.All Presence.Read.All&state=获取用户的权限。

我使用 Window.open() 打开上述 URL。

现在,要求是在 MS 团队应用程序内打开身份验证窗口。

为了实现这个目标,我尝试过

  1. getAuthToken() 方法获取用户权限,但无法获取所有需要授予的范围的权限。它只是获得基本用户详细信息范围的访问权限。
  2. 根据在 Microsoft Teams 选项卡中打开 URL 中的评论,尝试使用 team.microsoft.com/l/entity{TeamsAppId}/{TeamsTabId}?msLaunch=true&enableMobilePage=true&suppressPrompt=true&webUrl=google.com URL 打开网址在团队中,但没有成功
  3. 在authentication.authenticate()方法的帮助下,当我在浏览器中打开团队但不在应用程序中工作时,我可以获得授予权限的弹出窗口

我可以获得工作示例代码吗?如何使用 Microsoft 同意窗口从 MS 团队可配置选项卡应用程序内的用户获得许可?

reactjs oauth-2.0 microsoft-graph-api microsoft-teams
1个回答
0
投票

多年来,Teams 选项卡中的 SSO 处理已经改进了很多,这当然是个好消息,但这意味着代码示例和指南也发生了变化,导致许多过时的示例,就像您提出的问题一样参考。例如,您不应该自己调用端点 - Teams 库将为您处理此问题。我建议参考最新的文档,其中包括 C# 和 Node.js 示例。以下是一些起点:https://learn.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overviewhttps://learn.microsoft.com /en-us/microsoftteams/platform/tabs/how-to/authentication/tab-sso-code 如果您偶尔使用 React,甚至还有一组适用于 MSAL 的 React 控件,使这变得更加容易 - 请参阅

https://www.npmjs.com/package/@azure/msal-react

© www.soinside.com 2019 - 2024. All rights reserved.