我有一个托管在 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/