Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Применение авторизации на основе windows. / 12 сообщений из 12, страница 1 из 1
07.02.2008, 16:28
    #35117497
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Вобщем, интересует каким способом в приложении (не в субд) можно организовать управление ресурсами (фактически функциональность) которая зависит от конкретного пользователя.

Может немного непонятно написал, вот что сейчас есть:

Есть приложение, которым пользуются n человек, в основном секретари. Приложение работает с БД (доки и т.д). Сейчас любой может запустить прогу и сделать все что захочет. Это понятно что неправильно, т.к система не моя и сейчас приходится дописывать. Задача сводится к внедрению системы авторизации пользователей на основе WIN, т.е если человек залогинен под учеткой DOMAIN\Username, то проверить (опять же где хранить разграничения) имеет ли доступ на чтение/изменение/удаление/.

Как можно проще всего это реализовать? Что рекомендуете почитать?
...
Рейтинг: 0 / 0
07.02.2008, 17:56
    #35117857
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Как реализовано в базе управление пользователями ? База на чем ? В MS SQL'е управление через доверительное соединение WINDOWS позволяет решать как раз такие задачи.

Либо каждый логин WINDOWS персонально подключается к MS SQL и затем включается в одну/несколько ролей MS SQL - управление идет через роли, центр тяжести получается в MS SQL

Либо логины включаются в группы WINDOWS, а группа WINDOWS одним чохом поключаеся к роли MS SQL. Тогда, не трогая MS SQL, можно управлять правами включая/выключая логины в группы WINDOWS, центр тяжести переносится в WINDOWS.
...
Рейтинг: 0 / 0
07.02.2008, 18:30
    #35117960
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Сейчас такого понятия в приложении вообще нет. Один юзер бд и все. Он и админ, т.к может делать что угодно, поэтому куча косяков, чтото постоянно не работает.
Приложение (только приложение, не база) будет работать на win.

У меня видение вещей такое:
1. В БД будет 4 типа пользователей :админ,юзер,гость,системный . Системная учетка только для ведения журналов изменений, контроль доступа и т.д все что не относится к манипуляции данными.
2. Таблица разграничений прав тоже в БД, доступ к которой имеет только админ. Задается правами к таблице.
3. Пользователь запускает программу, проверяется текущая учетная запись (под которой он залогинен), далее проверяется уровень доступа пользователя. Если пользователь присутствует в таблице разграничения прав, то система начинает работать из под пользователя "юзер". в противном случае - "гость" (только чтение данных). Про админа говорить думаю не надо.
4. Например сервис баз данных переносится на другую платформу (UNIX) и тут же работоспособность системы идентификации на основе windows обламывается. ограничиваем ос от бд.(имхо пока не определил четко).

Пока все на стадии обдумывания, т.к опыта создания подобных систем пока очень мало. Хочется сделать все на должном уровне.
Вообще, думаю что жесткая привязка ОС и БД не нужна, т.к она важна только для клиента. В моем случае клиент будет только для windows. Иначе, я бы продумывал совершенно иную схему реализации.
...
Рейтинг: 0 / 0
07.02.2008, 19:06
    #35118064
sobolev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Dan Sosedov
3. Пользователь запускает программу, проверяется текущая учетная запись (под которой он залогинен), далее проверяется уровень доступа пользователя. Если пользователь присутствует в таблице разграничения прав, то система начинает работать из под пользователя "юзер". в противном случае - "гость" (только чтение данных). Про админа говорить думаю не надо.

Точно так не выйдет. В Win есть сервисные функции для проверки аутентификации, но вы должны подложить им полные имя и пароль. То есть, процесс примерно такой:
1. Запуск вашей программы
2. Программа извлекает текущее имя пользователя в Win (возможно, в привязке к домену)
3. Программа извлекает (из шифрованного хранилища) полный пароль этого пользователя (если он в базе данных, управляемой этой программой имеется).
4. Подставляете комбинацию {domain, userName, password} Windows'у. Если последняя говорит, что это канает, то входите в свою программу = все довольны.

Эта схема точно работает. По поводу сервиса Win ищите в MSDN строку "SSPI Authentication Sample".
...
Рейтинг: 0 / 0
07.02.2008, 19:27
    #35118100
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Да, примерно так я и представлял себе. Спасибо за ссылку в МСДН, посмотрю.

Вообще, с точки зрения организации мой вариант правилен? Насчет разграничения ос, бд, авторизации.
Какие еще можно применить варианты?
...
Рейтинг: 0 / 0
07.02.2008, 19:43
    #35118122
sobolev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Dan Sosedov
Вообще, с точки зрения организации мой вариант правилен? Насчет разграничения ос, бд, авторизации.
Какие еще можно применить варианты?
Трудно сказать. Все зависит от конкретики. Если ваше приложение не тиражируемое, то важнее хорошая документация стратегии, нежели ее абсолютная правильность.
К тому же надо учитывать вероятность и интенсивность возможной атаки на систему разграничения прав.
Лично я не стал бы резервировать типы пользователей (админ,юзер,гость,системный), а определил бы иерархию объектов (группы, пользователи, роли) и флаги, задающие ограничения прав, но это - на любителя.
...
Рейтинг: 0 / 0
08.02.2008, 14:20
    #35119975
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Возможно, что в последующих проектах получится внедрять другие типы систем авторизации, надо попробовать все, начиная с простых схем. Пока мне трудновато будет реализовать системы на основе иерархической структуры, как вы сказали.

Есть возможность привести пример (со ссылкой, если есть сорс) ? Посмотреть как все реализовавыется.
...
Рейтинг: 0 / 0
08.02.2008, 18:53
    #35121152
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Очень просто описано (конкретно на C#):
тынц
...
Рейтинг: 0 / 0
13.02.2008, 09:50
    #35128915
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Dan SosedovВобщем, интересует каким способом в приложении (не в субд)
если защита не в СУБД, то всё ущербно по защите IMHO
...
Рейтинг: 0 / 0
15.02.2008, 01:53
    #35134367
sraider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
Petro123 Dan SosedovВобщем, интересует каким способом в приложении (не в субд)
если защита не в СУБД, то всё ущербно по защите IMHO
Даже если к СУБД коннектится только app.server, а у пользователей вообще нет доступа к СУБД?
...
Рейтинг: 0 / 0
15.02.2008, 12:10
    #35134506
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
sraiderДаже если к СУБД коннектится только app.server, а у пользователей вообще нет доступа к СУБД?
Безусловно. Взгляните, например, на банк, в котором есть условно деньги в сейфах (данные в БД), клиенты (пользователи) и аппсервер (сотрудники). Ваша схема - это примерно то же самое, что было бы при "все сейфы нараспашку".
...
Рейтинг: 0 / 0
15.02.2008, 15:05
    #35135344
Dan Sosedov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение авторизации на основе windows.
вобщем, я сделал доступ по WIN-авторизации. т.е с помощью LDAP в указанном домене выбираются пользователи, им выставляются определенные привелегии и дальше коннект к БД идет только от соответствующих привелегиям БД-логинов.
Вроде как проще некуда. Каждый раз редактировать права и пользователей в самой БД не особо удобно.
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Применение авторизации на основе windows. / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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