我目前正在修改 HRD 政策以满足我们的需求。我有一个声明“domainParameter”,其中包含用户登录的电子邮件域部分。我正在使用 LookupValue 的转换来映射不同的域。我们有多个组将使用我们的策略,其中一些组有多个域,他们的用户可能会注册。所以我们的查找显示如下:
<ClaimTransformation Id="GroupLookup" TransformationMethod="LookupValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="domainParameter" TransformationClaimType="inputParameterId" />
</InputClaims>
<InputParameters>
<InputParameter Id="company1.domain1" DataType="string" Value="company1" />
<InputParameter Id="company1.domain2" DataType="string" Value="company1" />
<InputParameter Id="company2.domain1" DataType="string" Value="company2" />
<InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainGroup" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
当域是列出的域之一时,这显然很有效,但是我们也希望允许本地帐户注册/登录并将它们分组到一个名为“本地”的组中,尽管名称并不重要。据我所知,如果查找失败,我想不出任何方法将声明分配给特定值。通过更改该参数,我可以在查找时出错,但是让它分配一个值,我认为没有办法这样做。我已经尝试将“domainGroup”上的 DefaultValue 属性作为 InputClaim 和 OutputClaim,但都不起作用。我在 LookupValue 中也没有看到通配符选择器的选项。
有谁知道如何完成这项工作?我已经搜索了几天的文档,还没有找到任何有价值的东西。