如何设置带参数的Azure AD重定向URI 适配多PR测试部署场景
Azure AD PR预览环境重定向URI问题解答
问题1:未提前配置的PR预览地址能否直接作为重定向URI
不能,这是Azure AD内置的安全机制,所有重定向URI必须预先在应用注册中显式登记,防止授权凭证被劫持到恶意域名。不存在绕过该规则直接重定向到未录入地址的方案,只能通过变通方式实现自动适配。
问题2:通配符重定向URI是否可用
Azure AD目前完全不支持SPA类型应用的通配符重定向URI配置,你尝试提交https://xxxxx.pr*.yyyy.io这类带通配符的地址会直接被系统拦截报错,不存在多PR地址的匹配逻辑,该方案不可行。
问题3:保留现有CICD策略的可行方案
你不需要调整现有Git PR驱动预览部署的流程,有两个成熟方案可以落地:
- 方案1:CICD自动维护重定向URI列表
在现有PR部署流水线中新增两个步骤,通过Microsoft Graph API自动管理重定向URI:- PR创建触发部署时,调用Graph API将本次PR对应的
https://xxxxx.{prId}.yyyy.io添加到Azure AD应用注册的SPA重定向URI数组中 - PR合并/关闭时,调用Graph API将对应PR的地址从重定向URI列表中删除
权限配置:给CICD服务账号授予应用注册的Application.ReadWrite.OwnedBy应用权限即可完成操作。该方案无需修改应用代码,对现有流程侵入性极低。
- PR创建触发部署时,调用Graph API将本次PR对应的
- 方案2:固定中转地址跳转
预先配置一个固定的重定向URI(比如https://xxxxx.gateway.yyyy.io/redirect),所有PR预览环境的登录请求都使用该固定地址作为重定向URI,同时在Azure AD要求的state参数中携带当前PR预览环境的真实域名。用户登录完成后,Azure AD会跳转到中转地址,中转页读取state参数中的真实地址,将授权凭证一并转发到对应PR预览环境即可。
注意事项:中转页需要增加域名白名校验,仅允许转发到*.yyyy.io后缀的地址,避免跳转滥用。该方案没有PR数量限制,适合PR创建频率极高的场景。
选型建议
若单租户下同时存在的活跃PR数量不超过256个(Azure AD单应用注册SPA重定向URI上限),优先选择方案1;若PR数量超出限制,选择方案2即可。
内容的提问来源于stack exchange,提问作者leonsPAPA
相关产品推荐
相关产品推荐

