Аутентификация

Проблема входа в систему

То, что происходит после того, как OAuth 2.0 установил способ доступа к сторонним API, заключается в том, что приложение также требуется регистрировать пользователей у себя. Используя наш пример: HireMe123 нужно, чтобы пользователь MyCalApp мог залогиниться, используя свою учетную запись MyCalApp, даже несмотря на то, что он не был зарегистрирован в HireMe123.

Но, как мы упоминали выше, OAuth 2.0 предназначен только для делегированного доступа. Это не протокол аутентификации. Но это не помешало людям попытаться использовать его и для аутентификации, и это представляет проблему.

Проблемы с использованием токенов доступа для аутентификации

Если HireMe123 предполагает успешный вызов API MyCalApp с токеном доступа, достаточным что бы пользователь считался аутентифицированным, у нас возникают проблемы, поскольку у нас нет способа проверить, был ли выдан токен доступа правильному пользователю.

Например:

  • Кто-то мог украсть токен доступа у другого пользователя
  • Маркер доступа мог быть получен от другого клиента (не HireMe123) и введен в HireMe123

Это называется запутанной проблемой делегирования. HireMe123 не знает, откуда взялся этот токен и кому он был выдан. Если мы помним: аутентификация — это проверка того, что пользователь — это тот, кем он себя заявляет. HireMe123 не может знать это из-за того, что он может использовать этот токен доступа для доступа к API.

Как уже упоминалось, это не остановило людей от неправильного использования токенов доступа и OAuth 2.0 для аутентификации. Быстро стало очевидно, что формализация аутентификации поверх OAuth 2.0 была необходима, чтобы разрешить входы в приложения сторонних разработчиков, сохраняя безопасность приложений и их пользователей.

Функциональные возможности и системные требования ESET Secure Authentication

В ESET Secure Authentication 2.8 можно выделить следующие основные функции:

  • Защита двухфакторной аутентификацией доступа к офисным приложениям Microsoft. Таких как: Microsoft Exchange Server 2007 (Outlook Web Access — Exchange Client Access Server) (64-разрядная версия); Microsoft Exchange Server 2010, 2013, 2016, 2019 (Outlook Web App — Exchange Client Access Server); Microsoft Dynamics CRM 2011, 2013, 2015, 2016; Microsoft SharePoint Server 2010, 2013, 2016, 2019; Microsoft SharePoint Foundation 2010, 2013.
  • Защита двухфакторной аутентификацией доступа к удаленному рабочему столу, при использовании платформы VMware Horizon View и Citrix XenApp.
  • Защита двухфакторной аутентификацией входа в операционную систему Microsoft Windows.
  • Добавление двухфакторной аутентификации в аутентификацию виртуальной частной сетей компании (VPN), при использовании таких платформ как: Barracuda, Cisco ASA, Citrix Access Gateway, Citrix NetScaler, Check Point Software, Cyberoam, F5 FirePass, Fortinet FortiGate, Juniper, Palo Alto, SonicWall. Добавление двухфакторной аутентификации в пользовательские приложения, например, «1С:Предприятие».
  • Защита входа двухфакторной аутентификацией в облачные сервисы, такие как Office 365 и Google G Suite.
  • Управление пользователями и тонкая настройка отдельных модулей ESA.
  • Поддержка любых аппаратных токенов, поддерживающих стандарт OATH.
  • Подтверждение аутентификации пользователя при помощи push‑сообщений.

ESET Secure Authentication не требовательна к системным ресурсам. Основные требования предъявляются к платформе, на которую будет интегрироваться клиентская и серверная части продукта. Поддерживаемые платформы для установки серверной и клиентской части указаны в таблице 1.

Таблица 1. Перечень поддерживаемых платформ, необходимый для инициализации клиентской и серверной части ESET Secure Authentication 2.8

Поддерживаемые платформы
Клиентская часть ESET Secure Authentication 2.50

с iOS 8 до iOS 12; с Android 4.1 до Android 9.0 (сервисы Google Play начиная с версии 10.2.6); с Windows Phone 8.1 до Windows 10 Mobile.

Серверная часть ESET Secure Authentication 2.8

Windows Server 2008, 2008 R2, 2012, 2012 R2, 2012 Essentials, 2012 R2 Essentials, 2016, 2016 Essentials 2019, 2019 Essentials; Windows Small Business Server 2008, 2011.

Для корректной работы каждого компонента, входящего в состав ESA, необходимо наличие определенных предустановленных системных элементов. Перечень таких элементов представлен в таблице 2.

Таблица 2. Необходимые системные элементы для корректного функционирования отдельных компонентов ESET Secure Authentication 2.8

Необходимые элементы системы

Модуль ESA Web Application

Windows Server 2008 или версия новее, либо Windows 7 или более новая версия; .NET Framework версия 4.5; Internet Information Services 7 или версия новее

Модуль ESA Remote Desktop

Windows Server 2008 или версия новее, либо Windows 7 или более новая версия; (в обоих случаях поддерживаются только 64-разрядные операционные системы); Протокол Remote Desktop (RDP); Веб‑доступ к удаленному рабочему столу Microsoft; Веб‑доступ к службам терминалов Microsoft; удаленный веб‑доступ Microsoft; .NET Framework версия 4.5

Модуль ESA Windows Login

Windows 7, 8, 8.1, 10 (включая обновление Fall Creators или Redstone 3); Windows Server 2008 R2 или версия новее; .NET Framework версия 4.5

Сервер защиты ESA RADIUS Server

Windows Server 2008 или версия новее; .NET Framework версия 4.5

Служба ESA Authentication Service

Windows Server 2008 или версия новее; .NET Framework версия 4.5

Средство управления ESA Management Tools

Windows 7 или версия новее, либо Windows Server 2008 или более новая версия; средства администрирования удаленного сервера Windows; служба доменов Active Directory; Java SE 11 или OpenJDK 11; .NET Framework версия 4.7.2

Образцы разделов авторизации

Ниже приведены несколько примеров разделов авторизации в документации API.

SendGrid

API ключ SendGrid

SendGrid предлагает подробное объяснение ключей API, начиная с основ, поясняя: «Что такое ключи API?». Контекстно раздел ключей API появляется вместе с другими разделами по управлению учетными записями.

авторизация Twitter

В Twitter подробный пример оправдан и предоставлен, поскольку требования к авторизации OAuth 2.0 немного сложнее.

Amazon Web Services

авторизация Amazon

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

Dropbox

Авторизация в Dropbox

Как и Twitter, Dropbox также использует OAuth 2.0. Их документация включает в себя не одну, а две диаграммы и подробное объяснение процесса.

Многофакторная (двухфакторная) аутентификация

Идеология многофакторной аутентификации (multi-factor authentication, MFA) заключается в том, чтобы взаимно компенсировать недостатки нескольких отдельных факторов, как минимум двух, у которых различаются ключевые риски. Чаще всего на практике используется двухфакторная аутентификация. Например, систему, построенную на аппаратных ключах, которые пользователи должны иметь при себе, можно усилить за счет механизма паролей, которые пользователи должны помнить. Тогда злоумышленник с токеном не будет знать пароля, а взломщик, укравший пароль, не будет иметь токена. Конечно, самый распространенный и общеизвестный вариант двухфакторной аутентификации – это два пароля, постоянный и одноразовый; однако сущность этой конструкции аналогична описанной выше, потому что базовым способом доставки одноразового пароля остается мобильная связь. Иными словами, подлинным признается тот пользователь, который знает постоянный пароль и имеет при себе смартфон, куда приходит пароль временный – так что устройство связи де-факто играет роль аппаратного токена.

Популярность и относительная надежность двухфакторной аутентификации приводят к тому, что на рынке появляются готовые решения, избавляющие клиента от необходимости разрабатывать все самому. Одно из них – упоминавшийся выше Google Authenticator, однако это приложение – не единственный вариант. Например, Symantec предлагает сервис VIP – Validation and Identity Protection (бывший VeriSign Identity Protection), который не бесплатен, но предлагает довольно разнообразные функции вроде бесконтактной разблокировки, когда сотруднику не нужно ничего вставлять в считыватель или подносить к нему – достаточно находиться рядом.

Стоит, однако, иметь в виду, что двухфакторная аутентификация не решает проблем той же парольной защиты в корне – она лишь усложняет задачу злоумышленника за счет ввода еще одного фактора. Ключевой изъян – отсутствие прямой связи с личностью пользователя – остается на месте. Поскольку возможность выдать себя за другого человека сохраняется, взломщики ищут (и находят) обходные пути. Например, при удаленной аутентификации не обязательно узнавать постоянный пароль: можно «доверить» пользователю ввести его самостоятельно, а затем перехватить или выманить одноразовый код. Такой подход уже состоит на вооружении у некоторых мошенников, в нужный момент присылающих сообщения вида «вам придет код, назовите мне его».

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

Соединение с использованием проверки подлинности Windows

Когда пользователь выполняет подключение под пользовательской учетной записью Windows, SQL Server проверяет имя учетной записи и пароль с помощью токена участника Windows в операционной системе. Это означает, что удостоверение пользователя было подтверждено Windows. SQL Server не запрашивает пароль и не выполняет проверку удостоверения. Проверка подлинности Windows является проверкой подлинности по умолчанию; она обеспечивает более высокий уровень безопасности, чем проверка подлинности SQL Server . Режим проверки подлинности Windows использует протокол безопасности Kerberos, реализует политику паролей в отношении проверки сложности надежных паролей, поддерживает блокировку учетных записей и истечение срока пароля. Соединение, установленное с помощью проверки подлинности Windows, иногда называется доверительным соединением, поскольку SQL Server доверяет учетным данным, предоставляемым Windows.

С помощью проверки подлинности Windows можно создать группы Windows на уровне домена, а имя входа можно создать на уровне SQL Server для всей группы. Управление доступом на уровне домена позволяет упростить администрирование учетных записей.

Важно!

По возможности используйте аутентификацию Windows.

Что документируется в разделе аутентификации

В документации API не нужно подробно объяснять внешним пользователям, как работает аутентификация. Отсутствие объяснений внутренних процессов аутентификации, является лучшей практикой, поскольку хакерам будет сложнее злоупотреблять API.

Тем не менее нужно объяснить необходимую информацию:

  • как получить API ключ;
  • как пройти аутентификацию запроса;
  • сообщения об ошибках, связанных с неверной аутентификацией;
  • чувствительность информации аутентификации;
  • период действия токена доступа (авторизации).

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

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

Соединение с использованием проверки подлинности SQL Server

Если используется проверка подлинности SQL Server , в SQL Server создаются имена входа, которые не основаны на учетных записях пользователей Windows. И имя пользователя, и пароль создаются с помощью SQL Server и хранятся в SQL Server. Пользователи, подключающиеся с помощью проверки подлинности SQL Server , должны предоставлять свои учетные данные (имя входа и пароль) каждый раз при установке соединения. При использовании проверки подлинности SQL Server необходимо задавать надежные пароли для всех учетных записей SQL Server . Рекомендации по выбору надежного пароля см. в разделе Strong Passwords.

Для имен входа SQL Server доступны три дополнительные политики паролей.

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

    Требует, чтобы пользователь сменил пароль при следующем подключении. Сменить пароль можно с помощью среды SQL Server Management Studio. Если используется этот режим, сторонние разработчики программного обеспечения должны предоставлять данную функцию.

  • Задать срок окончания действия пароля

    Для имен входа SQL Server будет принудительно реализовываться политика максимального возраста паролей.

  • Требовать использование политики паролей

    Для имен входа SQL Server будут принудительно реализовываться политики паролей Windows. Это включает длину и сложность паролей. Эта возможность обеспечивается API , который доступен только в Windows Server 2003 и более поздних версиях.

Определение политик паролей на локальном компьютере

  1. В меню Пуск выберите команду Выполнить.

  2. В диалоговом окне Выполнить введите secpol.msc, а затем нажмите кнопку ОК.

  3. В приложении Локальная политика безопасности разверните узлы Настройки безопасности и Политики учетных записей, затем щелкните Политика паролей.

    Политики паролей будут описаны в панели результатов.

Недостатки проверки подлинности SQL Server

  • Если пользователь является пользователем домена Windows, имеющим имя входа и пароль Windows, то для подключения он все равно должен предоставить другое имя входа и пароль (SQL Server). Многим пользователям сложно помнить несколько имен входа и паролей. Необходимость предоставлять учетные данные SQL Server при каждом подключении к базе данных может раздражать.

  • SQL Server не может использоваться протокол безопасности Kerberos.

  • ОС Windows предоставляет дополнительные политики паролей, недоступные для имен входа SQL Server .

  • Зашифрованный пароль имени входа для проверки подлинности SQL Server необходимо передавать по сети во время установления соединения. Некоторые приложения, которые устанавливают соединение автоматически, сохраняют пароль на клиенте. Эти дополнительные точки, на которые может быть направлена атака.

  • Позволяет SQL Server поддерживать более старые приложения и приложения, поставляемые сторонними производителями, для которых необходима проверка подлинности SQL Server .

  • Позволяет SQL Server поддерживать среды с несколькими операционными системами, в которых пользователи не проходят проверку подлинности домена Windows.

  • Позволяет пользователям устанавливать соединения из неизвестных или недоверенных доменов. Например, в приложении, в котором клиенты подключаются с выделенными именами входа SQL Server , чтобы получить состояние их заказов.

  • Позволяет SQL Server поддерживать веб-приложения, в которых пользователи сами создают собственные удостоверения.

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

    Примечание

    Использование проверки подлинности SQL Server не ограничивает разрешения локальных администраторов на компьютере, на котором установлен SQL Server .

Множество уязвимостей в традиционных методах аутентификации

  • Дублирование SIM-карты. Злоумышленники создают копию SIM (с помощью сотрудников сотового оператора, либо самостоятельно, при помощи специального программного и аппаратного обеспечения). В результате злоумышленнику приходит SMS с одноразовым паролем. В одном особенно известном случае хакеры даже смогли скомпрометировать учётную запись AT&T инвестора криптовалюты Майкла Терпина, и украсть почти 24 миллиона долларов в криптовалютах. В результате чего Терпин заявил, что AT&T был виноват из-за слабых мер проверки, приведших к дублированию SIM-карты.
  • Вредоносные программы (malware). Одной из самых ранних функций мобильных вредоносных программ был перехват и пересылка злоумышленникам текстовых сообщений. Также, атаки «человек в браузере» (man-in-the-browser) и «человек посередине» (man-in-the-middle) могут перехватывать одноразовые пароли, когда они вводятся на зараженных ноутбуках или настольных устройствах.
  • Социальная инженерия. Когда мошенникам известно, что у жертвы включены одноразовые пароли по SMS, они могут напрямую связаться с жертвой, выдавая себя за доверенную организацию, такую как её банк или кредитный союз, чтобы обмануть жертву и заставить её предоставить только что полученный код.

серьёзно? автор отчёта забыл про удалённое управление?например, используя кейлоггервыявление попыток совершения операций с не принадлежащих легальному пользователю устройствпользователь только что находившийся в Москве пытается выполнить операцию из Новосибирска

Что такое двухфакторная аутентификация?

2FA, или двухфакторная аутентификация — это такой метод идентификации пользователя для входа в сервис, при котором нужно двумя разными способами подтвердить, что именно он — хозяин аккаунта. В некоторых сервисах, например, «ВКонтакте», она называется «подтверждение входа».

Эта функция серьезно повышает уровень безопасности. Злоумышленникам, которым по разным причинам могут пригодиться ваши данные, гораздо сложнее получить доступ одновременно к вашему паролю, а также телефону, электронной почте или другому методу аутентификации. Если использовать только пароль, то аккаунт остается уязвимым. Пароли легко утекают в Сеть, и далеко не всегда по вине пользователя.

Прошивка планшета и root-доступ

Часто ошибка аутентификации при подключении к Wi-Fi может возникать, если существуют проблемы с версией прошивки планшета либо смартфона. Особенно это относится к рутованым устройствам, пользователи которых внесли изменения в системные файлы прошивки. В некоторых случаях пользователи не могут подключиться к беспроводной сети, если версия операционной системы не является аутентичной.

Любая прошивка содержит драйвера, которые отвечают за модуль беспроводной связи. Неаутентичная версия операционной системы, соответственно, может использовать неподходящие драйвера, которые препятствуют нормальному подключению. В таких случаях мы рекомендуем переустановить Андроид для исправления ошибки аутентификации. Выбирайте только качественные прошивки. Предварительно читайте отзывы людей, которые уже установили программное обеспечение на свой гаджет. Но это решение подойдёт только тем, кто убедился, что других вариантов исправить проблему не существует.

Ошибки аутентификации во время подключения планшета либо смартфона к Wi-Fi не являются редкостью. При этом решение проблемы состоит в изменении настроек работы роутера, проверке корректности ввода пароля либо смене прошивки. В любом случае, при возникновении подобных ситуаций самый простой вариант — перезагрузить маршрутизатор и перепроверить вводимую при подключении комбинацию. Перед тем как изменять тип шифрования данных и прочие параметры, необходимо убедиться, что это не повлечёт другие сбои работы роутера.

Процесс аутентификации/авторизации

Платформа ASP.NET Identity полностью интегрирована в ASP.NET. Это означает, что вы можете использовать стандартные средства аутентификации/авторизации MVC вместе с Identity, такие как атрибут Authorize. В этой статье мы ограничим доступ к методу действия Index контроллера Home и реализуем функции, которые позволят идентифицировать пользователей, чтобы они могли получить к нему доступ. В примере ниже я применил атрибут Authorize:

Атрибут Authorize по умолчанию ограничивает доступ к методам действий для пользователей, не прошедших аутентификацию. Если вы запустите приложение и запросите представление Index контроллера Home (по любому из адресов /Home/Index, /Home или просто /), вы увидите сообщение об ошибке, показанное на рисунке ниже:

Платформа ASP.NET предоставляет полезную информацию о пользователе в объекте HttpContext, которую использует атрибут Authorize, чтобы проверить состояние текущего запроса и посмотреть, является ли пользователь аутентифицированным. Свойство HttpContext.User возвращает реализацию интерфейса IPrincipal, который определен в пространстве имен System.Security.Principal. Интерфейс IPrincipal определяет свойства и методы, перечисленные в таблице ниже:

Методы и свойства, определенные в интерфейсе IPrincipal
Название Описание
Identity

Возвращает реализацию интерфейса IIdentity, описывающую пользователя, связанного с запросом.

IsInRole(role)

Возвращает true, если пользователь является членом указанной роли.

Интерфейс IIdentity, реализация которого возвращается свойством Iprincipal.Identity, также содержит несколько полезных свойств:

Свойства интерфейса IIDentity
Название Описание
AuthenticationType

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

IsAuthenticated

Возвращает true, если пользователь аутентифицирован.

Name

Возвращает имя текущего пользователя.

ASP.NET Identity содержит модуль, который обрабатывает глобальное событие AuthenticateRequest жизненного цикла приложения в котором проверяет cookie в браузере пользователя, для определения того, является ли он аутентифицированным. Позже я покажу как используются эти cookie-файлы. Если пользователь аутентифицирован, ASP.NET задает свойству IIdentity.IsAuthenticated значение true. (В нашем приложении мы еще не реализовали функцию аутентификации, поэтому свойство IsAuthenticated будет всегда возвращать false.)

Модуль авторизации проверяет свойство IsAuthenticated и, если пользователь не прошел проверку, возвращает HTTP-статус 401 и завершает запрос. В этот момент модуль ASP.NET Identity перехватывает запрос и перенаправляет пользователя на страницу входа /Account/Login. Это URL-адрес, который я определил в классе IdentityConfig ранее:

Браузер перенаправит вас по адресу /Account/Login, но т. к. мы еще не добавили контроллер для этого запроса, появится ошибка 404.

Типы аутентификации в Spring Security

Есть несколько стандартных типов хранения и извлечения пользователя, и за каждый из них отвечает свой AuthenticationProvider. AuthenticationManager делегирует провайдеру извлечь данные их хранилища. В Spring Security реализованы несколько стандартных провайдеров, все они задаются в методе configure():

@EnableWebSecurity(debug = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter 
   @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                ....
    }
...
}

Итак, провайдеры:

  • In-Memory – простейший, задан в вышеприведенном фрагменте кода из примера
  • Jdbc –  рассмотрим в следующей статье
  • LDAP

А можно написать свой, так чаще всего и делают (тоже сделано в следующей статье).

Все упирается в получение реального пользователя по его имени – в метод loadUserByName интерфейса  UserDetailsService:

public interface UserDetailsService {
    UserDetails loadUserByUsername(String var1) throws UsernameNotFoundException;
}

где UserDetails содержит информацию о реальном пользователе (точнее, нам надо составить эту информацию из того, что есть в базе, например).

И составляем мы ее как раз в методе loadUserByUsername(), если реализовываем его вручную

Важно заполнить password, username и authorities (права) объекта UserDetails

Но вернемся к методу authenticate(), в котором происходит аутентификация.

Факторы аутентификации

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

Исследование безопасности показало, что для положительной аутентификации необходимо проверить элементы как минимум двух, а желательно всех трех факторов. Три фактора (класса) и некоторые элементы каждого фактора:

  • то факторы знания : Что — то пользователь знает (например, пароль , частичный пароль , парольная фраза , персональный идентификационный номер (PIN — код), ответа на запрос (пользователь должен ответить на вопрос или рисунок), вопрос безопасности ).
  • что факторы собственности : Что — то пользователь имеет (например, лучезапястного, удостоверение личности , маркер безопасности , имплантированного устройства , сотовый телефон со встроенным аппаратным маркером , маркером программного обеспечения , или мобильный телефон держит программный маркер ).
  • вывод факторы : Что — то пользователь находится или делает (например, отпечатки пальцев , сетчатки шаблон, ДНК — последовательность (есть сортированные определения того , что является достаточным), подпись , лицо, голос, уникальные био~d-электрических сигналы или другим биометрическим идентификатор).

Однофакторная аутентификация

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

Многофакторная аутентификация

Многофакторная аутентификация включает два или более фактора аутентификации ( что-то, что вы знаете , что у вас есть , или что-то , что вы есть ). Двухфакторная аутентификация — это особый случай многофакторной аутентификации, включающий ровно два фактора.

Например, с помощью банковской карты (что — то пользователь имеет ) вместе с PIN — кодом (то пользователь знает ) обеспечивает двухфакторную проверку подлинности. Деловые сети могут потребовать от пользователей предоставить пароль (фактор знания) и псевдослучайное число из токена безопасности (фактор владения). Доступ к системе с очень высоким уровнем безопасности может потребоваться Mantrap скрининг роста, вес, лиц и проверка отпечатков пальцев (несколько факторов неотделимости элементы) плюс PIN — код и однодневный кода (фактор знания элементов), но это все еще двух- факторная аутентификация.

Authentication parameters

You can set each of these parameters by setting:

xwiki.authentication.<param_name>=<param_value>

Name Optional Allowed values Default value Description
encryptionKey No(1) ? n/a Set the Encryption Key used to create a secret key, the secret key is passed to the Cipher object to be used during encryption and decryption of cookie values.
validationKey No(2) ? n/a Set the Validation Key used to generate hash value; the hash value is stored with the cookie and used to verify that the cookie has not been tampered with.
cookiedomains Yes String Server host name Which host(s) should your cookies be sent to; use only if you want to share cookies across domains, otherwise should be commented out
cookielife Yes Number 14 Number of days cookies take to expire
cookiepath Yes String The webapp path that XWiki cookies should be sent to; if you have anything else running on your web server, this should be set to /xwiki
default_page Yes String /bin/view/ Main/WebHome Page to redirect to if xredirect parameter is not set
encryptionalgorithm Yes ? ? Set the Encryption Algorithm used to encrypt and decrypt cookies
encryptionmode Yes ? ? Set the Encryption Mode used to encrypt and decrypt cookies
encryptionpadding Yes ? ? Set the Encryption Padding used to encrypt and decrypt cookies
errorpage Yes String /bin/loginerror/ XWiki/XWikiLogin Page to redirect to if there is an error logging in
loginpage Yes String /bin/login/ XWiki/XWikiLogin Page to redirect to when not logged in
loginsubmitpage Yes String /loginsubmit/ XWiki/XWikiLogin The URL where the username and password are posted to when logging in.
logoutpage Yes String /bin/logout/ XWiki/XWikiLogout Page to redirect to after logged out
realmname Yes String XWiki Sets the realm name
protection Yes all, validation, encryption, none all Protection level for the «remember me» cookie functionality
unauthorized_code Yes Number 403 The HTTP status code to return when the login has failed.
useip Yes true / false true Specify to use the IP address when encrypting the cookie data; if IP address changes will need to re-login.
  1. Only required if protection = encryption or all (default)
  2. Only required if protection = validation or all (default)