oracle apex 18.2 настраиваемая аутентификация и авторизация - PullRequest
0 голосов
/ 30 октября 2018

Я разрабатываю небольшую ERP в oracle Apex 18.2. Я хочу реализовать пользовательскую защиту, как указано ниже

1) Пользователь должен пройти аутентификацию из пользовательской таблицы

2) После аутентификации пользователь должен авторизоваться для приложения в соответствии с назначенной ролью в пользовательской таблице

3) Пользователь должен иметь Авторизацию для операций ЧТЕНИЕ, ВСТАВКА, ОБНОВЛЕНИЕ и УДАЛЕНИЕ из Таблицы

Как пример Изображение

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

1 Ответ

0 голосов
/ 30 октября 2018

1) Пользователь должен пройти аутентификацию из пользовательской таблицы

  • Создайте схему аутентификации и установите для типа схемы значение Custom.
  • Реализуйте функцию аутентификации и поместите код в раздел кода PL / SQL. Функция поставляется с именем пользователя и паролем, введенными со страницы входа в систему. Используйте это, чтобы проверить соответствие. ВСЕГДА шифруйте пароли пользователей. Функция возвращает истину или ложь в зависимости от результата.

Ниже приведен пример кода, доступный и скопированный из текста справки в Page Builder:

function my_authentication (
    p_username in varchar2,
    p_password in varchar2 )
    return boolean
is
    l_user my_users.user_name%type := upper(p_username);
    l_pwd  my_users.password%type;
    l_id   my_users.id%type;
begin
    select id  , password
    into l_id, l_pwd
    from my_users
    where user_name = l_user;
    return l_pwd = rawtohex(sys.dbms_crypto.hash (
                    sys.utl_raw.cast_to_raw(p_password||l_id||l_user),
                    sys.dbms_crypto.hash_sh512 ));
exception
    when NO_DATA_FOUND then return false;
end;
  • Установите Аутентичную функцию на my_authentication

2) После аутентификации пользователь должен авторизоваться для приложения в соответствии с назначенной ролью в пользовательской таблице

  • Снова в области кода PL / SQL внедрите процедуру пост-аутентификации, например, post_login, который извлекает роль пользователя и добавляет их в элемент приложения или в коллекцию APEX.
  • Добавьте имя процедуры в поле Имя процедуры после аутентификации, например, post_login.
  • Создание схем авторизации на основе значений выше.

OR

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

3) Пользователь должен иметь Авторизацию для операций READ, INSERT, UPDATE и DELETE из таблицы

  • Вы можете ограничить количество страниц, элементов страницы (только для чтения или редактируемых), кнопок и процессов на основе схем авторизации.
  • В зависимости от вашей лицензии Oracle вы также можете реализовать Oracle Real Application Security (RAS) или Виртуальные частные базы данных (VPD) для управления доступом на «уровне базы данных», и это определенно более безопасно.
...