|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Apex 19.2 1. Часть пользователей должны заходить в приложение напрямую (HTTP Header Variable), если по определенному условию они не подходят,то 2. Авторизуются на 101 странице по имени/паролю LDAP Как это красиво реализовать? В буржуазных статьях не нашла такой реализации ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 13:49 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Памела, Смотря как происходит авторизация на основной странице, от этого плясать, варианты разные. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 14:16 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Логика примерно такая : p_user constant varchar2(4000) := UPPER(owa_util.get_cgi_env('X_ISRW_PROXY_AUTH_USER')); тут хранится SSO юзер if в p_user есть нужная подстрока - нужно автоматически создать под него apex-сессию и пустить в приложение. Как это сделать с помощью apex_custom_auth? if в p_user нет нужной подстроки или она просто пустая - перекидываем пользователя на 101 страницу. Пусть вводит имя и пароль. А там будет LDAP аутентификация. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 14:39 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Памела, Ну если условие True записываете 1 или что-то в переменную Делаете Brench на страницу с авторизацией LDAP c условием Validating, если переменная is NULL... то что пришло в голову, может кто-то подскажет другие пути. У меня просто аутентификация проходит через процедуру, там в теле все прописывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 16:00 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Javl Памела, Ну если условие True записываете 1 или что-то в переменную Делаете Brench на страницу с авторизацией LDAP c условием Validating, если переменная is NULL... В том, то и дело что надо через процедуру - по первому условию как создастся автоматически создастся валидная сессия апекс? Если не трудно можно кинуть пример вашей процедуры мне на почту zpamela@rambler.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 16:11 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Памела, У меня процедура аутентификация не стандартная Апексовая, а имена пользователей, пароли и др значения берутся из отдельной таблицы пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 16:30 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
У Вас то как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 16:41 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Сейчас все заходят через одну login страницу - там у него запрашивается адшные имя и пароль. Конечно, есть пользовательская таблица. Сейчас научили вебсервер заполнять username в переменную CGI. p_user constant varchar2(4000) := UPPER(owa_util.get_cgi_env('X_ISRW_PROXY_AUTH_USER')); тут хранится SSO юзеh if в p_user есть нужная подстрока - нужно автоматически создать под него apex-сессию и пустить в приложение. Как это сделать с помощью apex_custom_auth? if в p_user нет нужной подстроки или она просто пустая - перекидываем пользователя на 101 страницу. Пусть вводит имя и пароль. А там будет LDAP аутентификация. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 16:55 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Памела, Вот пример начальной схемы, от него можно дальше добавлять функционал create or replace Package PKG_AUTH_USER Is Function Authenticate_User(p_User_Name Varchar2 ,p_Password Varchar2) Return Boolean; ----- Procedure Process_Login(p_User_Name Varchar2 ,p_Password Varchar2 ,p_App_Id Number); End PKG_AUTH_USER; __________________________________________________________________________ create or replace Package Body PKG_AUTH_USER Is Function Authenticate_User(p_User_Name Varchar2 ,p_Password Varchar2) Return Boolean As v_Password AUTHUSERS.UTABLE.COL2%Type; v_Active AUTHUSERS.UTABLE.COL10%Type; v_IP AUTHUSERS.UTABLE.COL3%Type; Begin If p_User_Name IS NULL and p_Password IS NULL THEN Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ВЫ НЕ ВВЕЛИ ИМЯ ПОЛЬЗОВАТЕЛЯ И ПАРОЛЬ'); Return False; End If; if p_User_Name Is Null and p_Password IS NOT NULL THEN Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ВЫ НЕ ВВЕЛИ ИМЯ ПОЛЬЗОВАТЕЛЯ'); Return False; End If; if p_User_Name IS NOT NULL and p_Password IS NULL THEN Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ВВЕДИТЕ ПАРОЛЬ'); Return False; End If; ---- Begin Select u.COL2 ,u.COL10 ,u.COL3 Into v_Password ,v_Active ,v_IP From AUTHUSERS.UTABLE u Where u.COL1 = p_User_Name; Exception When No_Data_Found Then -- Write to Session, User not found. Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ВЫ ВВЕЛИ НЕПРАВИЛЬНОЕ ИМЯ ПОЛЬЗОВАТЕЛЯ'); Return False; End; If v_Password <> p_Password Then -- Write to Session, Password incorrect. Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ВЫ ВВЕЛИ НЕПРАВИЛЬНЫЙ ПАРОЛЬ'); Return False; End If; If v_Active <> 'АКТИВЕН' Then Apex_Util.Set_Session_State('LOGIN_MESSAGE' ,'ПОЛЬЗОВАТЕЛЬ ЗАБЛОКИРОВАН, СВЯЖИТЕСЬ С АДМИНИСТРАТОРОМ'); Return False; End If; --- -- Write user information to Session. -- Apex_Util.Set_Session_State('SESSION_USER_NAME' ,p_User_Name); Apex_Util.Set_Session_State('SESSION_IP' ,v_IP); --- --- Return True; END; Procedure Process_Login(p_User_Name Varchar2 ,p_Password Varchar2 ,p_App_Id Number) As v_Result Boolean := False; Begin v_Result := Authenticate_User(p_User_Name ,p_Password); If v_Result = True Then -- Redirect to Page 1 (Home Page). Wwv_Flow_Custom_Auth_Std.Post_Login(p_User_Name -- p_User_Name ,p_Password -- p_Password ,v('APP_SESSION') -- p_Session_Id ,p_App_Id || ':1' -- p_Flow_page ); Else -- Login Failure, redirect to page 102 (Login Page). Owa_Util.Redirect_Url('f?p=102:102:102'); End If; End; End PKG_AUTH_USER; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 17:19 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Памела, if в p_user есть нужная подстрока : выполняйте вызывайте процедуру создания сессии Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
у меня так ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 08:43 |
|
Несколько схем аутентификации в одной
|
|||
---|---|---|---|
#18+
Nickname, да мне попадалась эта процедура вот еще статья в тему http://www.grassroots-oracle.com/2019/01/apex-authentication-switch-in-session.html ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:38 |
|
|
start [/forum/topic.php?fid=50&msg=39949015&tid=1873890]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 247ms |
total: | 373ms |
0 / 0 |