powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение переменной сервера от Apache
6 сообщений из 6, страница 1 из 1
Получение переменной сервера от Apache
    #38415256
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует связка Apache + Trusted TLS + CSP 3.6/3.6 R2 + Oracle WebLogic Server 10.3.2.
То есть точка входа в apex-приложение через апач, существует два вида входа, обычный пользователь со стандартным сертификатом и пользователь имеющий токен-ключ.
В apex-приложении мне надо понять как пользователь добрался до него через обычный сертификат или через ключ.
Апач может отправлять серверные переменные, которые может обработать вэб-приложение.
Вопрос: как эти переменные считать в апекс?

Спасибо

PS:
Вот вырезка из доки по Trusted TLS:

Использование переменных сервера для аутентификации в веб-приложении
Модуль mod_digt_tls аналогично mod_ssl формирует переменные веб-сервера. Дополнительно к набору стандартного модуля в нем поддерживается переменная SSL_CLIENT_EKU, описание которой приводится в пункте «5. SSLRequire» раздела «Организация двусторонней аутентификации».
Переменные сервера удобно использовать для обеспечения аутентификации пользователя в веб-приложении по сертификату дополнительно к аутентификации по логину и паролю. Для этого необходимо на веб-сервере включить возможность (SSLVerifyClient optional) или требование (SSLVerifyClient require) установления двухсторонней аутентификации, а также добавить в веб-приложение определение соответствия между пользователем и его сертификатами. Наиболее простой способ – это помещать логин пользователя в одно из полей имени владельца сертификата аутентификации, а наиболее гибкий – хранить сертификаты или только уникальную информацию (имя издателя + серийный номер) из них в таблице веб-системы с привязкой к учетным записям пользователей.
Если Trusted TLS используется на отдельном от веб-приложения сервере, то на нем необходимо настроить передачу переменных сервера, например, с использованием директивы RequestHeader модуля mod_headers. Пример частичной конфигурации виртуального хоста:

ProxyPass / http://backend.some-portal.local/
ProxyPassReverse / http://backend.some-portal.local/

RequestHeader add Forwarded-Ssl-Client-I-Dn "%{SSL_CLIENT_I_DN}s"
RequestHeader add Forwarded-Ssl-Client-M-Serial "%{SSL_CLIENT_M_SERIAL}s"
RequestHeader add Forwarded-Ssl-Client-S-Dn "%{SSL_CLIENT_S_DN}s"

Название заголовков запроса должно удовлетворять RFC 822, п.3.1 (для HTTP/1.1 – RFC 2616, 4.2).
В данном примере пересылаемым переменным с целью отделения от локальных добавляется префикс «FORWARDED_». А доступ к ним должен производиться с префиксом «HTTP_FORWARDED_», например, «HTTP_FORWARDED_SSL_CLIENT_I_DN».
Пример обращения к переменным сервера из PHP:
<?php
function WriteServerVariable($sVarName)
{
echo $sVarName . " = '" . $_SERVER[$sVarName] . "'<br>";
}
WriteServerVariable("SSL_CLIENT_I_DN");
WriteServerVariable("SSL_CLIENT_M_SERIAL");
WriteServerVariable("SSL_CLIENT_S_DN");
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_I_DN");
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_M_SERIAL");
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_S_DN");
?>
Пример обращения к переменным сервера из ASP:
<%
sub WriteServerVariable(ByVal sVarName)
Response.Write sVarName & " = '" & Request.ServerVariables(sVarName) & "'"
Response.Write "<br>"
end sub
WriteServerVariable("CERT_ISSUER")
WriteServerVariable("CERT_SERIALNUMBER")
WriteServerVariable("CERT_SUBJECT")
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_I_DN")
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_M_SERIAL")
WriteServerVariable("HTTP_FORWARDED_SSL_CLIENT_S_DN")
%>
...
Рейтинг: 0 / 0
Получение переменной сервера от Apache
    #38416757
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

Как то так - https://forums.oracle.com/thread/928109
...
Рейтинг: 0 / 0
Получение переменной сервера от Apache
    #38416846
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо это оно и есть(или должно быть - надо проверять на практике).

Код: plsql
1.
owa_util.get_cgi_env(Var_X)



PS: Сегодня мне как раз аж приснился ответ на этот мой же вопрос ввиде пакета owa_util )))
...
Рейтинг: 0 / 0
Получение переменной сервера от Apache
    #38417365
чтобы эти переменные прочитать нужно их заэкспортить в конфигурации дада типа так:

Код: xml
1.
2.
3.
4.
5.
6.
<Location /mydad>
... 
    PlsqlCGIEnvironmentList SSL_CLIENT_S_DN
    PlsqlCGIEnvironmentList SSL_CLIENT_CERT
...
</Location>


после этого пользуйтесь owa_util.get_cgi_env, иначе будет пустота..
...
Рейтинг: 0 / 0
Получение переменной сервера от Apache
    #38418628
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трудяга Биггер,

Это на уровне апача. Так?
...
Рейтинг: 0 / 0
Получение переменной сервера от Apache
    #38420729
kasik,

ну да, в dads.conf
впишите туда нужные Вам переменные, и пробуйте. "SSL_CLIENT_S_DN" и "SSL_CLIENT_CERT" - это я для примера указал.
это я так получаю distinguished name (SSL_CLIENT_S_DN) и base-64 кодированный сертификат (SSL_CLIENT_CERT) при ssl-авторизации
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение переменной сервера от Apache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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