3

我正在尝试向我的 Azure B2C IEF 用户旅程添加编排步骤,但是,当我进行更改时,我经常会收到错误:“500 - 内部服务器错误”

我曾尝试使用 Application Insights,但这并没有告诉您与错误 500 相关的任何信息。

这是我的技术资料

    <TechnicalProfile Id="Step1">
      <DisplayName>Step 1</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Email" Required="true"/>
        <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
        <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
      </OutputClaims>
    </TechnicalProfile>

这是我的用户旅程步骤

    <OrchestrationStep Order="3" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="Step1" />
      </ClaimsExchanges>
    </OrchestrationStep>

有没有办法找出导致这些 500 - 内部服务器错误的原因?

4

1 回答 1

3

ContentDefinitionSelfAssertedAttributeProvider技术配置文件必须ContentDefinition在部分中指定Metadata。您的技术资料中缺少这一点。

输出声明

ValidationTechnicalProfile技术简介中没有Step1。这可能一个问题。由于这些是OutputClaims,因此策略必须指定一种方法来为其中的每一个创建一个值(即使在运行时它可能实际上并没有被创建)。因此,OutputClaim必须具有以下三个之一:

  1. 指定 a ,以保证在调用DefaultValue后它将具有该值。TechnicalProfile
  2. UserInputTypeClaimType下面的部分中指定 a ClaimsSchema,这表明有一种方法可以从用户那里检索该值。
  3. 将其指定为 aOutputClaim中的一个ValidationTechnicalProfile,这将允许另一个提供者检索这样的值(例如,从 AD Graph 或 Rest API)。

CryptographicKeysSelfAssertedAttributeProvider TechnicalProfile还需要一个CryptographicKeys指定提供者使用的密钥的部分。

我建议从Starter Packs Github 复制一份技术配置文件并对其进行修改,因为它们将包含所有必需的元素。

(服务返回 500 的事实是一个错误,需要修复。)

于 2019-02-10T07:18:54.580 回答