powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / (4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
23 сообщений из 23, страница 1 из 1
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914002
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Нужна пользовательская схема аутентификации, но для пользователей БД.
Собственно, вопрос - как проверить пару имя/пароль?
Сейчас использую функцию sys.wwv_flow_val.verify_user, но она не задокументирована и не уверен, что сохранится в следующих релизах.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914307
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопрос,

в плагине схем аутентификации реализовывал приблизительно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  function authenticate 
    ( p_authentication in apex_plugin.t_authentication
    , p_plugin         in apex_plugin.t_plugin
    , p_password       in varchar2 )
    return apex_plugin.t_authentication_auth_result 
  as
    l_result apex_plugin.t_authentication_auth_result;
    ...
  begin
    ...
    l_result := apex_040200.wwv_flow_authentication_native.execute_authentication
      ( p_type => apex_040200.wwv_flow_authentication_native.c_type_db_accounts
      , p_plugin => p_plugin
      , p_authentication => p_authentication
      , p_password => p_password);
    ...
    return l_result;
  ...
  end;



Работает.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914451
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerЕсть вопрос,

в плагине схем аутентификации реализовывал приблизительно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  function authenticate 
    ( p_authentication in apex_plugin.t_authentication
    , p_plugin         in apex_plugin.t_plugin
    , p_password       in varchar2 )
    return apex_plugin.t_authentication_auth_result 
  as
    l_result apex_plugin.t_authentication_auth_result;
    ...
  begin
    ...
    l_result := apex_040200.wwv_flow_authentication_native.execute_authentication
      ( p_type => apex_040200.wwv_flow_authentication_native.c_type_db_accounts
      , p_plugin => p_plugin
      , p_authentication => p_authentication
      , p_password => p_password);
    ...
    return l_result;
  ...
  end;



Работает.
Но при смене версии ее нужно будет переписать...
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914454
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,
Я к тому, что автор собственно и хочет, чтобы на будущих версиях все работало.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914457
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,
Спасибо!
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914476
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё это похоже на костыли, лучше пересмотреть архитектуру, пока не поздно
Но вообще, иногда к схеме apex_xxxxx приходится обращаться, я делаю так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
  l_owner varchar2(255);
...

  select t.TABLE_OWNER into l_owner
  from all_synonyms t
  where t.SYNONYM_NAME = 'APEX_APPLICATIONS'
    and t.OWNER = 'PUBLIC';

  execute immediate '...' || l_owner || '...
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914518
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevВсё это похоже на костыли, лучше пересмотреть архитектуру, пока не поздно

Хм, неясно, что пересматривать. Отказаться от оракловых учетных записей пользователей?
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914551
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,
можно просто синоним, но мне лень)) Не так часто переходим.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914571
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelsuPPLer,
Я к тому, что автор собственно и хочет, чтобы на будущих версиях все работало.

Автор хотел бы какой-нибудь понятный способ проверки пары имя/пароль, работающий вне контекста Апекса вообще. Единственное, что я находил - это использование OCI. Функция sys.wwv_flow_val.verify_user так на самом деле и работает. Без такой проверки, например, нельзя нормально реализовать возможность смены пароля пользователем.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914583
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопроспонятный способ проверки пары имя/пароль, работающий вне контекста Апекса вообще.
правильно я понял, что ищем возможность:
- руками создать сессию и получить её ID напр. в хранимке
- сформировать URL для входа c ID и войти
Т.к. мне для SSO данное нужно.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914588
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопросSvDevВсё это похоже на костыли, лучше пересмотреть архитектуру, пока не поздно

Хм, неясно, что пересматривать. Отказаться от оракловых учетных записей пользователей?

Возможно. Без описания, зачем используется оракловая схема аутентификации, и зачем её переписывать на кастомную, тут сложно что-то посоветовать. Если стоят задачи интеграции с внешними системами, стоит подумать над единой системой аутентификации, алгоритмы которой открыты и документированы.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914616
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Есть вопроспонятный способ проверки пары имя/пароль, работающий вне контекста Апекса вообще.
правильно я понял, что ищем возможность:
- руками создать сессию и получить её ID напр. в хранимке
- сформировать URL для входа c ID и войти
Т.к. мне для SSO данное нужно.

Мне нужно всего-навсего сделать свою схему аутентификации для оракловых пользователей.
Конкретно, это нужно для решения проблемы "Во время работы пользователю может прийти письмо с ссылкой для страницу этого же приложения и заданными параметрами. Здесь возникает проблема - при переходе по ссылке, пользователю приходится заново вводить имя/пароль.
Можно как-то настроить, чтобы при открытии ссылки без идентификатора сессии, существующая сессия не сбрасывалась?"

SvDevВозможно. Без описания, зачем используется оракловая схема аутентификации, и зачем её переписывать на кастомную, тут сложно что-то посоветовать. Если стоят задачи интеграции с внешними системами, стоит подумать над единой системой аутентификации, алгоритмы которой открыты и документированы.

Я использую оракловую аутентификацию, потому что моя поделка является расширением для существующей декстопной системы.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914628
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопросМожно как-то настроить, чтобы при открытии ссылки без идентификатора сессии, существующая сессия не сбрасывалась?"
у меня твой случай, но повторюсь.
- если сессии нет, то её нужно создать.
У меня сессии нет.
Если она есть, то нет проблем её зашифровать, передать в письме и подставить в урл.
У меня из десктопа нужно создать новую сессию в APEX.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914633
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопросЯ использую оракловую аутентификацию, потому что моя поделка является расширением для существующей декстопной системы.
Рано утром пришёл на работу.
Там письмо со ссылкой сессии которая протухла.
Т.е. нужна новая сессия через API
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914691
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Есть вопросЯ использую оракловую аутентификацию, потому что моя поделка является расширением для существующей декстопной системы.
Рано утром пришёл на работу.
Там письмо со ссылкой сессии которая протухла.
Т.е. нужна новая сессия через API

Да в том-то и дело. Пользователь залогинился, сидит, жмет кнопки. Ему приходит уведомление, что нужно нажать сделать в виде ссылки на страницу этого же приложение. Но идентификатора сессии в ссылки нет, и когда пользователь ее откроет, apex его выбросит на страницу входа. Есть вариант с переписанной функцией проверки сессии, где подхватывается сессия, соответствующая cookie пользователя.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914713
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопросМне нужно всего-навсего сделать свою схему аутентификации для оракловых пользователей.
Аутентификация оракл закрыта, поэтому получаем задачу-костыль
т.е. по-хорошему, надо уходить на другую аутентификацию

Кстати, тут предлагали решение 6712328

Есть вопросКонкретно, это нужно для решения проблемы "Во время работы пользователю может прийти письмо с ссылкой для страницу этого же приложения и заданными параметрами. Здесь возникает проблема - при переходе по ссылке, пользователю приходится заново вводить имя/пароль.
Можно как-то настроить, чтобы при открытии ссылки без идентификатора сессии, существующая сессия не сбрасывалась?"

в 5.0 анонсировали возможность нескольких схем аутентификации одновременно, возможно стоит подождать выхода 5.0, а пока поковырять её на apex.oracle.com
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914735
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопросНо идентификатора сессии в ссылки нет
у меня нет, т.к. идёт из Delph.
Если бы из APEX, то я бы отправил с ID сессии.
Как полумера, пока не протухла сессия, можно войти просто кликом на таком урл.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914750
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevтут предлагали решение 6712328
Если его дей-но апекс использует сам, возможно по ссылке как раз нормальное решение, но я тут не берусь ничего сказать, сам я так не делал
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914767
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev, ну, для десктопа-то открыта :) А тут просто тупость - пользователь может зайти в приложение, а пароль себе изменить не может.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914798
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevSvDevтут предлагали решение 6712328
Если его дей-но апекс использует сам, возможно по ссылке как раз нормальное решение, но я тут не берусь ничего сказать, сам я так не делал
Апекс так делал раньше. Сейчас используется функция, которую я указал выше. Она, по сути, обертка над программой на C, что похоже на решение с использованием jdbc.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914809
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопрос,
Почему тебе не подходит создание сессии НОВОЙ?
http://www.sql.ru/forum/1047462/sessii-apex?mid=14932327&hl=?? ?????????? ???? api ????? ??????? ??????? ??????#14932327
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914810
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelЯ к тому, что автор собственно и хочет, чтобы на будущих версиях все работало.
Наличие стандартизированного API плагинов позволяет надеяться, что переписывать придётся реже. Но шанс остаётся.

SvDevНо вообще, иногда к схеме apex_xxxxx приходится обращаться, я делаю так:
Завернуть в функцию:
Код: plsql
1.
select schema from dba_registry where comp_id = 'APEX' and status='VALID';


Но это уже дело вкуса.
...
Рейтинг: 0 / 0
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
    #38914972
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопрос,

Тут любое решение будет по сути заплаткой, поэтому, возможно, есть смысл попробовать сделать так, как делал апекс раньше.
Или любое другое из решений использовать - какое нравится.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / (4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]