Azure B2 C Пользовательские политики, локальная учетная запись KMSI не держит меня в системе - PullRequest
0 голосов
/ 23 марта 2020

Я реализовал шаги в примере - все работало как ожидалось до этого момента - и затем я следовал инструкциям , чтобы включить KMSI.

При тестировании Identity Experience Framework-> Пользовательские политики-> B2C_1A_signup_signin -> Выполнить. Я могу включить флажок «Оставить меня в системе» при входе в систему. Однако я закрываю это окно (или оставляю его открытым по этому вопросу), Запустите пользовательскую политику еще раз и просит меня войти снова («Держите меня в системе» отображается без галочки).

Я трижды проверил изменения в учебнике и примере и не вижу никакой разницы (кроме как в пример У меня нет LoadURI и RecoveryURI.

Замечу, что я не вносил изменений согласно ContentDefinitions и следовал только инструкциям в enable KMSI , потому что Я не думал, что это требование в руководстве.

Пожалуйста, дайте мне несколько советов, что может быть не так. Спасибо за вашу помощь

1 Ответ

1 голос
/ 25 марта 2020

Вы используете неправильный метод для тестирования функции KMSI.

Если вы «Запустите пользовательскую политику еще раз», она всегда попросит вас повторно ввести свои учетные данные, что является внутренним.

Вы должны выполнить шаги Проверьте свою политику .

Вы можете закрыть окно после первого входа в систему. А затем выполните шаги 4, 5 и 6:

Go вернуться на портал Azure. Go на страницу политики, а затем выберите Копировать , чтобы скопировать URL для входа. В адресной строке браузера удалите параметр строки запроса &prompt=login, который вызывает Пользователь вводит свои учетные данные по этому запросу. В браузере нажмите Go. Теперь Azure AD B2 C выдаст токен доступа, не требуя повторной регистрации.

enter image description here


ОБНОВЛЕНИЕ:

Вам не нужно заменять SignUpOrSignin.xml и TrustFrameworkExtensions.xml. Просто обратитесь к моим изменениям:

Добавьте следующий фрагмент кода в элемент BuildingBlocks в TrustFrameworkExtensions.xml.

<ContentDefinitions>
    <ContentDefinition Id="api.signuporsignin">
        <LoadUri>~/tenant/default/unified.cshtml</LoadUri>
        <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
        <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">Signin and Signup</Item>
        </Metadata>
      </ContentDefinition>
  </ContentDefinitions>

И затем добавьте следующий узел как дочерний элемента. Он должен быть расположен сразу после <DefaultUserJourney ReferenceId="User journey Id" />.

<UserJourneyBehaviors>
  <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
  <SessionExpiryType>Absolute</SessionExpiryType>
  <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
</UserJourneyBehaviors>

Это все необходимые изменения.

Вам не нужно удалять &prompt=login в файлах. Пожалуйста, смотрите мой скриншот выше. После копирования URL-адреса для входа это будет выглядеть следующим образом:

https://**.b2clogin.com/**.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_SignUpOrSignIn&client_id=**&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login

Просто удалите &prompt=login в конце URL-адреса и получите доступ к нему в новом окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...