Поделиться через


Настройка изменения пароля с помощью настраиваемых политик в Azure Active Directory B2C

Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.

Вы можете настроить Azure Active Directory B2C (Azure AD B2C), чтобы пользователь, вошедший в систему с помощью локальной учетной записи, может изменить пароль, не используя проверку электронной почты, чтобы подтвердить свою личность.

Поток изменения пароля включает в себя следующие действия.

  1. Пользователь входит в локальную учетную запись. Если сеанс по-прежнему активен, Azure AD B2C авторизует пользователя и переходит к следующему шагу.

  2. В старом пароле пользователь проверяет свой старый пароль. В новом пароле они создают и подтверждают свой новый пароль.

    Снимок экрана: два нумеруемых диалоговых окна для изменения пароля.

Подсказка

Пользователь может использовать поток изменения пароля, описанный в этой статье, только если он знает свой пароль и хочет изменить пароль. Рекомендуется также включить самостоятельный сброс пароля для случаев поддержки, в которых пользователь забывает пароль.

Эта функция доступна только для пользовательских политик. Для действий по настройке выберите пользовательскую политику в предыдущем селекторе.

Предпосылки

Добавление элементов

  1. Откройте файл TrustFrameworkExtensions.xml . Добавьте следующий элемент ClaimType в элемент ClaimsSchema с идентификатором oldPassword:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="oldPassword">
          <DisplayName>Old Password</DisplayName>
          <DataType>string</DataType>
          <UserHelpText>Enter your old password</UserHelpText>
          <UserInputType>Password</UserInputType>
        </ClaimType>
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Элемент ClaimsProvider содержит технический профиль, который аутентифицирует пользователя. Добавьте в элемент ClaimsProviders следующие поставщики утверждений:

    <ClaimsProviders>
      <ClaimsProvider>
        <DisplayName>Local Account SignIn</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="login-NonInteractive-PasswordChange">
            <DisplayName>Local Account SignIn</DisplayName>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="oldPassword" PartnerClaimType="password" Required="true" />
              </InputClaims>
            <IncludeTechnicalProfile ReferenceId="login-NonInteractive" />
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
      <ClaimsProvider>
        <DisplayName>Local Account Password Change</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="LocalAccountWritePasswordChangeUsingObjectId">
            <DisplayName>Change password (username)</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
              <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
            </Metadata>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="objectId" />
            </InputClaims>
            <OutputClaims>
              <OutputClaim ClaimTypeReferenceId="oldPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
            </OutputClaims>
            <ValidationTechnicalProfiles>
              <ValidationTechnicalProfile ReferenceId="login-NonInteractive-PasswordChange" />
              <ValidationTechnicalProfile ReferenceId="AAD-UserWritePasswordUsingObjectId" />
            </ValidationTechnicalProfiles>
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
    </ClaimsProviders>
    
  3. Элемент UserJourneys определяет путь, который пользователь принимает при взаимодействии с приложением. Добавьте элемент UserJourneys, если он не существует, с идентификатором UserJourney:PasswordChange

    <UserJourneys>
      <UserJourney Id="PasswordChange">
        <OrchestrationSteps>
          <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.signuporsignin">
            <ClaimsProviderSelections>
              <ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" />
            </ClaimsProviderSelections>
          </OrchestrationStep>
          <OrchestrationStep Order="2" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="3" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordChangeUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="4" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="5" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
        </OrchestrationSteps>
        <ClientDefinition ReferenceId="DefaultWeb" />
      </UserJourney>
    </UserJourneys>
    
  4. Сохраните файл политики TrustFrameworkExtensions.xml .

  5. Скопируйте файлProfileEdit.xml , скачанный с помощью начального пакета, и присвойте ему имя ProfileEditPasswordChange.xml.

  6. Откройте новый файл и обновите атрибут PolicyId уникальным значением. Это значение — имя вашей политики. Например, B2C_1A_profile_edit_password_change.

  7. Измените атрибут ReferenceId в DefaultUserJourney , чтобы он соответствовал идентификатору созданного пути пользователя. Например, PasswordChange.

  8. Сохраните ваши изменения.

Отправка и проверка политики

  1. Войдите на портал Azure.
  2. Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
  3. Выберите все службы в левом верхнем углу портала Azure, а затем найдите и выберите Azure AD B2C.
  4. Выберите Identity Experience Framework.
  5. В настраиваемых политиках выберите " Отправить политику".
  6. Выберите перезаписать политику, если она существует, а затем найдите и выберите файл TrustFrameworkExtensions.xml .
  7. Выберите Загрузить.
  8. Повторите шаги 5–7 для файла проверяющей стороны, например ProfileEditPasswordChange.xml.

Выполните политику

  1. Откройте измененную политику. Например, B2C_1A_profile_edit_password_change.
  2. Для приложения выберите приложение, зарегистрированное ранее. Чтобы увидеть маркер, должен отображаться https://jwt.msURL-адрес ответа.
  3. Выберите Запустить немедленно. На новой вкладке, которая открывается, удалите "&prompt=login" из URL-адреса и обновите вкладку. Затем войдите с помощью созданной ранее учетной записи. Диалоговое окно изменения пароля позволяет изменить пароль.