OneLogin Portal iOS应用未发送Domain Redirect URI问题咨询
OneLogin自定义OIDC连接移动端适配方案
需调整的配置项
当前配置仅适配网页端场景,要兼容OneLogin Portal移动端应用,按以下顺序调整即可:
- 在应用SSO标签页的Advanced Settings区域,开启
Native App SSO Compatibility开关,无需修改原有Web类型与POST认证方法的配置;如果是旧版OneLogin后台无该开关,直接新增一条Application Type为Native/Mobile的同应用配置,回调地址与原有Web配置保持一致。 - 废弃从
Referer(你日志中记录的Referral为拼写误差,对应标准HTTP头为Referer)头读取Domain Redirect URI的逻辑,改为两种合规方式获取该信息:- 在自定义连接的Claim配置中新增自定义字段,将用户所属OneLogin租户域名写入ID Token的返回声明,服务端解析Token即可拿到对应值
- 从OIDC授权请求的固定参数
iss(发行方标识)中直接提取域名信息,该参数在所有端的OIDC流程中都会强制携带,不会随端类型变化丢失
- 调整完成后在后台SSO测试工具中分别选择网页端、移动端Portal两个场景做验证,确认参数传递正常即可上线。
网页端与移动端OIDC流程逻辑差异原因
两端流程差异是底层实现机制不同导致的,和配置错误无关:
- 网页端SSO全流程运行在标准浏览器环境中,跨域跳转时浏览器会遵循HTTP规范自动携带
Referer请求头,因此服务端可以直接从请求头中拿到跳转来源域名。 - OneLogin移动端Portal是原生应用,发起SSO时不依赖浏览器内核完成全链路跳转:初始授权请求由原生App内置的HTTP客户端构造,原生客户端默认不会主动添加
Referer头;同时安卓12+、iOS14+的系统隐私规则会强制拦截WebView跨域场景下的Referer头透传,防止用户租户信息被第三方违规采集,因此服务端无法从请求头拿到对应值。
不要通过强制修改移动端请求头的方式适配,该方案会触发OneLogin的移动端安全校验规则,导致SSO流程被拦截。
内容的提问来源于stack exchange,提问作者Max Teibel
相关产品推荐
相关产品推荐

