基于SAML集成Microsoft Azure SSO时未返回预期用户属性问题咨询
缺失配置排查步骤
- Azure AD端声明配置调整
Azure AD默认不会返回姓名、邮箱等用户属性,需要手动配置映射:进入你创建的企业应用 → 单点登录配置页 → 找到「用户属性和声明」模块点击编辑,按需添加你需要的字段映射,比如名映射到user.givenname、姓映射到user.surname、邮箱映射到user.mail。
额外提示:添加声明时可以将「命名空间」输入框留空,返回的声明键名会和你设置的名称完全一致,无需修改OneLogin PHP库原本适配Google SSO的取值逻辑。 - 检查用户分配与属性值完整性
确认当前测试登录的用户已经被分配到该企业应用下,且用户在Azure AD中的对应属性(比如邮箱、姓名)已经填写了有效值,属性为空的声明会被Azure自动省略不返回。 - OneLogin PHP库配置校验
确认库配置中strict参数没有开启,开启严格模式后未被加入白名单的属性会被直接过滤。你也可以临时开启库的debug模式,打印原始SAML Response XML,即可快速判断属性是Azure未返回,还是被本地库过滤。
你之前使用的NameID格式urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress是符合Azure要求的,该配置无需调整。
内容的提问来源于stack exchange,提问作者Derrick C.
相关产品推荐
相关产品推荐

