嵌入 Microsoft Team 时的 Azure Web App 授权问题

标签 azure azure-active-directory azure-web-app-service microsoft-teams azure-webapps

我有一个托管在 Azure 上的 Web 应用程序,它利用/.auth/me、/.auth/refresh 和其他端点进行授权。一切都在独立环境中顺利运行。但是,当尝试将此 Web 应用程序作为个人应用程序集成到 Microsoft Teams 中时,我遇到了授权问题并伴有错误消息:

“拒绝在框架中显示“https://login.microsoftonline.com/”,因为它将“X-Frame-Options”设置为“拒绝”。”

我已尝试将该域添加到允许的域列表中,但这并没有解决问题。有什么解决办法吗?

例如代码片段/接收 accessToken、用户声明等:

/**
 * Retrieves user information from the server.
 *
 * @return {Promise<UserInfo[]>} An array of user information objects.
 */
export async function getUserInfo(): Promise<UserInfo[]> {
  const response = await fetch("/.auth/me");

  if (!response.ok) {
    console.log("No identity provider found. Access to chat will be blocked.");
    return [];
  }

  const payload = await response.json();
  return payload;
}

最佳答案

无法在 Teams 中启动您自己的身份验证弹出窗口 - 出于安全原因,您的选项卡是严格控制的 iframe。身份验证确实可以正常工作,但您必须使用标准 SSO 方法(假设您正在进行 365 登录)。请参阅https://learn.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overview

关于嵌入 Microsoft Team 时的 Azure Web App 授权问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77155034/

相关文章:

azure - 基于权限而不是基于角色

python - Dash/Flask Python 应用程序 Azure 部署 : Application object must be callable

azure - 通过 .lu 文件设置 'Make endpoints public' 应用程序设置

azure - 有没有办法以编程方式更新 Azure Function 插槽中的应用程序设置?

c# - 在 ASP.NET Core 2.0 中使用 Azure Active Directory 身份验证从 Web 应用程序到 Web API

angular - 我们可以在 angular 7 的 index.html 中添加 <div id ="api"></div> 吗?

angularjs - 将 yeoman Angular-fullstack 项目部署到 Azure

python - 将站点部署到 Azure 时出现 "OperationalError: database is locked"

Node.JS Redis 连接 Microsoft Azure Web App 中的 EADDRNOTAVAIL 错误

asp.net-mvc - 网站内的 Web 应用程序