7

我正在尝试使用OAUTH-KV 声明解析器提取名为参数的值,该参数的值作为声明foo传递给 AAD B2C 自定义策略authorize端点,也名为foo.

foo ClaimType定义为

<ClaimType Id="foo">
  <DisplayName>Foo debug claim</DisplayName>
  <DataType>string</DataType>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

TechnicalProfile作为

<TechnicalProfile Id="LocalAccount-Register">
  <DisplayName>Register</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.localaccount.registration.prescribedfirm</Item>
    <Item Key="IpAddressClaimReferenceId">IpAddress</Item>
    <Item Key="language.button_continue">Create</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="foo" DefaultValue="{OAUTH-KV:foo}" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="foo" Required="true" />
  </OutputClaims>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

但是, 的值foo显示为{OAUTH-KV:foo}而不是传递的实际值。

我相信我已按照文档中的说明进行操作。

我还需要做些什么来完成这项工作吗?


编辑

与索赔解析器相关的文档已于 2019 年 1 月 25 日在此处https://docs.microsoft.com/en-us/azure/active-directory-b2c/claim-resolver-overview更新,根据该文档应该有效。

我无法让任何索赔解析器显示除标记之外的任何内容,即{Context:CorrelationId},{OIDC:LoginHint}等。

有谁知道是否需要任何魔法Metadata值来完成这项工作?

我确定我做错了什么,遗漏了一些东西,但我无法弄清楚是什么。

任何有用的指示都将受到欢迎。

4

2 回答 2

1

我知道已经晚了。在这里查看我的答案

您必须配置技术配置文件的元数据并设置输入声明的AlwaysUseDefaultValue属性。

于 2021-01-15T07:34:34.640 回答
1

声明解析器仅适用于特定的技术配置文件,即 REST API 和 SelfAsserted(在编排步骤中结合注册和登录内容定义)。它仅在文档中提供的示例中明确有效。

于 2019-07-29T15:09:14.960 回答