Настройка требований к сложности паролей в Azure Active Directory B2C.
Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
Azure Active Directory B2C (Azure AD B2C) поддерживает изменение требований сложности к паролям, которые пользователи указывают при создании учетной записи. По умолчанию Azure AD B2C использует надежные пароли. Azure AD B2C также поддерживает параметры конфигурации для управления сложностью паролей, используемых клиентами.
Необходимые компоненты
- Создайте поток пользователя, чтобы пользователи могли зарегистрироваться и входить в ваше приложение.
- Зарегистрируйте веб-приложение.
- Выполните шаги, описанные в статье Начало работы с настраиваемыми политиками в Azure Active Directory B2C.
- Зарегистрируйте веб-приложение.
Применение правила к паролю
Во время регистрации или сброса паролей пользователю необходимо ввести пароль, отвечающий требованиям сложности. Правила сложности пароля применяются согласно потоку пользователя. Для одного потока пользователя может потребоваться четырехзначный пин-код во время регистрации, а для другого потока пользователя требуется восемь символьных строк во время регистрации. Например, вы можете использовать поток пользователя с разной сложностью пароля для взрослых и детей.
Требования к сложности пароля не применяются во время входа. Во время входа пользователям никогда не предлагается сменить пароль, так как это не соответствует текущим требованиям сложности.
Сложность пароля можно настроить в следующих типах потоков пользователей:
- поток пользователя регистрации или входа в систему;
- поток пользователя сброса пароля;
Если вы используете пользовательские политики, можно настроить сложность паролей в пользовательской политике.
Настройка сложности пароля
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- В портале Azure найдите и выберите Azure AD B2C.
- Выберите Потоки пользователей.
- Выберите поток пользователя и щелкните Свойства.
- В разделе Сложность пароля выберите значение Простой, Надежный или Настраиваемый.
Сравнительная таблица
Сложность | Description |
---|---|
Простой | Пароль, который не менее 8 – 64 символов. |
Строгие | Пароль, который не менее 8 – 64 символов. Для этого требуется 3 из 4 строчных регистров, прописных букв, чисел или символов. |
Пользовательское | Этот параметр обеспечивает полный контроль над правилами сложности пароля. Он дает возможность настроить пользовательскую длину, а также принимать только числовые пароли (ПИН-коды). |
Настраиваемые параметры
Кодировка
Дает возможность принимать только цифры (ПИН-коды) или полную кодировку.
- При использовании типа Только цифры во время ввода пароля можно применять только цифры (0–9).
- При использовании типа Все можно применять любые буквы, цифры или символы.
Длина
Дает возможность управлять требованиями к длине пароля.
- Минимальная длина предусматривает не менее 4 знаков.
- Максимальная длина предусматривает большее количество знаков, чем используется в минимальной длине (или равное ей), но не более 256 знаков.
Категории знаков
Позволяет управлять типами других знаков, используемых в пароле.
Тип 2 из 4: знаки нижнего и верхнего регистра, цифры (0–9), символы гарантирует, что в пароле используются по крайней мере два типа знаков, например цифра и знак нижнего регистра.
Тип 3 из 4: знаки нижнего и верхнего регистра, цифры (0–9), символы гарантирует, что в пароле используются по крайней мере три типа знаков, например цифра, знак нижнего и верхнего регистра.
Тип 4 из 4: знаки нижнего и верхнего регистра, цифры (0–9), символы гарантирует, что в пароле используются все типы знаков.
Примечание.
Использование типа 4 из 4 может вызвать трудности у пользователей. Некоторые исследования показали, что это требование не повысит энтропию пароля. См. раздел Appendix A — Strength of Memorized Secrets(Приложение А — надежность запоминаемых секретов).
Проверка предиката пароля
Чтобы настроить сложность пароля, переопределите типы утверждений newPassword
и reenterPassword
с помощью ссылки на проверки предикатов. Элемент PredicateValidations группирует набор предикатов для формирования пользовательской проверки ввода, которую можно применить к типу утверждения. Откройте файл расширения политики. Например, SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
.
Найдите элемент BuildingBlocks. Если такой элемент не существует, добавьте его.
Найдите элемент ClaimsSchema. Если такой элемент не существует, добавьте его.
Добавьте утверждения
newPassword
иreenterPassword
в элемент ClaimsSchema.<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="newPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <ClaimType Id="reenterPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks>-->
Элемент Predicate определяет основную проверку (значения типа утверждения) и возвращает true или false. Проверка выполняется с помощью указанного элемента метода и набора соответствующих методу параметров. Добавьте следующие предикаты в элемент BuildingBlocks сразу после завершения элемента
</ClaimsSchema>
:<!-- <BuildingBlocks>--> <Predicates> <Predicate Id="LengthRange" Method="IsLengthRange"> <UserHelpText>The password must be between 6 and 64 characters.</UserHelpText> <Parameters> <Parameter Id="Minimum">6</Parameter> <Parameter Id="Maximum">64</Parameter> </Parameters> </Predicate> <Predicate Id="Lowercase" Method="IncludesCharacters"> <UserHelpText>a lowercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">a-z</Parameter> </Parameters> </Predicate> <Predicate Id="Uppercase" Method="IncludesCharacters"> <UserHelpText>an uppercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">A-Z</Parameter> </Parameters> </Predicate> <Predicate Id="Number" Method="IncludesCharacters"> <UserHelpText>a digit</UserHelpText> <Parameters> <Parameter Id="CharacterSet">0-9</Parameter> </Parameters> </Predicate> <Predicate Id="Symbol" Method="IncludesCharacters"> <UserHelpText>a symbol</UserHelpText> <Parameters> <Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter> </Parameters> </Predicate> </Predicates> <!-- </BuildingBlocks>-->
Добавьте следующие проверки предиката в элемент BuildingBlocks сразу после завершения элемента
</Predicates>
:<!-- <BuildingBlocks>--> <PredicateValidations> <PredicateValidation Id="CustomPassword"> <PredicateGroups> <PredicateGroup Id="LengthGroup"> <PredicateReferences MatchAtLeast="1"> <PredicateReference Id="LengthRange" /> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="CharacterClasses"> <UserHelpText>The password must have at least 3 of the following:</UserHelpText> <PredicateReferences MatchAtLeast="3"> <PredicateReference Id="Lowercase" /> <PredicateReference Id="Uppercase" /> <PredicateReference Id="Number" /> <PredicateReference Id="Symbol" /> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> </PredicateValidations> <!-- </BuildingBlocks>-->
Отключение надежного пароля
Ниже приведены технические профили Active Directory, которые считывают и записывают данные в идентификатор Microsoft Entra. Переопределите эти технические профили в файле расширения. Используйте PersistedClaims
, чтобы отключить политику надежных паролей. Найдите элемент ClaimsProviders. Добавьте следующие поставщики утверждений, как показано ниже.
<!--
<ClaimsProviders>-->
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
<TechnicalProfile Id="AAD-UserWritePasswordUsingObjectId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders>-->
Если вы используете политику входа на основе имени пользователя, обновите технические профили AAD-UserWriteUsingLogonEmail
, AAD-UserWritePasswordUsingObjectId
и LocalAccountWritePasswordUsingObjectId
с помощью политики DisableStrongPassword.
Сохраните файл политики.
Тестирование политики
Передача файлов
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Azure AD B2C.
- Выберите Инфраструктура процедур идентификации.
- На странице "Настраиваемые политики" выберите " Отправить политику".
- Выберите Перезаписать политику, если она существует, а затем найдите и выберите файл TrustFrameworkExtensions.xml.
- Выберите Отправить.
Запуск политики
- Откройте политику регистрации или входа, например B2C_1A_signup_signin.
- В разделе Приложение выберите зарегистрированное ранее приложение. Чтобы маркер отображался, URL-адрес ответа должен быть следующим:
https://jwt.ms
. - Выберите Запустить сейчас.
- Выберите Зарегистрироваться сейчас, введите адрес электронной почты и новый пароль. Отображаются рекомендации по ограничению для пароля. Завершите ввод сведений о пользователе и нажмите кнопку "Создать". Вы увидите содержимое возвращенного маркера.
Следующие шаги
- Узнайте больше в разделе Настройка изменения пароля в Azure Active Directory B2C.
- Дополнительные сведения об элементах Predicates и PredicateValidations см. в справочнике по IEF.