我的用例是我想在TP AAD-UserReadUsingEmailAddress上引发错误。
我尝试使用“ UserMessageIfClaimsTransformationBooleanValueIsNotEqual”。没用
阅读文档时,该文档必须来自自声明的TP,而AAD-UserReadUsingEmailAddress则不是。
另一种方法是使用“ RaiseErrorIfClaimsPrincipalDoesNotExist”或“ RaiseErrorIfClaimsPrincipalAlreadyExists”之类的东西,如果声明存在或不存在,则会引发错误。
但是,如果声明不等于某个值,我想抛出类似“ RaiseErrorIfBooleanValueIsNotEqual”的错误。该声明将始终存在。
有没有办法做到这一点?
更新
我的用户之旅的第一要素是:
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ReadEmailAddress" TechnicalProfileReferenceId="AAD-UserReadUsingEmailAddress" />
</ClaimsExchanges>
</OrchestrationStep>
答案 0 :(得分:1)
这可以使用the AssertBooleanClaimIsEqualToValue claims transformation来实现。
<ClaimsTransformation Id="AssertTheClaimIsEqualToTheValue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="your-claim-id" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="valueToCompareTo" DataType="boolean" Value="[true|false]" />
</InputParameters>
</ClaimsTransformation>
<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertTheClaimIsEqualToTheValue" />
</OutputClaimsTransformations>
</TechnicalProfile>
如果索赔值不等于期望值,那么将引发异常。
调用AAD-UserReadUsingEmailAddress技术概要文件的自声明技术概要文件可以使用 UserMessageIfClaimsTransformationBooleanValueIsNotEqual 显示针对此异常的错误消息。