使用AWS Cognito与Azure AD时iOS端SSO功能异常排查
可能缺失的配置项
1. Azure AD 应用注册的跨场景会话共享配置
- 确保用于OIDC认证的Azure AD应用注册,同时包含iOS应用的重定向URI(类型选「公共客户端/本机」,格式如
your-app-scheme://callback),且该应用注册未设置强制重新登录的规则(比如用户设置中未开启「强制重新登录」)。 - 检查Azure AD应用注册的「单一登录」设置,确认已启用「允许跨应用单一登录」,会话持久化策略允许跨浏览器/应用上下文共享。
2. AWS Cognito 身份提供商的参数传递配置
- 检查Cognito中Azure AD作为OIDC提供商的配置,确保向Azure AD发起认证请求时,没有传递
prompt=login或max_age=0这类强制重新认证的参数。若Cognito默认添加了此类参数,需在「身份提供商设置」中自定义认证请求参数并移除。 - 确认Cognito的会话设置(如用户池会话超时、ID令牌过期时间)不会干扰Azure AD的会话持久化,Cognito仅作为认证代理,不应覆盖或清除Azure AD的会话Cookie。
3. iOS 应用的隐私与上下文配置
- 检查iOS设备的「设置」→「Safari浏览器」→「隐私与安全性」,确认**「防止跨网站跟踪」**处于关闭状态(开启状态会阻止第三方Cookie,导致Azure AD会话无法在应用的
ASWebAuthenticationSession和Safari间共享)。 - 确认iOS应用的
Info.plist中已正确配置ASWebAuthenticationSession的回调URL Scheme,且该Scheme已在Azure AD应用注册的重定向URI中完成注册。
4. Azure AD 的公共客户端流与Cookie设置
- 检查Azure AD应用注册的「认证」→「高级设置」,确认「允许公共客户端流」已开启(iOS应用属于公共客户端,需开启此选项才能正常持久化会话Cookie)。
- 确认Azure AD的会话Cookie未设置
SameSite=Strict这类限制跨上下文共享的属性,避免Cookie无法在应用和Safari间传递。
内容的提问来源于stack exchange,提问作者allanc
相关产品推荐
相关产品推荐

