powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / реализация Ws-securty в Delphi 7
20 сообщений из 20, страница 1 из 1
реализация Ws-securty в Delphi 7
    #36402082
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги!

У кого есть положительный опыт в связке Делфей с безопасными веб-сервисами?
Нужно создать клиента для доступа к готовому веб-сервису, в котором имеется авторизация (увы ).
А именно - надо передать логин и пароль к сервису, но через WS-Security.

Стандартный компонент HTTPRIO не создает блоки типа UsernameToken.

Поиск дополнительных библиотек успехом не увенчался. Вручную "запихивать" эти блоки в SOAP-заголовки на низком уровне HTTP тоже не срослось, вот что нашел:
http://www.delphigroups.info/2/8/347743.html
да и сложно это.

Помогите, пожалуйста.

P.S. Извиняюсь, что тему создаю сразу в двух разделах - накипело, все праздники бьемся.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36402181
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если сложно не хотите, тогда просто берите к примеру Silverlight и дружите его с сервисом парой кликов мышью.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36402396
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, доступ к сервису нужно реализовать в существующем проекте, написанном на Delphi :(
Таковы требования.

А за ответ спасибо - посмотрю для себя для самообразования.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36402538
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда-то тоже был ярым поклонником Delphi, но с течением времени и смотря на прогресс решил передраться на C#
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36402544
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черд не дописал и нажал Ctrl+Enter.

... решил перебраться на C# и Silverlight т.к. он мне был очень симпатичен.

решение принималось в конце 2008 и сейчас я не жалею что перебрался именно на него, потому что имею работу на этой замечательной технологии.

чего и вам советую.

p.s. просто нужно признать "делфи может не все" и что-то с этим делать.
p.p.s. да и старый он, этот Делфи7, хотя до сих пор остались теплые чувства к VCL
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36403035
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
escaper_,

К сожалению, мы в подобной же ситуации вынуждены были просто использовать другой способ аутентификации на сервисе. Но там был наш сервис и нам не сложно было включить basic-аутентификацию...

Я так понимаю, в вашем случае это не сработает?

Тогда из запасных вариантов мы рассматривали еще такой:
Разработать на .Net 3.0 (кстати, не исключено, что хватило бы и 2.0, WSE уже с версии 2.0 поддерживает все, что надо) маленькую библиотеку, которая будет всего лишь работать с нашим сервисом. Саму библиотеку реализовать в виде COM-библиотеки и уже использовать из унаследованного кода.
Основным недостатком было требование наличия .Net.

К сожалению, время тогда поджимало, и ничего особо искать мы не стали. Но при беглом осмотре мне не удалось найти ни одной приличной native библиотеки с поддержкой полного стека WS-* спецификаций, ни для Delphi, ни в виде COM. Встречались C++, но там активно использовались шаблоны т.е. бинарной совместимости не было и в помине (да и нет до сих пор уверенности, что именно они позволяли делать).
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36404543
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКакогда-то тоже был ярым поклонником Delphi, но с течением времени и смотря на прогресс решил передраться на C#

У нас пока вариантов нет. В крайнем случае - делать промежуточное приложение, как предлагает МихаилР.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36404544
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МихаилРescaper_,

К сожалению, мы в подобной же ситуации вынуждены были просто использовать другой способ аутентификации на сервисе. Но там был наш сервис и нам не сложно было включить basic-аутентификацию...

Я так понимаю, в вашем случае это не сработает?


Не сработает, сервис не нашей разработки. Пока в качестве временного решения просто отключили аутентификацию на сервере (чтобы реализовать функционал). Но это не выход.

МихаилР
К сожалению, время тогда поджимало, и ничего особо искать мы не стали. Но при беглом осмотре мне не удалось найти ни одной приличной native библиотеки с поддержкой полного стека WS-* спецификаций, ни для Delphi, ни в виде COM. Встречались C++, но там активно использовались шаблоны т.е. бинарной совместимости не было и в помине (да и нет до сих пор уверенности, что именно они позволяли делать).


Очень жаль...
Однако не верю, что задачка не решаемая. Будем смотреть еще amazonservices:

Сержescaper_, пару месяцев назад гуглил эту тему. Легкого пути там нет. Попробуй поискать что-то вроде "delphi 7 amazon ws security" там народ пытался из делфи 7 с амазоновскими сервисами работать.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36404557
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
escaper_Не сработает, сервис не нашей разработки. Пока в качестве временного решения просто отключили аутентификацию на сервере (чтобы реализовать функционал). Но это не выход.

Я не знаю всей вашей специфики, но возможно (в некоторых случаях это даже оправдано), можно попробовать использовать Proxy-сервис.
Т.е. вы разрабатываете сервис, который выполняет ровно 2 вещи: аутентификацию ваших пользователей, и прокидывание вызова до нужного вам сервиса. А тот сервис полностью доверяет вашему proxy-сервису (т.е. там либо аутентификация от фиксированной записи, либо просто с определенного адреса разрешен анонимный вход, ...).

Однако этот вариант возможен лишь при условии, что:
1. Сервис находится во внутренней сети (чтобы можно было доверять proxy).
2. Сервис не делит права по пользователям.

Потенциально предложенный мною вариант можно развить до "proxy авторизует по одному протоколу, затем из некоторого защищенного хранилища достает credential для указанного пользователя и уже прокидывает дальше запрос с этими параметрами".
Подход в целом не такой уж и редкий - большинство реализаций SSO так и сделано (и если у вас уже есть некоторое SSO-решение, можно использовать его базу). Но сами понимаете, что у вас появляется дополнительная головная боль и все заради обращения к одному сервису...

Могу еще добавить, что в WCF 4.0 появляется специальный тип сервиса Routing Service, который потенциально предназначен для подобных задач (т.е. перенаправлять запросы не зная их схемы и семантики). Не знаю, можно ли там решить конкретно вашу задачу, но посмотрите на всякий случай здесь
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36404656
Sysobjects
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы тоже посоветовал сделать фронт-енд сервис, если с нативными либами туго.

>>Не грози Владимирскому Централу, попивая виски у себя в Лондоне
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36406347
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МихаилР, Sysobjects, интересное решение вы предлагаете.
Но опять же неприменимо к нашему проекту. Наши разработка - это толстый клиент безо всякого веба, его функции - автоматическая проверка и обработка файлов на сервере. Задачка - нужно добавить еще один модуль обработки, который должен обращаться к веб-приложению, в составе которого имеется нужный нам сервис с авторизацией.

Тем не менее, всем вам спасибо за ответы. Вопрос задавал на трех форумах - в остальных топики вообще пустые, увы :(
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #36456074
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант можно взглянуть на iMacros, много возможностей по работе с вебом.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
реализация Ws-securty в Delphi 7
    #37528052
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблему решили, но не так, как хотелось бы, а обходным путем.
С аутентификацией в Delphi 7 и WS-Security долго бились, потеряли массу времени и сил.
Похоже, в этом варианте задача не имеет решения.

Нашли простое решение (в рамках платформы Intersystems Cache', на которой был реализован веб-сервис) - подстановка логина и пароля в адресную строку. Есть пример исходного кода:

var x:THTTPRio;
res_vpsk: VPSK;
wsdlLocation: string;
username: string;
password: string;
begin
wsdlLocation:=
'http://localhost:57772/csp/test/CD.MonitoringService.cls?WSDL=1';;
username:= '0830';
password:= 'password';
X := THTTPRio.Create(nil);
//при указании расположения WSDL передаем имя пользователя и пароль,
иначе процесс не сможет прочитать WSDL
X.WSDLLocation := wsdlLocation + '&&CacheUserName=' + username +
'&&CachePassword=' + password;
X.Service := 'MonitoringService';
X.Port := 'MonitoringServiceSoap';

res_vpsk := (X as MonitoringServiceSoap).test('1');
ShowMessage(res_vpsk.FIO+' '+res_vpsk.STATE);
end;

Надеюсь, что вам это тоже поможет. И вы сэкономите массу времени.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37533351
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
escaper_,

Спасибо, что нашли время и рассказали о результатах (если честно, спустя 2 годя я даже не ожидал - приятно!).
По правде говоря, я уже больше года не работаю в компании, в которой вставала подобная проблема - а в нынешней, использование Delphi практически отсутствует (хотя компания аутсорсер).
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37555031
escaper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МихаилР,

Да, проблема по-прежнему актуальна и для других. Как раз после такого вопроса, поступившего по электронке, и ответил здесь.
Так по крупицам и соберем базу знаний ;)
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37555737
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
escaper_,

Возможно, стоит тогда разместить ответ еще и в разделе Cache. Все-таки решение опирается на особенности их реализации.
Потому что то, решение, которое использовали вы это действиетельно workaround весьма специфичный. Все SOAP-стандарты, на сколько мне известно, работают на базе POST-запросов, поэтому передача чего-либо в строке запроса просто не будет работать.
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37817806
HooliGUN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аналогично долго бился с подобной проблемой, пока не наткнулся на ее решение на эмбаркадеровском форуме

https://forums.embarcadero.com/thread.jspa?threadID=44370

читать пост Jean-Marie Babet от Oct 9, 2010 2:51 PM
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37818323
Alex S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HooliGUNаналогично долго бился с подобной проблемой, пока не наткнулся на ее решение на эмбаркадеровском форуме

https://forums.embarcadero.com/thread.jspa?threadID=44370

читать пост Jean-Marie Babet от Oct 9, 2010 2:51 PM
Спасибо! Как раз нужно.

уТКаp.s. просто нужно признать "делфи может не все" и что-то с этим делать.
не подтверждается )
...
Рейтинг: 0 / 0
реализация Ws-securty в Delphi 7
    #37838977
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Sне подтверждается )
Увы, как показывает данный топик - проблемы есть.
Причем в первую голову, не хватает инструментов для создания многозвенных распределенных систем. А это - основа крупного корпоративного ПО сегодня.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
реализация Ws-securty в Delphi 7
    #39378691
Фотография Romka-Fes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex SHooliGUNаналогично долго бился с подобной проблемой, пока не наткнулся на ее решение на эмбаркадеровском форуме

https://forums.embarcadero.com/thread.jspa?threadID=44370

читать пост Jean-Marie Babet от Oct 9, 2010 2:51 PM
Спасибо! Как раз нужно.

уТКаp.s. просто нужно признать "делфи может не все" и что-то с этим делать.
не подтверждается )

Бьюсь с этой же проблемой, ссылка на форум уже умерла.
Не поделитесь решением Plz?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / реализация Ws-securty в Delphi 7
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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