Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку. / 24 сообщений из 24, страница 1 из 1
28.09.2015, 14:12
    #39063109
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
собственно сабж
...
Рейтинг: 0 / 0
29.09.2015, 16:20
    #39064375
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
сторона Java более менее прояснилась.
Теперь как мне соединить Java код и APEX аутентификацию?
В java при входе на JSP страничку мы в фильтре проверяем есть ли сессия. Если нет, то редирект на
спец провайдера SSO который общается например, с одноклассниками.
После входа в них, это пров шлёт логин обратно.
Ищем как этот код (уже есть) соединить с APEX.
ords?
...
Рейтинг: 0 / 0
30.09.2015, 07:41
    #39064802
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Вар1
Java пишет в куку токен и сразу редирект на апекс с аутентифика по куке.
Вар2
Влезть в ords.war....и дописать чтобы либо допускал до "тела" либо нет.
...
Рейтинг: 0 / 0
30.09.2015, 22:25
    #39065650
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123, а почему именно SAML?
...
Рейтинг: 0 / 0
01.10.2015, 08:02
    #39065742
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
non-apexoid,
Заказчик крупный. Его решение.
Как пример я выдумал Одноклассников.
На чём они не знаю.
...
Рейтинг: 0 / 0
02.10.2015, 08:55
    #39066671
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123, часто провайдеры учетных записей обеспечивают взаимодействие по нескольким протоколам. Использование oauth2 уже более-менее проработано в Apex, например, существуют плагины аутентификации с использованием учетных записей Google, Facebook, etc. У меня перед глазами решение sso для APEX и j2ee приложений, где поставщик учетных записей - сервер авторизации OpenAM, для APEX приложений используется аутентификация по протоколу oauth2, для j2ee - родной для них SAML.
...
Рейтинг: 0 / 0
02.10.2015, 09:45
    #39066731
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
non-apexoidУ меня перед глазами решение sso
ну дак поделился бы.
У меня заказчмк просит SAML.
...
Рейтинг: 0 / 0
02.10.2015, 13:48
    #39067108
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123, советом я уже поделился. Предоставление конкретного решения - это уже сотрудничество с соответствующими атрибутами. Если заказчик требует XAML - что ж, это, скорее всего, тоже возможно.
...
Рейтинг: 0 / 0
02.10.2015, 13:54
    #39067120
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
non-apexoid,
мне не нужно конкретное решение.
Мне нужна форумная подсказка:
- как передать ответ idP в APEX?
- как получить ошибку или стек-трейс от idP т.е. банальный дебаг при программировании.
Обычные банальные вопросы, а не... ставь плагин и всё в ажуре.
...
Рейтинг: 0 / 0
02.10.2015, 14:19
    #39067141
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123, ок, вот ещё пара вещей:
1. Как передается ответ IdP (поставщика идентификации) поставщику сервиса (Apex приложению): это предусмотрено собственно протоколом SAML - через URL в параметре ACS (Assertion Consumer Service) запроса на аутентификацию (точно так же, как в Oauth2).
2. Очень полезная документация в Google Developers, вам, возможно, поможет вот это
...
Рейтинг: 0 / 0
02.10.2015, 15:00
    #39067190
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
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
02.10.2015, 15:02
    #39067197
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
non-apexoid2. Очень полезная документация в Google Developers, вам, возможно, поможет вот это
ok
было бы здорово, чтобы был тестовый isP в сети, как у приложений APEX Oracle
...
Рейтинг: 0 / 0
02.10.2015, 15:48
    #39067243
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123, обычно с Апексовским URL бывают проблемы так как провайдер идентификации добавляет к callback url свои параметры, поэтому обычно в качестве callback URL используют открытую через http сервер (ords еtс...) специальную pl/sql процедуру, в которой производится обработка полученного ответа. Например, если вы создадите продедуру-обработчик mypakage.saml_callback, параметр AssertionConsumerServiceURL будет " https://yourhost:8080/apex/mypakage.saml_callback"
...
Рейтинг: 0 / 0
02.10.2015, 16:28
    #39067272
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
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
02.10.2015, 16:38
    #39067284
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Petro123,
- как мне там распарсит его XML формата SAML? Руками?
Да
- как мне потом редиректить на вход в APEX?
owa_util.redirect_url
- если редиректить, то полностью открыть APEX без всех схем аутентификации?
Нет. Все эти действия должны происходить в рамках custom системы аутентификации, например, callback процедура делает отметку в специальной таблице, котлрую потом проанализирует page_sentry функция схемы аутентификации.
На этом сегодня прощаюсь.
...
Рейтинг: 0 / 0
02.10.2015, 16:47
    #39067290
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
non-apexoid- как мне там распарсит его XML формата SAML? Руками?
Да
уже делаю там, где отправляется запрос - на Java.
А записать в БД или куку тоже может и Java приложение\ords сразу перед APEX'ом.
Получается не выгодно в APEX ничего делать.
Т.е. кастом схема берёт SSO логин или с БД или с куки.
А пишет туда кто-то другой.
imho
...
Рейтинг: 0 / 0
09.12.2015, 09:40
    #39123813
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Java половину написал демку.
Теперь нужно передать логин\ФИО в апекс.
Вот, ломаю гов\лову как это сделать.
1. CGI переменные я так понял устарело ка метод.
Т.е. я так понял, что в томкате этого нет. И записать в переменную REMOTE_USER я не нашёл как.
2. урл параметром - тоже наверно не красиво
3. В БД томкат создаёт БД сессий и потом их контролирует. А в Апекс только лазить в эту БД.
Тоже не красиво.
4. В сессионную свою куку добавлять, а в custom схеме аутентификации читать перед загрузкой _каждой стрнички_. Минус в том, что приложение Java и EPG или ords должны быть в одном домене и порту. Иначе куку не записать.
5. Схема авторизации HTTP заголовок. Вроде пишут что такая есть. Пока не копал.
....
Счас буду пробовать 4 п.п.
...
Рейтинг: 0 / 0
09.12.2015, 11:30
    #39123927
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
список заголовков HTTP
https://ru.wikipedia.org/wiki/Список_заголовков_HTTP
- есть опыт передачи инфы?
...
Рейтинг: 0 / 0
09.12.2015, 11:36
    #39123931
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
такая технология в томкате отсутствует...устарело...
1- Added a new CGI variable in the DAD :
PlsqlCGIEnvironmentList PF_AUTH_SUBJECT
...
Рейтинг: 0 / 0
09.12.2015, 11:55
    #39123948
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
Это грубый алгоритм 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
15.12.2015, 14:29
    #39128584
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
вопрос по кукам:
- В куку пишу логин и ФИО
- 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
15.12.2015, 14:45
    #39128611
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
странно, но повтор конвертации в оракле так же как в Java даёт другой результат:
Код: sql
1.
SELECT CONVERT('Осипов Валерий', 'UTF8', 'CL8MSWIN1251') FROM DUAL;


--Осипов Валерий
...
Рейтинг: 0 / 0
15.12.2015, 18:10
    #39128953
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
пока пришлось поставить 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
15.12.2015, 19:03
    #39129051
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку.
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
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужно SSO по протоколу SAML. Кто делал? Копаю сам помаленьку. / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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