Azure企业应用SSO多Logout URL配置及请求传参问题咨询
Azure企业应用多实例SSO注销URL配置方案
1. 直接配置多个Logout URL的限制
Azure企业应用的SSO配置界面确实只支持填写一个全局Logout URL,没法直接添加多个不同域名的注销地址。
2. 通过请求参数传递注销目标的正确方法
你之前尝试的logoutUrl和destination参数不对,要根据你用的SSO协议来选正确参数:
- SAML协议场景:
应该用RelayState参数传递目标注销URL。步骤如下:- 先在Azure企业应用的SSO配置里,开启允许传递RelayState(部分SAML应用默认支持,若没找到可检查应用的SAML配置项)
- 发起注销请求时,将目标实例的注销URL做URL编码后,通过
RelayState参数携带 - 把所有实例的注销回调URL都添加到企业应用的已批准重定向URL列表中,Azure AD会验证这个地址的合法性,否则会拒绝跳转
- OIDC协议场景:
使用post_logout_redirect_uri参数。操作要点:- 将所有应用实例的注销回调URL添加到企业应用的前端注销URL列表里
- 发起注销请求时,携带编码后的目标URL作为
post_logout_redirect_uri的值
3. 替代方案:统一注销中间页
如果参数传递方式遇到限制,可以搭建一个统一的注销中间页面:
- 将Azure企业应用的Logout URL设置为这个中间页的地址
- 用户从某个应用实例发起注销时,先在本地会话记录该实例的域名,或者在注销请求里携带一个自定义标识(比如
?app=instance1) - Azure AD完成注销后跳转到中间页,中间页根据会话或自定义标识,再重定向到对应实例的注销完成页面
- 注意要把中间页的URL加入Azure的允许重定向列表,同时做好参数校验,防止恶意跳转
内容的提问来源于stack exchange,提问作者ZiggY
相关产品推荐
相关产品推荐

