powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как из APEX получить имя пользователя ОС Windows?
43 сообщений из 43, показаны все 2 страниц
Как из APEX получить имя пользователя ОС Windows?
    #38590860
uncle_vo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользователи моего APEX-приложения не желают при обращении к приложению логиниться по-новой (проходить аутентификацию в приложении).
У приложения имеется несколько категорий пользователей с различными наборами привилегий. Есть таблица пользователей с полем кода категории, которая сейчас используется (после того, как пройдена аутентификация) при авторизации (задействована PL/SQL-функция определения категории, работающая с таблицей пользователей).
Хочется сделать так:
1. при обращении к приложению - из Windows забирать UserName (тот, что получается командой echo %UserName% в командном окне Windows)
2. использовать его при авторизации пользователя приложения и, соответственно, запускать пользователя в главное меню его категории и т.п.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38590964
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uncle_vo,

Попробуйте покопать в сторону ActiveX, но они могут быть запрещены и заработают скорее всего только в IE.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38591008
uncle_vo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gustly,

научите, пожалуйста, как к Active X пробраться в APEX - прямо скажу, это для меня тёмный лес.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38591285
То, что Вам нужно, называется transparent ntlm authentication .
Реализуется, например, такой связкой: Apache+mod_plsql+mod_auth_sspi
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38591389
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uncle_voПользователи моего APEX-приложения не желают при обращении к приложению логиниться по-новой (проходить аутентификацию в приложении).
У приложения имеется несколько категорий пользователей с различными наборами привилегий. Есть таблица пользователей с полем кода категории, которая сейчас используется (после того, как пройдена аутентификация) при авторизации (задействована PL/SQL-функция определения категории, работающая с таблицей пользователей).
Хочется сделать так:
1. при обращении к приложению - из Windows забирать UserName (тот, что получается командой echo %UserName% в командном окне Windows)
2. использовать его при авторизации пользователя приложения и, соответственно, запускать пользователя в главное меню его категории и т.п.
Не повезло же вам с пользователями. Однако они (пользователи) этого не должны решать и делать такую дыру в безопасности. Не тратьте время на реализация не только бестолкового но и потенциально вредительского (как сказал бы Иосиф Виссарионович) требования.
1) Данная задача согласована с их/вашим руководством?
2) В зависимости от П1 , ну сделайте тогда им галку "запомнить меня", "как в одноклассниках" что ли.
3) Еще можно юсб токены всем выдать.... ну как крайний вариант.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38591568
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю стоит покопать в сторону браузерной аутентификации (basic, ntlm и т.д.).
В апексе найти инструкцию по её настройке, думаю, не должно быть проблемой,
Осталось эту аутентификацию интегрировать с аутентификацией windows, какие-то средства должны быть...

Материал из википедии по теме

Integrated Windows Authentication
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38593445
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38593446
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из APEX получить имя пользователя ОС Windows?
    #38971741
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Ни у кого в последнее время не ломалась в Файерфоксе аутентификация windows по данному гайду?
http://www.yenlo.nl/nl/how-to-implement-single-sign-on-using-ntlm/

У нас у некоторых пользователей к имени пользователя начал приписываться лишний символ в начале. У каждого разный. Причем в Хроме работает нормально.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38971762
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sah,
а причём хром, если код выше - серверный.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38973103
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серверный код парсит и декодирует переменную окружения устанавливаемую в сессии по данным, пришедшим по запросу из конкретного браузера.
Код: plsql
1.
OWA_UTIL.get_cgi_env ('AUTHORIZATION')



Раньше, имя пользователя Windows вычислялось одинаково и в Chrome и в FireFox.
А недавно обнаружилось, что для некоторых пользователей в FireFox приписывается лишний символ.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38973197
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sah,
странно.
При соединении по LDAP вы в
DBMS_LDAP.search_s пишите входным параметром имя и пароль юзверя.
Т.е. вы даёте на сервере имя пользователя из переменной items на клиенте.
Тогда вопрос в чём?
Если вы только что дали имя юзверя сами на сервер, то зачем его искать
в переменных CGI
Код: sql
1.
OWA_UTIL.get_cgi_env ('AUTHORIZATION')


?
И зачем было заводить переменную AUTHORIZATION?
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38973203
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38973218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sah,
LDAP - доп.СУБД по юзверям в организации.
Там можно получить всю инфу по юзверям. (даже имя собаки у его тёщи).
Но вопрос как бы вне APEX - получаем объект LDAP и спрашиваем
(при условии что apex custom authentication scheme настрили на LDAP)
IMHO
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38974193
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос не про LDAP авторизацию. С ней всё в порядке. Вопрос про то, чтобы пользователю вообще логин/пароль не вводить.
А для этого из браузера Апекс должен вытащить имя пользователя.
Под Винду это обеспечивает модуль auth_sspi. А для Линкуса подобного модуля нет.
Вот и приходится изгаляться кодом на чистом PL/SQL, приведённым по ссылке.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38974213
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sahauth_sspi.
это понятно. Дальше то что?
Я дал вам выше ссылку на короткое решение.
В сети много барахла всягого и устаревшего морально на 15 лет.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38974217
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apex custom authentication scheme
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38975512
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая apex custom authentication scheme начинается с получения имени пользователя.
Вот его-то я и не могу получить.

А способа получения имени пользователя windows, кроме приведённого выше по моей ссылке, до сих пор не предложено.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38975535
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sah,
ссылка не твоя.
Покажи свой код получения имени пользователя.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38975710
SahПод Винду это обеспечивает модуль auth_sspi. А для Линкуса подобного модуля нет
есть . просто искать нужно лучше.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38975714
SahА способа получения имени пользователя windows, кроме приведённого выше по моей ссылке, до сих пор не предложено.
предложено. используйте apex listener (ORDS) + Apache TomCat. Для томката есть фильтр spnego . всё работает отлично. не раз настраивал.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38976419
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Sah,
ссылка не твоя.
Покажи свой код получения имени пользователя.

Ссылку привёл, потому что код полностью скопирован оттуда

Код: 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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
CREATE OR REPLACE FUNCTION apex_sentry_ntnm
   RETURN BOOLEAN
IS
   v_app_id            APEX_APPLICATION.g_flow_id%TYPE;
   l_username          VARCHAR2 (512);
   l_session_id        NUMBER;
   l_raw               RAW (1000);
   l_domain            VARCHAR2 (128);
   l_user              VARCHAR2 (128);
   l_auth              VARCHAR2 (512);
   l_decode            VARCHAR2 (2000);
   l_off               PLS_INTEGER := 0;
   l_length            PLS_INTEGER;
   l_offset            PLS_INTEGER;
   l_htp_buffer        HTP.htbuf_arr;
   l_htp_rows          INTEGER;
   l_url               VARCHAR2 (500);
   l_charset           VARCHAR2 (128);
   l_browser_version   VARCHAR2 (128);
BEGIN

   v_app_id := APEX_APPLICATION.g_flow_id;
   l_username := APEX_CUSTOM_AUTH.get_username;

   -- if session is valid return true
   IF     APEX_CUSTOM_AUTH.is_session_valid
      AND APEX_APPLICATION.g_user IS NOT NULL
      AND UPPER (APEX_APPLICATION.g_user) != 'NOBODY'
   THEN
      RETURN TRUE;
   END IF;

   IF APEX_CUSTOM_AUTH.is_session_valid
   THEN
      APEX_CUSTOM_AUTH.set_session_id (
         APEX_CUSTOM_AUTH.get_session_id_from_cookie);

      l_username := APEX_CUSTOM_AUTH.get_username;

      IF l_username IS NOT NULL AND l_username != 'NOBODY'
      THEN
         APEX_CUSTOM_AUTH.set_user (l_username);
      END IF;
     ELSE
       apex_custom_auth.set_session_id(apex_custom_auth.GET_NEXT_SESSION_ID);

   END IF;

   -- check, if the user is already logged into apex
   APEX_APPLICATION.g_flow_id := 111;

   IF APEX_CUSTOM_AUTH.is_session_valid
   THEN
      APEX_APPLICATION.g_instance :=
         APEX_CUSTOM_AUTH.get_session_id_from_cookie;
      APEX_APPLICATION.g_user := APEX_CUSTOM_AUTH.get_username;

   END IF;

   APEX_APPLICATION.g_flow_id := v_app_id;

   IF UPPER (l_username) = 'NOBODY'
   THEN

      l_auth := OWA_UTIL.get_cgi_env ('AUTHORIZATION');

      IF l_auth IS NULL
      THEN

         OWA_UTIL.status_line (nstatus         => 401,
                               creason         => 'Unauthorized',
                               bclose_header   => FALSE);
         HTP.P ('WWW-Authenticate: NTLM');
         OWA_UTIL.mime_header ('text/html', FALSE, 'utf-8');
         OWA_UTIL.http_header_close;
         wwv_flow.g_unrecoverable_error := TRUE;
         RETURN FALSE;
      END IF;


      l_decode :=
         UTL_ENCODE.text_decode (buf        => SUBSTR (l_auth, 6),
                                 encoding   => UTL_ENCODE.BASE64);

      l_raw := UTL_RAW.cast_to_raw (l_decode);


      IF UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 14, 1)) !=
            130
      THEN
         IF UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 9, 1)) = 1
         THEN
            OWA_UTIL.mime_header ('text/html', FALSE, 'utf-8');
            OWA_UTIL.status_line (nstatus         => 401,
                                  creason         => 'Unauthorized',
                                  bclose_header   => FALSE);
            HTP.P (
               'WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABggAAAAICAgAAAAAAAAAAAAAAAA==');
            OWA_UTIL.http_header_close;
            wwv_flow.g_unrecoverable_error := TRUE;
            RETURN FALSE;
         END IF;

         -- Determine DB charset and convert raw to WE8MSWIN1252, thanks to Andrew Barbaccia
         SELECT VALUE
           INTO l_charset
           FROM nls_database_parameters
          WHERE parameter = 'NLS_CHARACTERSET';

         l_length :=
                UTL_RAW.cast_to_binary_integer (
                   UTL_RAW.SUBSTR (l_raw, 32, 1))
              * 256
            + UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 31, 1));
         l_offset :=
                UTL_RAW.cast_to_binary_integer (
                   UTL_RAW.SUBSTR (l_raw, 34, 1))
              * 256
            + UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 33, 1));
         l_domain :=
            REPLACE (
               REPLACE (
                  SUBSTR (
                     CONVERT (UTL_RAW.cast_to_varchar2 (l_raw),
                              l_charset,
                              'WE8MSWIN1252'),
                     l_offset + 1,
                     l_length),
                  CHR (0),
                  NULL),
               CHR (15),
               NULL);
         l_length :=
                UTL_RAW.cast_to_binary_integer (
                   UTL_RAW.SUBSTR (l_raw, 40, 1))
              * 256
            + UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 39, 1));
         l_offset :=
                UTL_RAW.cast_to_binary_integer (
                   UTL_RAW.SUBSTR (l_raw, 42, 1))
              * 256
            + UTL_RAW.cast_to_binary_integer (UTL_RAW.SUBSTR (l_raw, 41, 1));
         l_user :=
            REPLACE (
               SUBSTR (
                  CONVERT (UTL_RAW.cast_to_varchar2 (l_raw),
                           l_charset,
                           'WE8MSWIN1252'),
                  l_offset,
                  l_length),
               CHR (0),
               NULL);

         IF l_domain IS NULL
         THEN
            l_username := l_user;
         ELSE
            l_username := l_domain || '\' || l_user;
         END IF;

         APEX_APPLICATION.g_user := l_username;
      ELSE                                           -- cast_to_binary_integer

         OWA_UTIL.status_line (nstatus         => 401,
                               creason         => 'Unauthorized',
                               bclose_header   => FALSE);
         HTP.P (
            'WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABggAAAAICAgAAAAAAAAAAAAAAAA==');
         OWA_UTIL.mime_header ('text/html', FALSE, 'utf-8');
         OWA_UTIL.http_header_close;
         wwv_flow.g_unrecoverable_error := TRUE;
         RETURN FALSE;
      END IF;                                        -- cast_to_binary_integer
   END IF;

   IF APEX_APPLICATION.g_user IS NULL
   THEN
      RETURN FALSE;
   END IF;

   -- user is an apex user and logged in
   IF     APEX_APPLICATION.g_user IS NOT NULL
      AND UPPER (APEX_APPLICATION.g_user) != 'NOBODY'
   THEN
      APEX_CUSTOM_AUTH.set_session_id_to_next_value;

      APEX_CUSTOM_AUTH.define_user_session (
         p_user         => APEX_APPLICATION.g_user,
         p_session_id   => APEX_APPLICATION.g_instance);

      APEX_CUSTOM_AUTH.post_login (
         p_uname        => APEX_APPLICATION.g_user,
         p_session_id   => APEX_APPLICATION.g_instance,
         p_app_page     =>    APEX_APPLICATION.g_flow_id
                           || ':'
                           || NVL (APEX_APPLICATION.g_flow_step_id, 1));
      RETURN TRUE;
   END IF;

   RETURN FALSE;
EXCEPTION
   WHEN OTHERS
   THEN
      OWA_UTIL.status_line (nstatus         => 401,
                            creason         => 'Unauthorized',
                            bclose_header   => FALSE);
      HTP.P ('WWW-Authenticate: NTLM');
      OWA_UTIL.mime_header ('text/html', FALSE, 'utf-8');
      OWA_UTIL.http_header_close;
      wwv_flow.g_unrecoverable_error := TRUE;
      RETURN FALSE;
END;
/



...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38976427
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трудяга БиггерSahА способа получения имени пользователя windows, кроме приведённого выше по моей ссылке, до сих пор не предложено.
предложено. используйте apex listener (ORDS) + Apache TomCat. Для томката есть фильтр spnego . всё работает отлично. не раз настраивал.

Спасибо, не слышал про этот проект.
А как к АПЕКСУ его прикрутить, чтобы в приложении получить :APP_USER?
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38976496
SahТрудяга Биггерпропущено...
Спасибо, не слышал про этот проект.
А как к АПЕКСУ его прикрутить, чтобы в приложении получить :APP_USER?
если у Вас апач+линукс, то попробуйте модуль mod_auth_kerb, ссылка в есть выше. этот путь проще.
если все же хочется ords+tomcat, то для начала попробуйте их заинсталлить и настроить. доки есть в сети.
а как прикрутить spnego могу рассказать, Вы для начала определитесь с сервером приложений.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38976556
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sah,
Не вижу кода
l_username := APEX_CUSTOM_AUTH.get_username;
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977206
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Sah,
Не вижу кода
l_username := APEX_CUSTOM_AUTH.get_username;

Не совсем понял, что ты имел в виду.
Код: plsql
1.
APEX_CUSTOM_AUTH.get_username

- это стандартная функция Апекса из пакета APEX_CUSTOM_AUTH
APEX_CUSTOM_AUTH.get_username

В коде, что я привел, сначала проверяется, не был ли уже зарегистрирован пользователь в сессии.
Если не был, то парсится содержимое переменной среды AUTHORIZATION и извлекается имя пользователя.

Потом этот пользователь регистрируется в сессии.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
   -- user is an apex user and logged in
   IF     APEX_APPLICATION.g_user IS NOT NULL
      AND UPPER (APEX_APPLICATION.g_user) != 'NOBODY'
   THEN
      APEX_CUSTOM_AUTH.set_session_id_to_next_value;

      APEX_CUSTOM_AUTH.define_user_session (
         p_user         => APEX_APPLICATION.g_user,
         p_session_id   => APEX_APPLICATION.g_instance);

      APEX_CUSTOM_AUTH.post_login (
         p_uname        => APEX_APPLICATION.g_user,
         p_session_id   => APEX_APPLICATION.g_instance,
         p_app_page     =>    APEX_APPLICATION.g_flow_id
                           || ':'
                           || NVL (APEX_APPLICATION.g_flow_step_id, 1));
      RETURN TRUE;
   END IF;
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977219
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трудяга БиггерSahпропущено...

Спасибо, не слышал про этот проект.
А как к АПЕКСУ его прикрутить, чтобы в приложении получить :APP_USER?
если у Вас апач+линукс, то попробуйте модуль mod_auth_kerb, ссылка в есть выше. этот путь проще.
если все же хочется ords+tomcat, то для начала попробуйте их заинсталлить и настроить. доки есть в сети.
а как прикрутить spnego могу рассказать, Вы для начала определитесь с сервером приложений.

Покажу нашему админу. Посмотрим, что будет легче внедрить. Пока спасибо.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977262
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SahНе совсем понял, что ты имел в виду.
Мне непонятны были 2 момента:
- если ты искал лишний символ, то покажи в какой строке и кода он появился.
- какая цель данной авторизации с кучей кода? Чем не подходит метод с хранением логина в куках?
Этот метод вроде решает проблему аффтара топика.
Т.е. какой кейс использования LDAP в паре с APEX.
Это на сиквеле MS можно войти в БД при входе в операционку по виндовой авторизации.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977320
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Тема больше про NTLM и подобными, чем про LDAP. См. заголовок темы.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977327
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Тот код касается NTLM, а не LDAP
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977346
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevPetro123,
Тот код касается NTLM, а не LDAP
какая разница если они друг без друга не работают и не имеют смысла.
Эта тему нужна одному человеку раз в год.
Вот мне и непонятно, что такое строят авторы темы на APEX?
))
Если ввобще автоматом входить по машине-хосту, то накуя.
Если брать роли из LDAP, то другое.
Если .....
Короче IMHO имхо геморрой)))
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977361
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123какая разница
Они работают друг без друга и имеют каждый разный смысл.
Вопрос вполне актуальный в корпоративной среде.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977401
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,
ок
ты сказал да, я сказал нет - расписали.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977513
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пруф есть в теме, в ссылках здесь есть простая simple bind LDAP аутентификация без NTLM. Во второй используется NTLM. В общем-то достаточно.

+до кучи см примеры и код ntlm_util_pkg на pl/sql, там кстати нет обращений к dmbs_ldap.simple_bind_s

Тут разница описана:

https://abhijitw.wordpress.com/2011/08/13/kerbose-ntlm-and-ldap-difference/ NTLM: Authentication is the well-known and loved challenge-response authentication mechanism, using NTLM means that you really have no special configuration issues. As Microsoft likes to say, “It just works.”

LDAP: It is primarily a directory access protocol. They do different things. LDAP has a primitive authentication mechanism called “simple bind” that applications can use to verify credentials if they can’t handle other authentication protocols. It gets tricky because LDAP also includes an extensible authentication framework called SASL that allows alternate authentication protocols to be added.

А по поводу актуальности, в больших конторах, где есть множество систем в том числе из под разных СУБД, закрытых и т.д, большие дяди иногда хотят их интегрировать, это определенный этап информатизации контор, +желание не вводить пароль лишний раз не редкость. Особенно, если придёт вдруг начальник, кто в таких системах поработал, это вопрос скорее везения.

P.S.
Petro123ты сказал да, я сказал нет - расписали.
Учитывая, что ты часто пишешь в темы не разбираясь в проблеме, вполне достаточно, чтобы кому надо сделать правильный вывод
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977646
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,
"Для того чтобы судить о качестве приготовленной яичницы, необязательно уметь нести яйца"))
Ты же не будешь отрицать, что APEX не очень подходит для REST или веб\сокет-сервис разработки?
Для этого есть другие, более удобные средства.
Но почему-то, вдруг решил, что на APEX удобно делать SSO.
...
- В первой ссылке ты привёл текст о том, что "UTL_HTTP \ APEX" не поддерживает NTLM аутентификацию.
Но есть какие-то доморощенные наколеночные поделки.
Вероятно для безопасности в больших конторах.
- Во второй ссылке ты как раз и привёл пример такой поделки-примочки.
..
По поводу актуальности, если начальник пришёл не с понижением, то он легко найдёт решения на Java бесплатные. Или платные сертифицированные, но не на PL\SQL.
..
Так что, не надо тут туману и важности напускать, на данную "важную" тему).
Её важность, как мобильные темы, карты и веб-сервисы в APEX.
Но это IMHO конечно))
PS
Ты правда подумал сразу про NTLM, прочтя первый пост этого прошлогоднего топика?
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977665
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- В первой ссылке
я привёл ссылки, только чтобы подтвердить своё заявление, что NTLM и обсуждаемая LDAP аутентификация разные вещи

Petro123По поводу актуальности, если начальник пришёл не с понижением, то он легко найдёт решения на Java бесплатные. Или платные сертифицированные, но не на PL\SQL.
Ты не понял, задача интеграционного типа, нужно получить результат на apex.
А по-поводу нет поддрежки, а зачем компании Oracle поддерживать Microsoft какой-то там поддержкой ? Они друг с другом конкурируют как бы.

Petro123Ты правда подумал сразу про NTLM, прочтя первый пост этого прошлогоднего топика?
Сразу подумал и еще в прошлом году написал про NTLM, как вариант.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977699
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevСразу подумал и еще в прошлом году написал про NTLM, как вариант.
странно.
- разные или нет лень спорить
- Интеграция это SSO - между приложениями\доменами\...
У него в посте просто обычный повторный вход.
авторлогиниться по-новой
Т.е. куки или подстановка в ослике\фоксе))
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977708
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Нет, тебе лень читать, я достаточно материала привёл.
Куки это не то совсем, ну не хочет начальство вообще вводить пароль в апекс, особенно то, которое знает, что это возможно.
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #38977714
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,
OK ))))
Да пусть у нас будет начальство, которое не тащит в APEX всё что он где-то видел))). LOL
______________________________________________
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из APEX получить имя пользователя ОС Windows?
    #39478048
samorokovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Камрады, здравствуйте!
Получилось так, что жизнь потребовала запилить на APEXe приложение, поддерживающее прозрачную NTLM-аутентификацию, не из какой-либо другой ИС. а прямо из Win, т.е. чтобы доменный юзверь, раз залогинившийся в винде просто запустил в браузере APEX-приложение и оно знало кто этот юзверь.
APEX у меня 5.1.1., живет в Oracle 11.2.0.4 на Oracle Linux 7.3, используется Embedded PL/SQL Gateway.
Вроде в 5.1.1 есть тип схем аутентификации, поддерживающий SSO, там требуется указать родительское приложение, из которого наследуется аутентификация. Пока не понимаю, о каком приложении идет речь? О приложении APEX?
Друзья, сильно не пинайте, пока третий день читаю доки (на уровне "английский со словарем c google") и форумы, голова идет кругом от множества комбинаций и вариантов. Если не сложно, пните в нужном направлении и скжите, в общем, есть ли шанс запустить это в варианте EPG или нужно через сторонний вебсервер с использованием mod_plsql?
...
Рейтинг: 0 / 0
Как из APEX получить имя пользователя ОС Windows?
    #39478186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
samorokovskiy,
ORDS пока поставьте. Пока ответа ждете.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из APEX получить имя пользователя ОС Windows?
    #39679818
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В APEX передаём CGI переменную REMOTE_USER. Если в APEX ещё не открыта сессия, кастомный модуль APEX приложения авторизует REMOTE_USER и создаёт сессию.

Переменную REMOTE_USER создаёт модуль аутентификации Apache. Чтобы не привязываться к IE для Windows Integrated аутентификации я использовал модуль для Kerberos аутентификации mod_auth_kerb. В браузерах нужно включить Windows Integrated аутентификации для сетевых доменов Intranet. Для IE и Хром, это делается политикой домена Windows. В Fire Fox для применения политики нужен плагин, или настраивать вручную.

Ситуация существенно осложнялась тем, что не все пользователи сидят в домене Windows и имеют билет Kerberos. Модуль я допилил, чтобы кроме Kerberos поддержать авторизацию с куки. В Apache сделать стек из модулей аутентификации не удалось.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из APEX получить имя пользователя ОС Windows?
    #39946800
Памела
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab


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


Можно глянуть код этого модуля?
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как из APEX получить имя пользователя ОС Windows?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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