AWS Cognito用户池集成Sign in with Apple时Email、Name属性映射缺失原因咨询
问题原因分析
核心原因1:登录方式导致Email属性被绑定为登录标识符
用户池1选择邮箱作为登录用户名,此时用户池的Email属性被系统设定为“登录标识字段”,而非普通用户属性。集成Sign in with Apple时,Cognito会自动将Apple返回的Email字段映射到这个登录标识字段,因此它不会出现在常规的“属性映射”列表中——因为该映射关系已由系统默认绑定,无需手动配置。
核心原因2:强制MFA的安全策略限制
用户池1开启了强制MFA,在第三方身份提供商(如Apple)的首次登录流程中,Cognito会优先要求用户完成MFA验证。Apple返回的Name属性属于非核心身份信息,出于安全考量,Cognito会在用户完成MFA验证前,隐藏这类属性的映射配置选项,避免在身份验证未完全完成的情况下同步非必要的个人信息。
对比用户池2的差异验证
用户池2使用用户名作为登录方式,Email只是必填的普通用户属性而非登录标识,因此Apple返回的Email可以正常显示在属性映射列表中;同时MFA为可选,Cognito无需强制提前验证MFA,因此Name属性的映射选项也能正常展示。
内容的提问来源于stack exchange,提问作者Bemagoni Chandrashekar
相关产品推荐
相关产品推荐

