- PVSM.RU - https://www.pvsm.ru -
Первая часть [1] серии статей «Настройка аутентификации в SAP Netweaver AS Java» рассказывала о различных подходах к настройке аутентификации в приложениях, запускаемых на программной платформе SAP NW AS Java. Также в ней были обозначены области ответственности различных проектных групп (разработчики, функциональные консультанты, специалисты SAP Basis) за выполнение настроек аутентификации.
Во второй части [2] была описана структура дескрипторов web.xml и web-j2ee-engine.xml, а также структура XML-файла authschemes.xml.
На общей схеме, введённой еще в первой части, обозначил элементы, которые буду рассматривать сейчас – это Policy Configurations.
Policy Configurations. Общая структура
Как мы уже выяснили, для разных типов приложений, мы по-разному можем описать, как будет выполняться аутентификация пользователя:
Также мы можем создавать свои собственные Policy configurations через редактор в SAP Netweaver Administrator (NWA) и привязывать их к приложениям в виде шаблонов (Templates) или задавать в параметрах UME, описанных в первых двух статьях. Созданные через редактор Policy configurations будут иметь тип Custom.
Итак, Policy Configuration – это сущность, которая имеет набор свойств (Properties) и включает в себя Authentication Stack.
В Properties отображаются такие характеристики, как: realm_name, policy_domain, priority, template, frontendtarget, auth_method и т.д. Если Policy configuration создаётся через редактор вручную, то, при необходимости, properties мы также можем добавить вручную. Если это делается через дескрипторы web.xml или web-j2ee-engine.xml, то мы увидим в properties то, что задал разработчик в этих дескрипторах.
Authentication Stack – это сущность, которая состоит из элементов, изображенных на следующей картинке:
Template. В качестве шаблона для вновь создаваемых Authentication Stacks можно использовать уже готовый Authentication Stack с типом “Template” или “Custom”. В этом случае новый Authentication Stack унаследует настройки Login Modules и Session Fixation Protection из шаблона. Настройки Logon policy при этом не наследуются.
Session Fixation Protection. Может так сложиться, что клиентское ПО вызывает два приложения с разными Authentication stacks практически одновременно (с разницей не более 2 секунд). Это редкий случай и в стандарте вряд ли такое может случиться. Но если такое происходит, сервер может выдать ошибку 403 — " Possible session fixation attack detected! Contact your system administrator with a reference to SAP Note 1417679!".
Если мы уверены, что у нас нет таких приложений, то Session Fixation Protection необходимо установить в значение Strict (оно используется по умолчанию). В случае, если два разных приложения с разными Authentication stacks должны вызываться параллельно, и это единственное решение в вашем конкретном случае (чего лучше не допускать), параметр Session Fixation Protection необходимо установить в значение Grace Period для приложения, которое выдаёт ошибку 403 – “Possible session fixation attack detected!...».
Policy domain – про него уже подробно было написано во второй части [2], поэтому повторяться не буду.
Login Modules и Logon Policy – оба этих элемента являются наиболее интересными для нас с точки зрения настройки стека аутентификации. Login Modules напрямую связан с аутентификацией (т.е. с проверкой подлинности клиента). А Logon Policy – это набор правил, разрешающих или запрещающих пользователю по каким-либо критериям использовать Authentication Stack при обращении к приложению (например, если пользователь не состоит в группе Administrators, то аутентификация запрещена).
Login module – это программный модуль, который позволяет SAP-системе проверить данные аутентификации, предоставленные пользователем. В стандартной поставке SAP Netweaver AS Java 7.40 я насчитал 21 Login Module и каждый из них имеет свои особенные параметры для тонкой настройки. Описание каждого такого модуля по отдельности заслуживает отдельной статьи, поэтому я лишь приведу несколько наиболее часто используемых модулей и дам краткое описание для них:
Инструмент Login Modules даёт возможность компоновать отдельные модули в последовательность выполняемых модулей для обеспечения гибкого процесса аутентификации в системе.
Предлагаю рассмотреть следующую последовательность модулей:
На рисунке видно, что для каждого Login Module из этой последовательности указывается флаг, который определяет поведение выполняемого модуля. В приведённой последовательности будет происходить следующее:
В нашем примере для модуля BasicPasswordLoginModule мы могли бы поставить флаг OPTIONAL – ровным счётом ничего бы не поменялось. А для пятого модуля (CreateTicketLoginModule) – флаг SUFFICIENT или оставить тот же OPTIONAL – результат работы всего стека был бы тем же…
Есть еще один флаг, которого нет в примере – это флаг REQUIRED. При любом результате выполнения модуля с данным флагом, управление будет передано следующему модулю. Но, если аутентификация, выполняемая этим модулем – не успешная, то результат выполнения всего стека модулей так же будет не успешным.
Как уже упоминалось ранее, Logon Policy – это набор правил, разрешающих или запрещающих пользователю по каким-либо критериям использовать Authentication Stack при обращении к приложению.
По умолчанию, данный функционал не активен в SAP-системе. Поэтому, если вы решили его использовать, то необходимо параметр UME: ume.logon.apply_logon_policies установить в значение true.
Создание и редактирование Logon policies доступно в SAP Netweaver Administrator (NWA): Configuration -> Authentication and Single Sign-On. Закладка Authentication -> Logon Policies).
Структура Logon policy выглядит следующим образом (см. рисунок ниже):
Logon policy может содержать множество правил (Rules), а каждое правило должно содержать условия выполнения этого правила — Conditions.
Возможности Logon Policies лучше всего рассмотреть на следующем примере. Пусть в вымышленном проекте стоит следующая задача: к определённым приложениям необходимо разрешать доступ только группе Administrators с IP-адресов 10.1.4.0/32. И вообще, пусть Администраторы работают только в рабочее время – с понедельника по пятницу, с 8:00 до 18:00. Для этих целей создадим Logon Policy (например, MyOwnLogonPolicy) с одним правилом (например, MyOwnRule1) и четырьмя условиями (см. рисунок ниже), которые и будут определять наши требования по нашему вымышленному проекту.
Помимо тех категорий, которые мы обозначили в нашем примере (Group, Days Of Week, IP Address, Time), есть и другие, не менее интересные категории, которые можно использовать:
Таким образом, при помощи категории HTTP Header можно значительно расширить возможности Logon Policies.
Итак, мы познакомились с подходами и инструментами, которые доступны в SAP Netweaver AS Java для настройки аутентификации в различных типах приложений. Надеюсь, вам было интересно, и данная информация упростит вам процесс настройки аутентификации в приложениях SAP Netweaver AS Java.
Автор: Евгений Туровский
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/269764
Ссылки в тексте:
[1] Первая часть: https://habrahabr.ru/post/341876/
[2] второй части: https://habrahabr.ru/post/343208/
[3] Источник: https://habrahabr.ru/post/343790/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.