|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Вобщем, интересует каким способом в приложении (не в субд) можно организовать управление ресурсами (фактически функциональность) которая зависит от конкретного пользователя. Может немного непонятно написал, вот что сейчас есть: Есть приложение, которым пользуются n человек, в основном секретари. Приложение работает с БД (доки и т.д). Сейчас любой может запустить прогу и сделать все что захочет. Это понятно что неправильно, т.к система не моя и сейчас приходится дописывать. Задача сводится к внедрению системы авторизации пользователей на основе WIN, т.е если человек залогинен под учеткой DOMAIN\Username, то проверить (опять же где хранить разграничения) имеет ли доступ на чтение/изменение/удаление/. Как можно проще всего это реализовать? Что рекомендуете почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 16:28 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Как реализовано в базе управление пользователями ? База на чем ? В MS SQL'е управление через доверительное соединение WINDOWS позволяет решать как раз такие задачи. Либо каждый логин WINDOWS персонально подключается к MS SQL и затем включается в одну/несколько ролей MS SQL - управление идет через роли, центр тяжести получается в MS SQL Либо логины включаются в группы WINDOWS, а группа WINDOWS одним чохом поключаеся к роли MS SQL. Тогда, не трогая MS SQL, можно управлять правами включая/выключая логины в группы WINDOWS, центр тяжести переносится в WINDOWS. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 17:56 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Сейчас такого понятия в приложении вообще нет. Один юзер бд и все. Он и админ, т.к может делать что угодно, поэтому куча косяков, чтото постоянно не работает. Приложение (только приложение, не база) будет работать на win. У меня видение вещей такое: 1. В БД будет 4 типа пользователей :админ,юзер,гость,системный . Системная учетка только для ведения журналов изменений, контроль доступа и т.д все что не относится к манипуляции данными. 2. Таблица разграничений прав тоже в БД, доступ к которой имеет только админ. Задается правами к таблице. 3. Пользователь запускает программу, проверяется текущая учетная запись (под которой он залогинен), далее проверяется уровень доступа пользователя. Если пользователь присутствует в таблице разграничения прав, то система начинает работать из под пользователя "юзер". в противном случае - "гость" (только чтение данных). Про админа говорить думаю не надо. 4. Например сервис баз данных переносится на другую платформу (UNIX) и тут же работоспособность системы идентификации на основе windows обламывается. ограничиваем ос от бд.(имхо пока не определил четко). Пока все на стадии обдумывания, т.к опыта создания подобных систем пока очень мало. Хочется сделать все на должном уровне. Вообще, думаю что жесткая привязка ОС и БД не нужна, т.к она важна только для клиента. В моем случае клиент будет только для windows. Иначе, я бы продумывал совершенно иную схему реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 18:30 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Dan Sosedov 3. Пользователь запускает программу, проверяется текущая учетная запись (под которой он залогинен), далее проверяется уровень доступа пользователя. Если пользователь присутствует в таблице разграничения прав, то система начинает работать из под пользователя "юзер". в противном случае - "гость" (только чтение данных). Про админа говорить думаю не надо. Точно так не выйдет. В Win есть сервисные функции для проверки аутентификации, но вы должны подложить им полные имя и пароль. То есть, процесс примерно такой: 1. Запуск вашей программы 2. Программа извлекает текущее имя пользователя в Win (возможно, в привязке к домену) 3. Программа извлекает (из шифрованного хранилища) полный пароль этого пользователя (если он в базе данных, управляемой этой программой имеется). 4. Подставляете комбинацию {domain, userName, password} Windows'у. Если последняя говорит, что это канает, то входите в свою программу = все довольны. Эта схема точно работает. По поводу сервиса Win ищите в MSDN строку "SSPI Authentication Sample". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 19:06 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Да, примерно так я и представлял себе. Спасибо за ссылку в МСДН, посмотрю. Вообще, с точки зрения организации мой вариант правилен? Насчет разграничения ос, бд, авторизации. Какие еще можно применить варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 19:27 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Dan Sosedov Вообще, с точки зрения организации мой вариант правилен? Насчет разграничения ос, бд, авторизации. Какие еще можно применить варианты? Трудно сказать. Все зависит от конкретики. Если ваше приложение не тиражируемое, то важнее хорошая документация стратегии, нежели ее абсолютная правильность. К тому же надо учитывать вероятность и интенсивность возможной атаки на систему разграничения прав. Лично я не стал бы резервировать типы пользователей (админ,юзер,гость,системный), а определил бы иерархию объектов (группы, пользователи, роли) и флаги, задающие ограничения прав, но это - на любителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 19:43 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Возможно, что в последующих проектах получится внедрять другие типы систем авторизации, надо попробовать все, начиная с простых схем. Пока мне трудновато будет реализовать системы на основе иерархической структуры, как вы сказали. Есть возможность привести пример (со ссылкой, если есть сорс) ? Посмотреть как все реализовавыется. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 14:20 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Очень просто описано (конкретно на C#): тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 18:53 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Dan SosedovВобщем, интересует каким способом в приложении (не в субд) если защита не в СУБД, то всё ущербно по защите IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2008, 09:50 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
Petro123 Dan SosedovВобщем, интересует каким способом в приложении (не в субд) если защита не в СУБД, то всё ущербно по защите IMHO Даже если к СУБД коннектится только app.server, а у пользователей вообще нет доступа к СУБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2008, 01:53 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
sraiderДаже если к СУБД коннектится только app.server, а у пользователей вообще нет доступа к СУБД? Безусловно. Взгляните, например, на банк, в котором есть условно деньги в сейфах (данные в БД), клиенты (пользователи) и аппсервер (сотрудники). Ваша схема - это примерно то же самое, что было бы при "все сейфы нараспашку". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2008, 12:10 |
|
Применение авторизации на основе windows.
|
|||
---|---|---|---|
#18+
вобщем, я сделал доступ по WIN-авторизации. т.е с помощью LDAP в указанном домене выбираются пользователи, им выставляются определенные привелегии и дальше коннект к БД идет только от соответствующих привелегиям БД-логинов. Вроде как проще некуда. Каждый раз редактировать права и пользователей в самой БД не особо удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2008, 15:05 |
|
|
start [/forum/topic.php?fid=33&fpage=46&tid=1548864]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 160ms |
0 / 0 |