Ограничения генерируемых паролей
Автор Nikolay Ilin на 14 марта 2016 01:12 PM

СИНТАКСИС

<passwordRestrictions length=”длина пароля” eachCharacterOccurenceMax=”макс. количество вхождений”>
   <acceptableCharacters>

      <characterGroup type=”тип группы 1” customCharacters=”кастомные символы группы 1”/>
         …
      <characterGroup type=”тип группы N” customCharacters=”кастомные символы группы N”/>
   </acceptableCharacters>
   <characterOccurences>

      <characterOccurence anyCharacterOccurenceMin=”мин. количество вхождений из группы 1”>
         <characterGroup type="тип группы 1" customCharacters="кастомные символы группы 1"/>
      </characterOccurence>
         …
      <characterOccurence anyCharacterOccurenceMin=”мин. количество вхождений из группы N”>
         <characterGroup type="тип группы N" customCharacters="кастомные символы группы N"/>
      </characterOccurence>
   </characterOccurences>
</passwordRestrictions>

ПАРАМЕТРЫ

<passwordRestrictions>
Структура задает ограничения и определяет требования к качеству генерируемых паролей для ESSO-приложений.

Атрибуты

length
Длина генерируемого пароля в символах.

Если также заданы требования вхождения символов (структура <characterOccurences>), параметр определяет минимальную длину пароля. В этом случае при генерации пароля сначала выполняются требования вхождения символов. Если после выполнения требований вхождения длина сгенерированного пароля окажется больше заданной, пароль будет иметь длину, соответствующую выполненным требованиям вхождения (т.е. пароль не будет обрезан).

Опциональный параметр. Значение по умолчанию: 0

eachCharacterOccurenceMax
Максимальное количество вхождений каждого символа (независимо от того, в какую группу символов он входит) в сгенерированный пароль.

Опциональный параметр. Значение по умолчанию: 0

Пример:

<passwordRestrictions length="8" eachCharacterOccurenceMax="2">
...
</passwordRestrictions>

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

<acceptableCharacters>
Структура задает множество допустимых символов для генерации пароля.

Опциональный параметр. Значение по умолчанию: пусто. В этом случае при генерации пароля выполняются следующие условия:

  • пароль содержит символы из следующих групп:

        - цифры (0...9);
        - латинские строчные буквы (a...z);
        - латинские прописные буквы (A...Z);
        - специальные символы (`~!@#$%^&*()_-+={}[]\|:;"'<>,.?/,пробел);

  • количество вхождений символов в пароль определяется структурой <characterOccurences>.

<characterGroup>
Структура описывает допустимые группы символов, которые могут входить в состав пароля при генерации.

Атрибуты

type
Тип группы допустимых символов.

Возможные значения:
      cgtCustom                       пользовательская группа символов (группа символов, определяемая пользователем)
      cgtLatins                         латинские буквы (A...Z, a…z)
      cgtLatinsLower                 латинские строчные буквы (a…z)
      cgtLatinsUpper                  латинские прописные буквы (A...Z)
      cgtDigits                          цифры (0…9)
      cgtSpecial                        неалфавитные символы (` ~ ! @ # $ % ^ & * ( ) _ - + = { } [ ] \ | : ; " '<> , . ? /, пробел и др.)
      cgtAcceptableByDefault     латинские буквы (A...Z, a…z), цифры (0…9), специальные символы (` ~ ! @ # $ % ^ & * ( ) _ - + = { } [ ] \ | : ; " '<> , . ? /, пробел и др.)

Значение по умолчанию (если не задано ни одной группы допустимых символов): cgtAcceptableByDefault.

customCharacters
Множество символов пользовательской группы.

Опциональный параметр. Значение по умолчанию: пусто.

Задание атрибута имеет смысл только для пользовательской группы символов, т.е. только в том случае, когда атрибутtype имеет значение cgtCustom:

<characterGroup type="cgtCustom" customCharacters=",.<>/?[]{}=+-_\\|!@#$%^&*() " />

Если тип группы отличается от cgtCustom, значение атрибута при обработке шаблона не учитывается.

Значение атрибута задается в виде строки, в которой перечислены все символы, входящие в пользовательскую группу, при этом необходимо соблюдать следующие правила перечисления пользовательских символов:

  • для задания специальных символов используются сущности, определенные в формате XML, а именно:

Символ    Сущность
        <           &lt;
        >           &gt;
        &           &amp;
        "            &quot;
        '            &apos;
Пример:

<characterGroup type="cgtCustom" customCharacters="!@#$%*() " />

Приведенное описание определяет пользовательскую группу со следующим множеством символов: ,.<>/?[]{}=+-_!@#$%^&*() "

<characterOccurences>
Стуктура задает требования вхождения символов в пароль.

Опциональный параметр. Значение по умолчанию: пусто. В этом случае при генерации пароля выполняются следующие условия:

  • длина генерируемого пароля определяется значением атрибута length тега <passwordRestrictions>;

  • если задано множество допустимых символов для генерации пароля (т.е. описана структура<acceptableCharacters>), пароль содержит символы из заданного множества, при этом количество вхождений символов из каждой группы определяется случайным образом.

<characterOccurence>
Структура задает требования вхождения в пароль символов заданной группы.

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

Атрибуты

anyCharacterOccurenceMin
Минимальное число вхождений символов из заданной группы в генеририуемый пароль.

Пример:

<characterOccurences>
   <characterOccurence anyCharacterOccurenceMin="3">
      <characterGroup type="cgtLatinsLower" />
   </characterOccurence>
      ...
</characterOccurences>

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

ПРИМЕРЫ

Пример 1

Пример демонстрирует:

  • определение групп допустимых символов для генерации пароля (в том числе определение пользовательской группы символов);

  • описание требований вхождения символов в пароль;

  • определение количества вхождений символов заданной группы в пароль.

Пароль в ESSO-приложении должен удовлетворять следующим требованиям:

  • пароль должен состоять не менее чем из 10 символов;

  • пароль может содержать не более двух одинаковых символов;

  • в пароле должны присутствовать символы хотя бы трех групп из числа следующих четырех:

        - прописные буквы английского алфавита от A до Z;
        - строчные буквы английского алфавита от a до z;
        - десятичные цифры (от 0 до 9);
        - неалфавитные символы (например, !, $, #, %).

Описание ограничений генерируемых паролей:

   <passwordRestrictions length="10" eachCharacterOccurenceMax="2">

      <acceptableCharacters>
         <characterGroup type="cgtLatinsLower" />
         <characterGroup type="cgtLatinsUpper" />
         <characterGroup type="cgtDigits" />
         <characterGroup type="cgtCustom" customCharacters="!@#$%^&*()_+" />
      </acceptableCharacters>

      <characterOccurences>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtLatinsLower" />
         </characterOccurence>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtLatinsUpper" />
         </characterOccurence>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtDigits" />
         </characterOccurence>
      </characterOccurences>

   </passwordRestrictions>

Сгенерированные пароли будут:

  • состоять из 10 символов;

  • содержать по 2 или более символа каждой из групп: прописные буквы английского алфавита, строчные буквы английского алфавита, цифры;

  • содержать от 0 до 4 неалфавитных символов;

  • содержать не более двух одинаковых символов.

Например: g3)rAd5yDC, rzvrS9D7NE, 4i+Xh)xDh4

Посмотреть работу примера можно с помощью готового шаблона (IndeedId.SSO.Test.App.PswRest.Example1.app).

Пример 2

Пример демонстрирует:

  • определение пользовательской группы символов для генерации пароля;

  • описание требований вхождения символов пользовательской группы в пароль;

  • определение длины пароля в соответствии с требованиями вхождения символов в
    пароль.

Пароль в ESSO-приложении должен удовлетворять следующим требованиям:

  • пароль должен состоять не менее чем из 6 символов;

  • пароль не должен содержать одинаковых символов;

  • пароль должен содержать хотя бы 2 символа каждой из групп:

        - прописные буквы английского алфавита от A до Z;
        - строчные буквы английского алфавита от a до z;
        - десятичные цифры (от 0 до 9);
        - неалфавитные символы (например, !, $, #, %).

Описание ограничений генерируемых паролей:

   <passwordRestrictions length="6" eachCharacterOccurenceMax="1">

      <acceptableCharacters>
          <characterGroup type="cgtLatinsLower" />
          <characterGroup type="cgtLatinsUpper" />
          <characterGroup type="cgtDigits" />
          <characterGroup type="cgtCustom" customCharacters=",.&lt;&gt;/?[]{}=+-_!@#$%^&amp;*() " />
     </acceptableCharacters>

      <characterOccurences>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtLatinsLower" />
         </characterOccurence>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtLatinsUpper" />
         </characterOccurence>
         <characterOccurence anyCharacterOccurenceMin="2">
            <characterGroup type="cgtDigits" />
         </characterOccurence>
        <characterOccurence anyCharacterOccurenceMin="2">
           <characterGroup type="cgtCustom" customCharacters=",.&lt;&gt;/?[]{}=+-_!@#$%^&amp;*() " />
        </characterOccurence>
      </characterOccurences>

   </passwordRestrictions>

Сгенерированные пароли:

  • будут стоять из 8 символов (в данном случае длина пароля определяется требованиями вхождения символов в пароль);

  • будут содержать по 2 символа каждой из групп: прописные буквы английского алфавита, строчные буквы английского алфавита, цифры, неалфавитные символы;

  • не могут содержать повторяющиеся символов.

Например: <Kw5Lh>4, 7vA0k+W?, d%Y8o)V6

Посмотреть работу примера можно с помощью готового шаблона (IndeedId.SSO.Test.App.PswRest.Example2.app).



Вложения 
 
 IndeedId.SSO.Test.App.PswRest.Example1.app (19.12 кБ)
 IndeedId.SSO.Test.App.PswRest.Example2.app (19.47 кБ)
(2 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии: