powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
24 сообщений из 24, страница 1 из 1
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39063109
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно сабж
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39064375
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сторона Java более менее прояснилась.
Теперь как мне соединить Java код и APEX аутентификацию?
В java при входе на JSP страничку мы в фильтре проверяем есть ли сессия. Если нет, то редирект на
спец провайдера SSO который общается например, с одноклассниками.
После входа в них, это пров шлёт логин обратно.
Ищем как этот код (уже есть) соединить с APEX.
ords?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39064802
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вар1
Java пишет в куку токен и сразу редирект на апекс с аутентифика по куке.
Вар2
Влезть в ords.war....и дописать чтобы либо допускал до "тела" либо нет.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39065650
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, а почему именно SAML?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39065742
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,
Заказчик крупный. Его решение.
Как пример я выдумал Одноклассников.
На чём они не знаю.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39066671
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, часто провайдеры учетных записей обеспечивают взаимодействие по нескольким протоколам. Использование oauth2 уже более-менее проработано в Apex, например, существуют плагины аутентификации с использованием учетных записей Google, Facebook, etc. У меня перед глазами решение sso для APEX и j2ee приложений, где поставщик учетных записей - сервер авторизации OpenAM, для APEX приложений используется аутентификация по протоколу oauth2, для j2ee - родной для них SAML.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39066731
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidУ меня перед глазами решение sso
ну дак поделился бы.
У меня заказчмк просит SAML.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067108
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, советом я уже поделился. Предоставление конкретного решения - это уже сотрудничество с соответствующими атрибутами. Если заказчик требует XAML - что ж, это, скорее всего, тоже возможно.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,
мне не нужно конкретное решение.
Мне нужна форумная подсказка:
- как передать ответ idP в APEX?
- как получить ошибку или стек-трейс от idP т.е. банальный дебаг при программировании.
Обычные банальные вопросы, а не... ставь плагин и всё в ажуре.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067141
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, ок, вот ещё пара вещей:
1. Как передается ответ IdP (поставщика идентификации) поставщику сервиса (Apex приложению): это предусмотрено собственно протоколом SAML - через URL в параметре ACS (Assertion Consumer Service) запроса на аутентификацию (точно так же, как в Oauth2).
2. Очень полезная документация в Google Developers, вам, возможно, поможет вот это
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067190
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid1. Как передается ответ IdP (поставщика идентификации) поставщику сервиса (Apex приложению): это предусмотрено собственно протоколом SAML - через URL в параметре ACS (Assertion Consumer Service) запроса на аутентификацию (точно так же, как в Oauth2).
т.к. в конфиге я пишу: ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
то он передаёт ответ обратным редиректом на мой адрес POS с XML внутри.
Дальше то что?
Как ответ парсить без Java если написать ему ответить в APEX
Код: xml
1.
AssertionConsumerServiceURL="http://192.aaaaaaa:8080/apex/f?p=15"


?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067197
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid2. Очень полезная документация в Google Developers, вам, возможно, поможет вот это
ok
было бы здорово, чтобы был тестовый isP в сети, как у приложений APEX Oracle
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067243
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, обычно с Апексовским URL бывают проблемы так как провайдер идентификации добавляет к callback url свои параметры, поэтому обычно в качестве callback URL используют открытую через http сервер (ords еtс...) специальную pl/sql процедуру, в которой производится обработка полученного ответа. Например, если вы создадите продедуру-обработчик mypakage.saml_callback, параметр AssertionConsumerServiceURL будет " https://yourhost:8080/apex/mypakage.saml_callback"
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067272
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidPetro123, обычно с Апексовским URL бывают проблемы так как провайдер идентификации добавляет к callback url свои параметры, поэтому обычно в качестве callback URL используют открытую через http сервер (ords еtс...) специальную pl/sql процедуру, в которой производится обработка полученного ответа. Например, если вы создадите продедуру-обработчик mypakage.saml_callback, параметр AssertionConsumerServiceURL будет " https://yourhost:8080/apex/mypakage.saml_callback"
- допустим.
Но, после логина на idP он редиректит на 8080/apex/mypakage.saml_callback
- как мне там распарсит его XML формата SAML? Руками?
- как мне потом редиректить на вход в APEX?
- если редиректить, то полностью открыть APEX без всех схем аутентификации?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067284
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
- как мне там распарсит его XML формата SAML? Руками?
Да
- как мне потом редиректить на вход в APEX?
owa_util.redirect_url
- если редиректить, то полностью открыть APEX без всех схем аутентификации?
Нет. Все эти действия должны происходить в рамках custom системы аутентификации, например, callback процедура делает отметку в специальной таблице, котлрую потом проанализирует page_sentry функция схемы аутентификации.
На этом сегодня прощаюсь.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39067290
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid- как мне там распарсит его XML формата SAML? Руками?
Да
уже делаю там, где отправляется запрос - на Java.
А записать в БД или куку тоже может и Java приложение\ords сразу перед APEX'ом.
Получается не выгодно в APEX ничего делать.
Т.е. кастом схема берёт SSO логин или с БД или с куки.
А пишет туда кто-то другой.
imho
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39123813
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java половину написал демку.
Теперь нужно передать логин\ФИО в апекс.
Вот, ломаю гов\лову как это сделать.
1. CGI переменные я так понял устарело ка метод.
Т.е. я так понял, что в томкате этого нет. И записать в переменную REMOTE_USER я не нашёл как.
2. урл параметром - тоже наверно не красиво
3. В БД томкат создаёт БД сессий и потом их контролирует. А в Апекс только лазить в эту БД.
Тоже не красиво.
4. В сессионную свою куку добавлять, а в custom схеме аутентификации читать перед загрузкой _каждой стрнички_. Минус в том, что приложение Java и EPG или ords должны быть в одном домене и порту. Иначе куку не записать.
5. Схема авторизации HTTP заголовок. Вроде пишут что такая есть. Пока не копал.
....
Счас буду пробовать 4 п.п.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39123927
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
список заголовков HTTP
https://ru.wikipedia.org/wiki/Список_заголовков_HTTP
- есть опыт передачи инфы?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39123931
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая технология в томкате отсутствует...устарело...
1- Added a new CGI variable in the DAD :
PlsqlCGIEnvironmentList PF_AUTH_SUBJECT
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39123948
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это грубый алгоритм SSO:

Два домена, в разных TLD: example.org и example.com
Аутентификация идет на example.org.
Оба сайта имеют доступ к общему серверу сессий (им может являться специализированное решение типа RADIUS, БД или один из сайтов)
При посещении example.com отправляем пользователя на некий example.org/a12n?return_uri=http://example.com/
Наш example.org отрабатывает аутентификацию. Если надо — показывает форму логина и требует авторизации, если нет, создает анонимную сессию (если на сайте нужны анонимы).
Созданная example.org сессия запоминается на сервере сессий. Сессия идентифицируется по некоторому уникальному значению (ID), которое трудно подобрать (генераторы энтропии в помощь). ID сессии хранится в cookies example.org.
Перебрасываем клиента назад на example.com, добавляя к адресу параметр ?auth.data=<ID сессии>. Для безопасности, лучше ID пошифровать любым хорошим симметричным алгоритмом, устойчивым к known-plaintext атакам, и подписать, упомянув время, в которое этот ID был выдан, и некоторое nonce-значение (для защиты от replay-атак).
Наш example.com видит параметр auth.data, удостоверяется у сервера сессий, что такая сессия существует и корректна (здесь он узнает и кто, собственно, пользователь), сохраняет ID сессии в cookies и делает редирект сам на себя, на тот же адрес, но уже без auth.data.
В итоге, оба сайта имеют session ID (который, вообще говоря, может быть уникален для каждого сайта, и просто ссылаться на одну сессию). Задача выполнена, single sign-on реализован.
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39128584
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос по кукам:
- В куку пишу логин и ФИО
- java
Код: sql
1.
2.
3.
4.
		String sTemp = "Осипов Валерий";
		String sTempEncoder = URLEncoder.encode(sTemp, "UTF-8");
		
		Cookie cook = new Cookie(cookiesName, sTempEncoder);


вижу эту куку на F12
авторСырые: APEX_JSESSIONID=%D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2+%D0%92%D0%B0%D0%BB%D0%B5%D1%80%D0%B8%D0%B9; expires=Wed, 14 Dec 2016 10:40:40 GMT; path=/; domain=127.0.0.1
Значение: Осипов Валерий

т.е. FireBug сам расшифровал и всё верно.
- как мне расшифровать в APEX
Код: sql
1.
2.
3.
         
c := owa_cookie.get('APEX_JSESSIONID');
p_username := c.vals(1);


даёт сырые данные(.
...
2. Вопрос - как записать на Java в одну куку 2 значения чтобы получить
c.vals(1)
c.vals(2)
или это в APEX расходится по разным кукам?
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39128611
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, но повтор конвертации в оракле так же как в Java даёт другой результат:
Код: sql
1.
SELECT CONVERT('Осипов Валерий', 'UTF8', 'CL8MSWIN1251') FROM DUAL;


--Осипов Валерий
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39128953
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока пришлось поставить Java в оракл и добавить 2 функции на ней.
Если кто знает без Java решение - спасибо.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select urlencoder_java('Осипов Валерий', 'UTF-8') url from dual;
-- %D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2+%D0%92%D0%B0%D0%BB%D0%B5%D1%80%D0%B8%D0%B9
select urldecoder_java('%D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2+%D0%92%D0%B0%D0%BB%D0%B5%D1%80%D0%B8%D0%B9', 'UTF-8') url from dual;
-- Осипов Валерий

create or replace function urlencoder_java(url varchar2, charset varchar2) return varchar2 as
    language java name
    'java.net.URLEncoder.encode(java.lang.String, java.lang.String) return java.lang.String';
/
create or replace function urldecoder_java(url varchar2, charset varchar2) return varchar2 as
    language java name
    'java.net.URLDecoder.decode(java.lang.String, java.lang.String) return java.lang.String';
/
...
Рейтинг: 0 / 0
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
    #39129051
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 2. Вопрос - как записать на Java в одну куку 2 значения чтобы получить
c.vals(1)
c.vals(2)
или это в APEX расходится по разным кукам?
похоже по разным, судя по справке
автор owa_cookie.get_all
===================
http://docs.oracle.com/html/E12042_01/pscook.htm

3.4 owa_cookie.get_all procedure
This procedure returns all cookie names and their values from the client's browser. The values appear in the order in which they were sent from the browser.
Table 3-3 describes the properties of the owa_cookie.get_all procedure.
Table 3-3 owa_cookie.get_all procedures
Properties Definitions
Syntax:
owa_cookie.get_all(
names out vc_arr,
vals out vc_arr,
num_vals out integer);
Parameters:
names - the names of the cookies.
vals - the values of the cookies.
num_vals - the number of cookie-value pairs.
Generates:
Arrays of the names and values in the order received, and the count of the combinations.

а везде где есть в одной куке:
val1=param1; val2=param2
это делается руками парся значения через разделитель без всякого стандарта.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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