寻求将两个带SSO的自定义Teams应用合并到同一清单的解决方案
解决两个跨域名SSO Teams应用整合到同一清单的方案
方法一:单一Azure AD应用注册配置多资源URI
- 在Azure AD中创建或复用一个应用注册,进入「公开 API」页面,添加两个资源URI:
api://我方域名/统一ClientIdapi://第三方域名/统一ClientId
- 更新Teams应用清单的
webApplicationInfo,填入这个统一的ClientId,resource字段可选择任意一个域名(比如我方域名) - 要求第三方应用调整SSO配置,将认证请求的资源URI改为上述列表中对应的第三方域名资源URI
- 双方应用的SSO流程均使用这个统一的ClientId,Azure AD会认可两个合法的资源URI,避免origin不匹配错误
方法二:应用嵌套实现独立SSO
- 选择其中一个应用作为主应用,配置其
webApplicationInfo为对应域名 - 将另一个应用以iframe形式嵌套到主应用的Tab页面中
- 为嵌套应用配置CORS规则,允许主应用域名的访问请求
- 嵌套应用的SSO独立处理:要么通过主应用传递已获取的令牌,要么直接使用自身的Azure AD应用注册发起SSO请求(此时主清单的
webApplicationInfo不会干扰嵌套应用的认证流程)
方法三:Azure AD应用代理统一访问域名
- 部署Azure AD应用代理,将第三方应用的域名映射到我方域名下的专属路径(例如
https://我方域名/third-party-app) - 双方应用都通过这个代理域名对外提供服务
- Teams清单的
webApplicationInfo直接指向我方域名,此时两个应用的iframe origin都匹配代理域名,不会触发错误 - 确保应用代理配置正确的身份传递规则,保证用户身份能正常同步到第三方应用
内容的提问来源于stack exchange,提问作者Clownish Carnage
相关产品推荐
相关产品推荐

