Я пытаюсь реализовать поток, который позволяет пользователю выбирать один из нескольких вариантов проверки, используя <OrchestractionStop Type="ClaimsProviderSelection"...>
Мой поток работает должным образом, когда я указываю только один <ClaimsProviderSelection>
, но когда я указываю несколько <ClaimsProviderSelections>
, мой поток B2C вылетает из-за общего AADB2C: Возникло исключение. сообщение.
Как мне правильно указать нескольких поставщиков претензий?
Изменить: обновить
Похоже, это связано с тем, как я вхожу в систему пользователей на предыдущих этапах: если я запустил локальный вход в учетную запись и прочитал профиль AAD (из базовых политик) после моего собственного выбора поставщика утверждений, все будет работать, как ожидалось. Если я вообще не войду в систему, все также будет работать должным образом. Проблема возникает только в том случае, если я вхожу в систему перед шагом ClaimsProviderSelection
.
Изменить: подробности
Сбой происходит, когда выбор IDP должен быть представлен пользователю до фактического отображения выбора.
URI данных для определения содержимого api.idpselection
- urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0
.
Код:
Это работает:
<OrchestrationStep Order="3" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
<ClaimsProviderSelections DisplayOption="ShowSingleProvider">
<ClaimsProviderSelection TargetClaimsExchangeId="SelfAssertPassportVerification" />
</ClaimsProviderSelections>
</OrchestrationStep>
<OrchestrationStep Order="4" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="SelfAssertPassportVerification" TechnicalProfileReferenceId="Self-Assert-PassportVerification" />
</ClaimsExchanges>
</OrchestrationStep>
Это работает:
<OrchestrationStep Order="3" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
<ClaimsProviderSelections DisplayOption="ShowSingleProvider">
<ClaimsProviderSelection TargetClaimsExchangeId="SelfAssertDriversLicenseVerification" />
</ClaimsProviderSelections>
</OrchestrationStep>
<OrchestrationStep Order="4" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="SelfAssertDriversLicenseVerification" TechnicalProfileReferenceId="Self-Assert-DLVerification" />
</ClaimsExchanges>
</OrchestrationStep>
Это не работает:
<OrchestrationStep Order="3" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
<ClaimsProviderSelections DisplayOption="ShowSingleProvider">
<ClaimsProviderSelection TargetClaimsExchangeId="SelfAssertPassportVerification" />
<ClaimsProviderSelection TargetClaimsExchangeId="SelfAssertDriversLicenseVerification" />
</ClaimsProviderSelections>
</OrchestrationStep>
<OrchestrationStep Order="4" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="SelfAssertPassportVerification" TechnicalProfileReferenceId="Self-Assert-PassportVerification" />
<ClaimsExchange Id="SelfAssertDriversLicenseVerification" TechnicalProfileReferenceId="Self-Assert-DLVerification" />
</ClaimsExchanges>
</OrchestrationStep>
ShowSingleProvider
- единственное допустимое значение. В любом случае я попытался полностью удалить этот атрибут и обнаружил ту же проблему. - person iris-HP   schedule 24.12.2020ClaimsProviderSelection
шага до того, как будут представлены выбранные IDP. МойDataUri
для определенияapi.idpselections
-urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0
. - person iris-HP   schedule 30.12.2020