Форум: "Corba";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизManage clients Найти похожие ветки
← →
Dmitry Borisovets (2002-03-19 11:52) [0]Есть вопрос из области понимания CORBA.
Ситуация: есть один сервер и много клиентов. Есть ли способ, позволяющий определять конкретного клиента на уровне CORBA, либо же надо делать это вручную?
← →
Олег Лаукарт © (2002-03-26 10:33) [1]Хочу поддержать вопрос. Он уже поднимался в конференции несколько раз. Речь шла про определение ip адреса клиента, про обеспечение безопасности и прочее. Насколько я столкнулся на практике, практически всегда эти вопросы вызваны необходимостью идентификации пользователя, подтверждения его прав доступа и определения контекста доступа. Также этот вопрос поднимается при необходимости поддержки транзакций.
Насколько я понимаю, несмотря на то, что корба работает поверх TCP/IP (IIOP), тоесть есть возможность определить по-крайней мере задекларированного отправителя, не предоставляет возможности определить корба-клиента. Причины мне кажется такие: на одной машине может быть сколько угодно клиентов (с разными правами и т.д. и т.п.); один клиент может получать доступ с разных адресов; ну и наконец упомянутое выше отсутствие в TCP/IP безопасности.
Насколько я знаю в корбе специфицирован сервис безопасности, но он еще сырой и не понятно, есть ли реализации. Кто может что-нибудь рассказать про него, было бы очень интересно услышать.
Я решаю подобную задачу вручную. Схема чем-то похожа на cookies. Клиент регистрируется на сервере, в ответ, тот ему возвращает "контекст", который может включать в себя информацию про клиента (идентификационный код по которому можно получить права и проч.), состояние транзакции, и другое. Для обеспечения минимальной безопасности все это может шифроваться. Клиент при запросах передает этот "контекст" как inout параметр, а сервер при выполнении действий обновляет его содержимое. Проблема, что эту схему нельзя использовать если появляются oneway вызовы. Выход - "контекст" содержит только идентификатор, а содержимое хранится все время на сервере (в базе, кеше...). Но тут тоже есть нюансы. В приведенной схеме есть один огромный недостаток - она применима только для "закрытых" систем, где есть гарантия в "добропорядочности и честности" клиентов - никто не гарантирует, что клиент не передаст свой "контекст" другому, либо не исправит/испортит/.. его.
Хотелось бы услышать кто как решает поднятую задачу.
← →
Олег Лаукарт © (2002-03-26 11:00) [2]Тема поднята в "дискуссиях".
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c