Как узнать, что вызывает внутреннюю ошибку сервера Azure B2C 500? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь добавить шаги оркестровки в мою поездку пользователя 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 - внутренние ошибки сервера?

1 Ответ

0 голосов
/ 10 февраля 2019

ContentDefinition : Технический профиль SelfAssertedAttributeProvider должен иметь ContentDefinition, указанное в разделе Metadata.Чего не хватает в вашем техническом профиле.

OutputClaims :

В техническом профиле нет ValidationTechnicalProfile Step1.Это может потенциально быть проблемой.Поскольку это OutputClaims, политика должна указывать способ создания значения для каждого из них (даже если во время выполнения оно может не создаваться).Таким образом, OutputClaim должен иметь одно из трех:

  1. Укажите DefaultValue, который гарантирует, что он будет иметь это значение после вызова TechnicalProfile.
  2. Укажите UserInputType в ClaimType в разделе ClaimsSchema, который указывает, что есть способ получить это значение от пользователя.
  3. Укажите его как OutputClaim из ValidationTechnicalProfile, что позволит другому провайдеру получить такое значение (например, из AD Graph или Rest API).

CryptographicKeys : SelfAssertedAttributeProvider TechnicalProfile также требуется *Раздел 1039 *, в котором указан ключ, используемый поставщиком.

Я бы порекомендовал скопировать технический профиль из Starter Packs Github и изменить его, так как он будет содержать все необходимые элементы.

(Тот факт, что служба возвращает 500, является ошибкой, и ее необходимо исправить.)

...