【发布时间】:2023-01-25 02:48:53
【问题描述】:
我有一个 id_token_hint,我正在从中读取扩展属性以检查该角色是否为管理员,如果是则不发布(跳过)令牌。
要检查用户是否是管理员,我正在执行以下操作
<ClaimType Id="isAdmin">
<DisplayName>Verify if user is Admin User</DisplayName>
<DataType>boolean</DataType>
<UserHelpText>Verify if user is Admin UserisAdmin</UserHelpText>
</ClaimType>
声明转换
<ClaimsTransformation Id="isAdminUser" TransformationMethod="CompareClaimToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_role" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="compareTo" DataType="string" Value="Admin" />
<InputParameter Id="operator" DataType="string" Value="equal" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
用户旅程
<OrchestrationStep Order="5" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>isAdminUser</Value>
<Value>False</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AdminUserNotAllowed" TechnicalProfileReferenceId="AdminUserNotAllowed" />
</ClaimsExchanges>
</OrchestrationStep>
问题是此条件对所有用户(以及非管理员)都返回 true。
【问题讨论】:
标签: azure-active-directory azure-ad-b2c azure-ad-b2c-custom-policy