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

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

в плагине схем аутентификации реализовывал приблизительно так:
Код: 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
24.03.2015, 10:07
    #38914451
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
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
24.03.2015, 10:09
    #38914454
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
suPPLer,
Я к тому, что автор собственно и хочет, чтобы на будущих версиях все работало.
...
Рейтинг: 0 / 0
24.03.2015, 10:12
    #38914457
Есть вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
suPPLer,
Спасибо!
...
Рейтинг: 0 / 0
24.03.2015, 10:25
    #38914476
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
Всё это похоже на костыли, лучше пересмотреть архитектуру, пока не поздно
Но вообще, иногда к схеме 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
24.03.2015, 10:44
    #38914518
Есть вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(4.2) Custom Authentication Scheme + database accounts: как проверить логин/пароль?
SvDevВсё это похоже на костыли, лучше пересмотреть архитектуру, пока не поздно

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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