如何无缝更改应用注册的Application ID URI域名适配Teams应用?
Teams应用域名迁移的无缝认证方案
问题背景
- 现有Teams应用标签页指向Domain A,通过
microsoftTeams.authentication.authenticate和microsoftTeams.authentication.getAuthToken()接口实现用户认证,manifest.json配置关联Entra平台的应用注册。 - 计划将应用认证流程的承载域名迁移至Domain B,但必须同步更新Entra应用注册中「应用注册->[应用名称]->公开API」板块的Application ID URI为Domain B,否则浏览器控制台会抛出错误:
"App resource defined in manifest and iframe origin do not match." - 直接修改Application ID URI会导致使用Domain A的现有用户认证失效,且需等待Teams manifest提交微软审核通过后才能恢复,这段时间应用无法正常访问。
- 无法切换至新的应用注册(现有用户已向当前应用注册授予权限),且Entra仅支持设置单个主Application ID URI,无法直接配置多个有效值。
可行的无缝迁移方案
1. 分阶段双标签页过渡
- 在Domain B完成应用部署,同时保持Domain A的服务正常运行。
- 在Entra应用注册的「认证」板块,将Domain B的重定向URI添加到现有配置中(Entra支持多个重定向URI)。
- 修改Teams应用manifest,新增一个指向Domain B的标签页,同时保留原Domain A的标签页,提交审核。
- 审核通过后,引导用户逐步切换至新标签页,此阶段原标签页仍可正常使用,因为Application ID URI仍为Domain A。
2. 窗口期切换主URI
当大部分用户已切换至Domain B标签页后,执行以下操作:
- 更新Entra应用注册的Application ID URI为Domain B。
- 立即更新Teams应用manifest,移除Domain A的标签页,仅保留Domain B的标签页并提交审核。
- 若少数未切换用户出现认证错误,可临时引导他们切换新标签页,或在影响范围较大时临时回滚Application ID URI,待manifest审核通过后再完成切换。
3. 应用标识符URI别名辅助(需提前测试)
虽然Entra仅支持一个主Application ID URI,但可在「公开API」->「应用标识符URI」中添加Domain B的URI作为别名:
- 先添加Domain B的URI为应用别名,验证Teams认证机制是否能识别该别名。
- 验证通过后,修改Teams manifest的标签页为Domain B并提交审核。
- 审核通过后,将主Application ID URI切换为Domain B,最后移除Domain A的别名。
结论
无需永久绑定原域名,通过分阶段过渡、配置重定向URI及应用别名的组合方式,可实现域名的无缝迁移,核心是缩短新旧域名的冲突窗口期,同时引导用户逐步完成切换。
内容的提问来源于stack exchange,提问作者JustAnotherDev
相关产品推荐
相关产品推荐

