Azure ad b2c 确定是否已使用id\u令牌\u提示对用户进行身份验证
在我的一次用户旅行中,我实现了通过id_token_hint获取索赔。现在,我们要检查用户是否已在以后使用有效令牌进行了身份验证 我的想法是使用声明转换,如果子声明在Azure ad b2c 确定是否已使用id\u令牌\u提示对用户进行身份验证,azure-ad-b2c,Azure Ad B2c,在我的一次用户旅行中,我实现了通过id_token_hint获取索赔。现在,我们要检查用户是否已在以后使用有效令牌进行了身份验证 我的想法是使用声明转换,如果子声明在IdTokenHint\u ExtractClaims技术概要文件中成功提取,则将声明isTokenAuthentication设置为true 但是,当使用id_token_提示调用策略时,sub声明会添加到声明包中,但是缺少isTokenAuthentication 以下是我当前的步骤: 依赖方 <RelyingParty&
IdTokenHint\u ExtractClaims
技术概要文件中成功提取,则将声明isTokenAuthentication
设置为true
但是,当使用id_token_提示调用策略时,sub
声明会添加到声明包中,但是缺少isTokenAuthentication
以下是我当前的步骤:
依赖方
<RelyingParty>
<DefaultUserJourney ReferenceId="MyUserJourney" />
<!--Step 2: Add the following node immediately after the DefaultUserJourney element-->
<UserJourneyBehaviors>
<JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="{Settings:AppInsightsInstrumentationKey}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
<!-- <ScriptExecution>Allow</ScriptExecution> -->
</UserJourneyBehaviors>
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<InputClaims>
<InputClaim ClaimTypeReferenceId="sub" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="sub" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
保单简介
提取索赔资料
<TechnicalProfile Id="IdTokenHint_ExtractClaims">
<DisplayName> My ID Token Hint TechnicalProfile</DisplayName>
<Protocol Name="None" />
<Metadata>
<Item Key="METADATA">{Settings:id_token_hint_MetadataEndPoint}</Item>
<Item Key="issuer">{Settings:id_token_hint_Issuer}</Item>
</Metadata>
<OutputClaims>
<!--Read the subject cliam from the id_token_hint-->
<OutputClaim ClaimTypeReferenceId="sub"/>
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CheckIfSubPresent" />
</OutputClaimsTransformations>
</TechnicalProfile>
我的身份证提示技术档案
{Settings:id\u token\u hint\u MetadataEndPoint}
{设置:id\u令牌\u提示\u颁发者}
索赔信息
<ClaimsTransformation Id="CheckIfSubPresent" TransformationMethod="DoesClaimExist">
<InputClaims>
<InputClaim ClaimTypeReferenceId="sub" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isTokenAuthentication" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
你知道问题出在哪里吗?
如果用户使用有效的id\u token\u提示进入流,是否还有其他好方法可以确定?我不相信IdTokenHint\u ExtractClaims支持输出声明转换 您可以创建:
取消与Facebook的链接
然后将此索赔转换技术配置文件添加到用户旅程的IdTokenHint\u提取索赔后:
...
Hmm,您是否需要为isTokenAuthentication声明指定一个值?@juunas我已经尝试将其传递给依赖方(inputclaim的默认值为false),因此声明从一开始就存在,但是它看起来并没有因为声称的转变而改变。你有没有尝试过在用户旅程中使用Application Insights日志?使用VS代码的B2C扩展,您可以看到转换中发生了什么。是的,但我没有看到getclaims/IdTokenHint\u ExtractClaims步骤被记录。谢谢您的回答!今天早上我也有了这个想法,只是测试了一些类似的东西。工作完美:)