Многоуровневая политика входа в Azure B2C - PullRequest
0 голосов
/ 27 июня 2018

У меня есть требование, как показано ниже.

Мне нужно создать 3 приложения в Azure B2C. Я должен создать 3 различные пользовательские политики входа. Внутри каждой настраиваемой политики входа я должен вызывать разные api rest для входа в систему, а не для проверки ввода. Мои пользовательские хранилища находятся вне B2C (пользовательское хранилище находится на сервере sql). Таким образом, в основном эти остальные API будут проверять и возвращать, существует ли пользователь в каждом хранилище пользователей. Затем, наконец, я должен назначить одно приложение для одной пользовательской политики входа. Приложение 1 - Пользовательская политика входа 1 Приложение 2 - Пользовательская политика входа 2 Приложение 3 - Пользовательская политика входа 3

В своем клиентском приложении я буду использовать APPID, секрет, имя клиента и имя пользовательской политики входа. Когда я нажимаю кнопку входа / входа из клиентского приложения, B2C должен показать пользовательский интерфейс, чтобы получить имя пользователя и пароль. На основе appid он должен вызывать пользовательскую политику входа и проверять имя пользователя и пароль. Наконец, он должен вернуть токен обратно в мое клиентское приложение.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 28 июня 2018

Я предлагаю вам присоединиться к этим политикам в 1 файле, а затем: 1) Включите определение содержания страницы для выбора:

      <ContentDefinition Id="api.idpselections">
    <!--
        https://login.microsoftonline.com/static/tenant/default/idpSelector.cshtml
        https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-ui-customization-custom-dynamic
    -->
    <LoadUri>~/tenant/default/idpSelector.cshtml</LoadUri>
    <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
    <DataUri>urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0</DataUri>
    <Metadata>
      <Item Key="DisplayName">Login provider selection page</Item>
      <Item Key="language.intro">Select login provider:</Item>
    </Metadata>
  </ContentDefinition>

А затем настройте свое путешествие на что-то вроде этого:

<UserJourney Id="YourJourneyId">
  <OrchestrationSteps>
    <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
        <ClaimsProviderSelections>
            <ClaimsProviderSelection TargetClaimsExchangeId="LoginProvider1" />
            <ClaimsProviderSelection TargetClaimsExchangeId="LoginProvider2" />
        </ClaimsProviderSelections>
    </OrchestrationStep>
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="LoginProvider1" TechnicalProfileReferenceId="TechProfileForLogin1" />
        <ClaimsExchange Id="LoginProvider2" TechnicalProfileReferenceId="TechProfileForLogin2" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="YourIssuer" />
  </OrchestrationSteps>
  <ClientDefinition ReferenceId="DefaultWeb" />
</UserJourney>
...