【发布时间】:2019-04-08 00:33:54
【问题描述】:
我正在尝试从一组电子邮件地址(存储在 otherEmails 属性中)中提取单个电子邮件地址。我想我可以使用GetSingleValueFromJsonArray 声明转换。但是,我收到以下错误:
ClaimsTransformation 中的 InputClaims 与 id 不匹配 带有 TransformationMethod 的“GetEmailFromJson” “GetSingleValueFromJsonArray”。声明了以下 InputClaims 在策略中但不是 TransformMethod 所期望的: [StringCollection]inputJsonClaim。以下 InputClaims 是 TransformMethod 预期但未在 Policy 中声明: [字符串]inputJsonClaim。
它抱怨我的输入是字符串的集合——它就是这样。该错误表示它需要一个“字符串”作为输入。该文档还声明它需要一个字符串。但是,顾名思义,我很困惑这应该如何与数组一起使用。
本质上,我只想在使用 OpenID Connect 时返回 id_token 中的电子邮件地址。但是对于 B2C,我似乎无法设置邮件字段,并且当我查询它时它为空。所以,我开始使用 otherEmails 字段。但我真的只打算在其中存储一封电子邮件。因此,我想将电子邮件声明作为单值声明返回,而不是数组。
更新
经过一番挖掘,我意识到我可以在不使用 ClaimsTransformation 的情况下实现我的目标。我可以将“signInNames.emailAddress”映射到“email”。
<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email"/>
【问题讨论】:
标签: azure transformation azure-ad-b2c