Вступление
В рамках проекта разработки приложений на базе программной платформы SAP Netweaver AS Java, мы столкнулись с необходимостью настройки собственных схем аутентификации для разработанных приложений. Отсюда и родилась идея, во-первых, структурировать полученные знания, во-вторых, поделиться этими знаниями с другими специалистами в области SAP Basis.
В качестве подопытного стенда использовался SAP Portal на базе SAP NW AS Java 7.5 SP04. Не думаю, что с точки зрения подходов к аутентификации что-то сильно менялось во всех SAP NW AS Java, начиная с версии 7.0, но прошу иметь в виду версию, для которой пишется данная серия статей.
По тексту буду использовать англоязычную терминологию, что бы не возникало сложностей перевода в случае необходимости поиска дополнительной информации в Интернет или при настройке аутентификации непосредственно в SAP NW AS Java.
В первой статье – «От общего к частному» будут раскрыты две темы:
- Как, с точки зрения механизмов аутентификации, можно классифицировать приложения на базе программной платформы SAP Netweaver AS Java;
- Как определить границу между разработчиками/консультантами приложений и специалистами SAP Basis в вопросах настройки аутентификации для приложений.
От общего к частному
Когда я столкнулся с необходимостью более детально вникнуть в настройки аутентификации в SAP NW AS Java, то через google.com находил отдельное описание authentication modules, authentication stacks, либо что-то еще, но, к сожалению, я далеко не сразу наткнулся на то, с чего надо было начинать поиски. А начинать надо было с того, какие типы приложений возможно запускать на SAP NW AS Java, так как в зависимости от типов приложений, подход к настройкам аутентификации различен.
Итак, приступим.
С точки зрения пользовательских приложений, можно выделить следующие типы приложений, для которых подходы к настройке аутентификации различаются:
- Java web applications;
- Web Dynpro Java Applications;
- Portal applications;
- Portal iVIews (да, это контейнер для приложений, но SAP в своих документациях его также относит к приложениям).
На следующем рисунке представлены рассматриваемые типы приложений и подходы к их настройке аутентификации. Далее по тексту описан подход по настройке аутентификации для каждого типа приложений.
Java Web Applications
Java Web Application – это любые Java-приложения, разработанные для программной платформы SAP Netweaver AS Java (в контексте данной статьи, конечно же). Хочу отметить, что SAP Portal – это тоже большое приложение Java, которое содержит собственную структуру, свои элементы управления и т.д. Аутентификацию для Java Web Applications можно задавать следующими способами:
- Через дескриптор web.xml (аутентификация на уровне контейнера Java-приложения);
- Через дескриптор web-j2ee-engine.xml. (аутентификация на уровне самого Java-приложения). Если аутентификация описана в дескрипторе web-j2ee-engine.xml, то описание в этом дескрипторе считается более приоритетным по сравнению с описанием в дескрипторе web.xml. Чаще всего дескриптор web-j2ee-engine.xml дополняет описание в дескрипторе web.xml;
- Если в дескрипторах web.xml и web-j2ee-engine.xml нет описания аутентификации, то Java-приложение для аутентификации пользователей использует схему аутентификации, определённую параметром UME: ume.login_context, а также пользовательский интерфейс для аутентификации, определённый параметром UME: ume.login.auth_method;
Параметр ume.login.auth_method может принимать 4 значения: [FORM, BASIC, DIGEST, CLIENT-CERT]. Параметры ume.login.auth_method и ume.login_context должны дополнять друг друга. Например, если в ume.login.auth_method установлено значение BASIC, то параметр ume.login_context должен указывать на схему аутентификации с модулем аутентификации по логину и паролю. - При помощи UME API. В этом случае разработчики при разработке приложения Java будут ссылаться на AuthScheme или AuthScheme-ref, описанные в специальном XML-файе, который определяется параметром UME login.authschemes.definition.file. По умолчанию, login.authschemes.definition.file = authschemes.xml. На следующем рисунке приведён пример authschemes.xml.
Подробное описание структуры дескрипторов web.xml, web-j2ee-engine.xml, а также XML-файла authschemes.xml будете приведено во второй части этой серии статей.
Дескрипторы web.xml и web-j2ee-engine.xml редактируются разработчиками через SAP Netweaver Development Studio. Специалисты SAP Basis могут посмотреть содержание данных дескрипторов для конкретного Java-приложения по следующему пути:
Изменять данные дескрипторы на уровне ОС не рекомендуется, так как в случае повторного развёртывания приложения (Deploy Application) разработчиками, сделанные на уровне ОС изменения будут перезаписаны.
Web Dynpro Java Applications
Web Dynpro Java Applications – это частный случай Java Web Applications. Эти приложения для своего выполнения используют компонент Web Dynpro (WD) Runtime Environment (Application module: webdynpro/resources/sap.com/tc~wd~dispwda). С точки зрения аутентификации, в настройках WD Runtime Environment, есть параметр:
sap.default.authentication = (true / false)
Если параметр sap.default.authentication = false, то необходимость аутентификации пользователей для каждого WD Java Application задаётся разработчиками. При помощи SAP NWDS, в свойствах WD Java Application разработчики могут либо активировать Authentication flag для принудительной аутентификации пользователей, либо деактивировать его, если аутентификация пользователей в приложении не требуется.
Если параметр sap.default.authentication = true, то WD Runtime Environment будет требовать аутентификацию пользователей для всех WD Java Applications через схему аутентификации, определённую параметром UME — login.authschemes.definition.file.
Следует упомянуть, что во всех стандартных Web Dynpro Java Applications в качестве схемы аутентификации указано значение “default”. В authschemes.xml это значение также должно быть и оно определено в виде ссылки на схему аутентификации (ниже показана часть файла authschemes.xml, в которой определена authscheme-ref name = “default”).
Portal applications – portal components
Когда разработчик через SAP NWDS создаёт портальное приложение, для этого портального приложения он создаёт портальные компоненты. Для каждого портального компонента разработчик может задать собственную схему аутентификации. Это делается через специальный XML-файл – portalapp.xml все в том же SAP NWDS. Разработчик может указать схему аутентификации – это делается при помощи директивы:
<property name=«AuthScheme» value=«Authschemename»>
В качестве Authschemename должна быть указана либо схема аутентификации (authscheme name), либо ссылка на схему аутентификации (authscheme-ref name), предопределённая в XML-файе, который определяется параметром UME login.authschemes.definition.file (т.е. все тем же authschemes.xml по умолчанию).
Portal iViews
Portal iView – это портальный контейнер, в который можно поместить различные объекты, в том числе Web Dynpro Java application, Java web application, и многое другое. И для каждой iView, вне зависимости от того, какой объект она в себе содержит, можно настроить собственный подход к аутентификации. Это делается при помощи параметра “Authentication Scheme”, задаваемого в настройках любого iView. В свою очередь, параметр “Authentication Scheme” обращается всё к тому же XML-файлу, определённому параметром UME: login.authschemes.definition.file = authschemes.xml (по умолчанию). Все стандартные iView можно разделить на две части:
- iViews, параметр “Authentication Scheme” для которых равен default;
- iVIews, параметр “Authentication Scheme” для которых равен UserAdminScheme.
default – это “authscheme-ref name” для пользовательских iView; UserAdminScheme – это “authscheme-ref name” для iView по управлению пользователями.
На рисунке ниже приведено описание обоих “authscheme-refs” из XML-файла, определённого параметром UME: login.authschemes.definition.file:
Заключение
Для всех рассмотренных типов приложений, если еще раз взглянуть на рисунок в начале этой статьи, все стрелки сходятся в элементе UME Authentication: Policy Configurations. Это означает, что дальнейшая конфигурация модулей входа в Систему (Login Modules) будет настраиваться здесь для всех типов приложений.
В следующей части этой серии статей будет описан подход к аутентификации с использованием:
- дескрипторов web.xml и web-j2ee-engine.xml;
- XML-файла Authschemes.xml.
Далее приведена информация о том, как получить доступ в Системе к тем настройкам, которые описаны в этой статье:
- Получение доступа к настройкам параметров UME;
- Получение доступа к настройкам Policy Configurations;
- Получение доступа к настройке sap.default.authentication компонента Web Dynpro Runtime Environment.
Приложение
Получение доступа к настройкам параметров UME
- ume.login_context;
- ume.login.auth_method;
- login.authschemes.definition.file.
Все параметры UME можно изменить через Netweaver Administrator (/nwa).
Configuration -> Security -> Identity Management
На экране Identity Management нажмите «Configuration»:
Перейдите в режим эксперта (Open Expert Mode):
Будут отображены все параметры UME, которые можно, при необходимости, изменить.
Получение доступа к настройкам Policy Configurations
Доступ к Policy configurations можно получить через Netweaver Administrator (/nwa).
Configuration -> Security -> Authentication and Single Sign-On
Откроется приложение, где можно создать, изменить или просмотреть существующие Policy Configurations
Получение доступа к настройке sap.default.authentication компонента Web Dynpro Runtime Environment
Доступ к параметрам компонента Web Dynpro Runtime Environment можно получить через Netweaver Administrator (/nwa).
Configuration -> Infrastructure -> Application Modules
В Module List найти webdynpro/resources/sap.com/tc~wd~dispwda:
Выбрать данный модуль. Для него выбрать вкладку “Web Dynpro Properties”. Property Sheet Name – default. Найти параметр sap.default.authentication и, при необходимости, изменить его.
Автор: Евгений