Re[7]: WCF security
От: _FRED_ Черногория
Дата: 01.11.10 18:48
Оценка:
Здравствуйте, shurik., Вы писали:

_FR>>То есть, настоящей секьюрности вам не надо, ибо подобные проверки не сказать, что бы являются защитой по-взрослому? ОК.


S>предлагаю на этом вопросе остановится поподробней, не в контексте этой задачи

S>имеем WCF или любой другой сервер, который требует виндовс аутентификации. Ещё имеем клиента (пусть он будет в виде сервиса виндовс). По вашему хранить зашифрованные креды это не по взрослому. А как по другому? сервису (который может быть запущен под кем угодно) по любому откуда-то эти креды нужно взять. Как тогда эта задача решается по взрослому? или вы имеете ввиду, что сама такая архитектура неверная с точки зрения секъюрити? а какая тогда верная? я это не из-за сарказма спрашиваю, просто может действительно я что-то упустил.

По взрослому не бывает, что "сервис … может быть запущен под кем угодно". Если сервису требуется обращаться куда-то от имени определённого пользователя, то почему сервис "может быть запущен под кем угодно" Нет, конечно, может, но — во всеми вытекающими (нужно самому заниматься расшифровками пароля и обеспечить, что бы никто не смог бы этого предотвратить). Проблема безопастности, описанная вами, есть административная задача и решаться должна соответствующим образом.

Если же вы уверены (и вам этого хочется или требуется), что вы сможете реализовать надёжность хранения/дешифровки не хуже операционной системы — делайте конечно. Если вам требуется лишь защита от чайника — делайте. Если вам требуется защита — научитель использовать то, что уже есть. Что может быть проще-то? Если у вас уже есть сервер, который разрешает подключаться только строго определённым пользователям — это уже довольно не слабое такое ограничение. По сравнению с ним требования указания пользователя для запуска сервиса — ерунда.

Далее. Почему бы вообще не диктовать адинам клиентов, как проверять и как раздавать права? Предоставьте администратору самому настроить, кто сможет подключаться к вашему серверу. Предоставьте администратору самому настроить, от имени кого будет запускаться клиентский сервис. Это самое простое, самое гибкое и самое надёжное решение.

Но если конечно вы видите в себе силы выполнить то, что задумали надёжнее — дерзайте. Просто я не вижу, как это можно было бы сделать, поэтому и агитирую в пользу самого безпроигрышного варианта.

Ещё примеры: при установке сервиса можно создавать группу в домене, пользователям которой будет разрешён доступ в серверу (тут я не уверен на счёт специлальных экаунтов). Или, на клиенте имеются два сервиса — один "под кем угодно" делает всё что угодно, второй "под тем кем надо" ходит на сервер. Первывй просит втрого "сходить" и отдать первому результат. Главное — во всех вариантах вы избавлены от необходимости знания и проверки credentials пользователя.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.