从测试来看,验证技术配置文件仅在添加到 SelfAssserted 技术配置文件时才会使用
例如以下内容:
<TechnicalProfile Id="ExternalIDP">
<DisplayName>Some External IdP</DisplayName>
<Protocol Name="OpenIdConnect" />
<Metadata>
<!-- ... -->
</Metadata>
<OutputClaims>
<!-- ... -->
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="FETCH-MORE-CLAIMS" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
似乎没有调用FETCH-MORE-CLAIMS
向外部身份提供商进行身份验证后的配置文件。
这是正确的吗?如果是,是否有另一种方法可以在调用特定技术配置文件时始终强制调用第二个技术配置文件?
一种可能的方法是设置一个输出声明来指示已完成,然后在该声明上设置一个条件进行编排步骤,然后将您的 TP 作为声明交换运行。
所以输出声明如下:
<OutputClaim ClaimTypeReferenceId="idp" DefaultValue="ThisIdp" AlwaysUseDefaultValue="true" />
如果尚未定义该声明,则您需要定义该声明,或者您可以使用已有的另一个声明。
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="false">
<Value>idp</Value>
<Value>ThisIdp</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="FetchMoreClaimsExchange" TechnicalProfileReferenceId="FETCH-MORE-CLAIMS" />
</ClaimsExchanges>
</OrchestrationStep>
如果 idp != ThisIdp,则会跳过此编排步骤,因此仅当使用外部 idp 时才会运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)