Ошибка проверки пользовательской политики
Используя пользовательские политики AADB2C Identity Experience Framework, я пытаюсь создать UserJourney, который позволяет нескольким социальным провайдерам, а также местным провайдерам, но разрешает только вход, а не регистрацию. Когда я загружаю файл TrustFrameworkExtensions, содержащий UserJourney, загрузка завершается с ошибкой:
Невозможно загрузить политику. Причина: проверка не удалась: 2 ошибки проверки обнаружены в политике "B2C_1A_TRUSTFRAMEWORKEXTENSIONS" арендатора "mytenant.onmicrosoft.com". mytenant.onmicrosoft.com ", но он не был найден. Ссылка на ClaimsExchange с идентификатором"SignInWithLogonNameExchange"указана в UserJourney с идентификатором"SignInAny"в политике"B2C_1A_TrustFrameworkExtensions"арендатора"MBHB2C.onmicrosoft.com", но не найдена.
Первая часть UserJourney, которая, я думаю, содержит весь соответствующий контент:
<UserJourney Id="SignInAny">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="KDEWebAppTestExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="MSAExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="SignInWithLogonNameExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Check if the user has selected to sign in using one of the social providers -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="KDEWebAppTestExchange" TechnicalProfileReferenceId="KDEWebAppTestProfile" />
<ClaimsExchange Id="MSAExchange" TechnicalProfileReferenceId="MSA-OIDC" />
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
</ClaimsExchanges>
</OrchestrationStep>
...
</UserJourney>
</OrchestrationSteps>
Я не понимаю, что на самом деле не было найдено.
Предложения?
Спасибо!
Мартин
1 ответ
В основном в OrchestrationStep
с Order
1, у вас есть следующая строка:
<ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" />
TargetClaimsExchangeId
это ссылка на ClaimsExchange
элемент в следующем OrchestrationStep
, Однако в следующем шаге у вас нет строки, аналогичной этой Id
установлен в SignInWithLogonNameExchange
,
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
Поэтому IEF не знает, что делать (например, какой технический профиль использовать), когда пользователь нажимает кнопку, соответствующую этому ClaimsProviderSelection
,