Azure B2C本地用户issuerAssignedId 64字符限制解决方案问询
解决Azure B2C本地用户长邮箱字符限制的可行方案
方案1:切换signInType为userName
把signInType设为userName,此时issuerAssignedId可以用邮箱的用户名部分(如果用户名仍超长,甚至可以生成自定义短ID,比如用户ID缩写、随机字符串),同时将完整长邮箱存储在用户的email属性或自定义扩展属性里。这样既避开emailAddress类型下的64字符限制,又能保留完整邮箱信息,用户登录时使用设置的userName即可。
方案2:对长邮箱生成哈希值作为issuerAssignedId
如果必须保留signInType为emailAddress,可以对完整长邮箱生成唯一哈希值(比如SHA-256),截取前64个字符作为issuerAssignedId,同时将原始长邮箱存储在自定义扩展属性中。需注意确保哈希值的唯一性,避免不同邮箱生成重复前缀。这种方式下,系统通过哈希值识别用户,你可通过扩展属性获取完整邮箱。
关于联合身份拆分方法失败的原因
联合身份类型适用于外部身份提供商(如Google、Facebook),本地用户的身份类型属于localAccount,对应的issuer必须是你的Azure B2C租户域名,不能随意设置为邮箱域名,所以这种拆分方式不适用于本地用户场景。
内容的提问来源于stack exchange,提问作者Kieron MK
相关产品推荐
相关产品推荐

