出现这个问题的原因是在B2C自定义策略中拷贝用户声明(CopyClaim)时,无法正确地将值复制到'SignInName'属性中。为解决这个问题,需要在B2C自定义策略文件中添加以下代码段:
其中,claimsTransformation元素的id属性应该具有唯一性,且需要与在UserJourney中的相应操作相对应。这里以“CopySignInNameClaim”为例。
这会将B2C中的objectId声明中的值复制到signInName声明中。在UserJourney中调用它(例如从B2C登录流程)时,可以使用以下代码:
此代码将在AAD-UserReadUsingObjectId技术配置文件中调用CopySignInNameClaim声明转换,生成包含对象ID下载的名称值对。现在,SignInName属性中将有该名称。
需要注意的是,复制属性时的claimTypeReferenceId需要与相应技术配置文件中的声明引用ID相匹配。