microsoft-teams - 具有 Azure 身份验证的自定义 Teams 应用在 Teams 桌面应用中不起作用
问题描述
我们有一些受 Azure 保护的网页。我创建了一个自定义 Teams 应用程序包来显示 Teams 中的一个网页。我们希望该应用可以在浏览器和 Teams 桌面应用中运行。将包上传到 Teams 应用目录并将应用添加到“频道”选项卡后,我可以在浏览器中查看我的网页而没有任何问题。但是,如果我使用 Teams 桌面应用程序,该选项卡只会显示一个空白页。错误提示“login.microsoftonline.com”无法在 iframe 中显示。
我的网页受 Azure 保护,因此用户在访问该页面时将被重定向到 Azure 登录页面 (login.microsoftonline.com) 以登录。在浏览器中,该页面将使用当前用户的会话自动登录,因为用户已登录 Microsoft Teams。但是,在 Teams 桌面应用程序中,该页面无法从桌面应用程序获取会话,它会将用户重定向到不支持 iFrame 的 Azure 登录页面。
我知道自定义 Teams 应用在 iframe 中显示其内容。但是,无法在 iframe 中显示 Azure 登录页面。如果自定义应用的内容页面受 Azure 保护,则 Teams 桌面应用根本无法使用它。
我花了很长时间,但找不到解决方案。有什么建议吗?
提前致谢。
解决方案
我遇到了与这篇文章相同的问题。团队选项卡在浏览器上运行没有问题;但是,当打开我们的选项卡时,它会在桌面团队应用程序中显示身份验证错误。错误是:
Error: in auth twana.daniel@email.com InteractionRequiredAuthError: Trace ID: b38d5d36-e582-41af-b354-b4f9ec607e00 Correlation ID: e09d4267-3af7-4f95-98f8-4c01a3f71e9d Timestamp: 2020-11-19 11:12:52Z
不过,更奇怪的是,Teams 选项卡确实可以在我们的一台 Ubuntu 计算机上运行,但不能在 Mac 或 Windows 团队应用程序上运行。那么,这可能是什么原因呢?
我们正在使用 MSAL 库并获取静默令牌,在桌面版本中,当我们尝试获取静默令牌时它会显示错误。
推荐阅读
- selenium - Serenity BDD / Selenium 测试工作 6 出 10
- javascript - iOS 中的 Expo 计步器有问题,有变化吗?
- python - 使用 pybind11 在 python 中使用 C++ 对象
- docker - 通过jenkins在kubernetes上部署docker镜像的问题
- angular - Edge、IE 和旧版浏览器中的 ViewEncapsulation.ShadowDom 支持
- javascript - 在 WordPress 中调用按钮功能
- keras - 有没有办法在 keras 中合并具有不同样本/批量大小的图层以及关于合并图层的问题
- codeigniter - 如何在不加载视图的情况下将数组从控制器发送到视图
- actions-on-google - 数字交易问题 | Google 是否保证其工作正常才能获得批准?
- angularjs - 选项标记中的值属性始终返回字符串而不是 angularJS 视图中的数字