AEM аутентификация без сохранения состояния

Аутентификация AEM (закрытая группа пользователей) не имеет состояния? Что произойдет, если у нас будет несколько издателей, обеспечит ли обработчик аутентификации пользователя аутентификацию во всех экземплярах издателя?

Не удалось найти документ, подтверждающий это, поэтому любая помощь приветствуется.

Благодарю.

3 ответа

Решение

Аутентификация AEM по умолчанию (модуль входа CRX) не является состоянием, аутентификация подтверждается токеном входа. Когда пользователь входит в систему, информация о токене сохраняется в узле .tokens соответствующего узла пользователя (/home/users). Значение токена также сохраняется в браузере в качестве логина- куки - файла cookie. Всякий раз, когда поступает запрос, сравниваются значение cookie и токен в репозитории. [Вы можете проверить, удалив узел.tokens и обновив некоторую страницу, к которой анонимный доступ невозможен]

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

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

Вот страница о модуле токенов Oak. AEM использует модуль токенов crx, но по сути они работают одинаково. Поскольку ваши учетные данные передаются в один экземпляр обработчиком проверки подлинности на основе форм, токен создается только в одном экземпляре. На странице обработчика аутентификации также есть некоторые подробности о токене и куки.

ОБНОВЛЕНИЕ: С AEM 6.1, аутентификация теперь может быть сделана без сохранения состояния, пока пользователь существует во всех экземплярах публикации. Это делается с помощью зашифрованного файла cookie, который может быть расшифрован всеми экземплярами публикации, если они используют один и тот же ключ HMAC. Дополнительную информацию можно найти здесь: https://docs.adobe.com/docs/en/aem/6-1/administer/security/encapsulated-token.html

Включите опцию инкапсулированного токена в OSGI. Тогда он будет аутентифицирован без проблем. Но есть 2 предпосылки или условия, чтобы это сработало. Одним из них является наложение одного и того же ключа HMAC на все экземпляры, а во-вторых, пользователь должен существовать. если эти 2 условия соблюдены, то, если вы войдете в один стек, а второй стек снова не потребует аутентификации.

Я думаю, что это возможно, если вы активируете кластеризацию на своих авторах, узел.token будет реплицирован на все экземпляры, и при сравнении ресурса маркера пользователя и файла cookie идентификация будет успешной, это одно из преимуществ философии jcr: все довольны

Другие вопросы по тегам