четверг, 3 июля 2014 г.

Использование ADF Security в Oracle JDeveloper 12c

Неделю назад вышла новая версия  Oracle Jdeveloper 12.1.3 . Что бы быть в тренде, эта статья будет написана на последней версии JDeveloper : ))
В этой статье я хочу рассказать как работать с ADF Security.ADF Security это  технология, которая  обеспечивает аутентификацию и авторизацию  веб-приложений Fusion.
Создадим простейшее приложение с таблицей EMP на странице jspx


Теперь включим ADF Security. Для этого запустим мастер настройки





В первом окне мастера  выбирается три вида действия:


  • Создание ADF аунтентификации и авторизации
  • Создание ADF аунтентификации 
  • Удаление ранее созданной конфигурации ADF Security
Так же появилось нововведение, можно включить Identity Governance Framework.Этот фрэймворк позволяет взаимодействовать с такими протоколами как LDAP, SAML,WS-Trust и ID-WSF.

Выберите первый пункт.



В следующем окне нужно выбрать веб проект и способ аутентификации.Выберите последний способ. Form-based Authentication использует формы для авторизации.Выбрав этот пункт, вы можете так же выбрать опцию, которая сгенерирует формы для аутентификации и формы на которую пользователь будет переадресован, если пароль введен неверно.


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


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


В последнем окне выводится какие файлы будут созданы и обновлены.Нажмите Finish




Итак, что же произошло после включения ADF Security.

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

Теперь нам необходимо настроить роли, пользователей и группы. Для этого нужно открыть файл  jazn-data.xml. В него можно зайти перейдя в Application->Secure->Application Roles



Интерфейс для этого файла достаточно прост.  В нем имеется 4 вкладки:
  • Application Roles  - вкладка для создания и настроек ролей.
  • Resource Grants -вкладка для настройки правд доступа ролей.
  • Entitlement  Grant - вкладка для настройки прав доступа не для  ролей или пользователей сразу, а для отдельного элемента,который потом можно применить к роли или пользователю
  • Test Users & Roles - вкладка для создания  пользователей  и Enterprise ролей


Теперь нужно выполнить следующее:
  1. Создать Роль.
  2. Создать пользователя
  3. Привязать пользователя к роли
  4. Выдать права для определенного вида ресурса  пользователю либо роли
Первые три пункта делаются в пару кликов в первой вкладке:
Нажмите  на зеленый плюс  в разделе Roles и выберите Add New Role->Add a root level.После нажатия справа появятся поля для заполнения.Впишите в поле Name имя будущей роли. 
Далее нажмите на в разделе Mappings и выберите Add User
Создайте две роли и  добавьте для каждого пол пользователю.



После создания ролей и пользователей  необходимо раздать права  для работы пользователей с ресурсами.Это делается во вкладке Resource Grants. В поле Resource Type выбирается тип ресурса( ADF Entity Object, ADF Entity Object Attribute, ADF method, ADF REST Resource Custom Method,Task Flow,Web Page).В разделе Resources выбирается сам ресурс. В Granted To выбирается роль либо пользователь которому выдаются права. В разделе Action выбирается какие действия над ресурсом будут разрешены. В нашем случае выберем ресурс  Web page, далее созданную нами страницу,  и добавим одну из ролей и проставим галочки view,customize,personalize. Оставшейся роли не будем выдаваться права.


Можно приступить к тестированию. Запустите приложение. Появится форма ввода пароля(login.html)
Введите данные  пользователя которого вы настроили с правами доступа к странице. При нажатии на кнопку Submit вы перейдете на страницу которую настроили в мастере  конфигурации на шаге выбора страницы при удачной  аутентификации.


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

Введите неправильный логин или пароль.В этом случае произойдет переход на error.html