Tagi na forum.

C# 1456 XML 282
SQL 1192 sieci 268
ASP.NET 785 IIS 262
Windows 726 C++ 255
web 608 Html 218
Visual Studio 515 Information Technology 193
SQL Server 425 MSDN 167

pokaż wszystkie tagi na forum

Uwierzytelnianie na Webio : ASP.NET + MsSql

stwolf 2011-07-26 14:06:26
0
avatar
 
 

Witam,
Proszę o poradę, pytanie raczej skierowane do osób korzystających z Webio i baz danych. Trochę poczytałem w necie i brakuje mi wiedzy praktycznej.
Zastanawia mnie ilość użytkowników dostępnych na koncie podstawowym ( tylko 2 ) i sposób autentykacji w takim wypadku.
Chciałbym przegryźć się przez proces autentykacji oraz autoryzacji użytkownika, na potrzeby selfeducation ;]. Założenia: - projekt obejmuje MsSql + ASP.NET + wielu użytkowników + membership i role provider + FormsAuthentication.
Dotychczas stosowałem membership i role providery obslugujące dane w plikach XML, z bazy nie korzystałem.
Chciałbym z XML zrezygnować : login i pass na oknie logowania były by jednocześnie używane do connecta do bazy danych i tym samym odzwierciedlały usera zalozonego w bazie.
Dzięki temu miałbym od razu załatwioną sprawę bezpieczeństwa danych dostępowych ( nie trzymanie ich w XML ani WebConfig , tylko na BD ) oraz ustanawiania uprawnień do obiektów na BD. Przygotowanie do tego scenariusza zapewne wykona za mnie regsql.exe?
Tutaj pojawia się problem, ponieważ w Webio jest informacja, że ilośc użytkowników bazy danych dla mojego konta to tylko 2. Moje pytanie, czy to jacyś użytkownicy typu Admin, a nadać granty do polaczenia można np. 20 innym userom i poprzydzielać im role? Dzięki temu mógłbym się łączyć do bazy bezpośrednio jak user/pass z okienka logowania i tam dokonać walidacji autentykacji, odczytu przyznanych ról w celach późniejszej autoryzacji. Np rejestracja usera by polegała na grant connect to user.
Pytanie główne:
Czy w takiej sytuacji jedyne rozwiązanie to łączenie się aplikacji zawsze poprzez usera Admin? Potem na jego sesji BD odczyt z tabeli uprawnień i ról dla faktycznie wpisanego usera z okienka logowania?
Tym samym zawsze musiałbym łączyć się jako admin z maksymalnymi uprawnieniami? Proszę wybaczyć, jeśli wszystko zagmatwane, jeśli coś wymaga uściślenia to piszcie ;].
Bardzo mnie ten temat męczy, bo mam wrażenie, że rozwiązanie jest prozaiczne..
Pozdrawiam.

Edytowano 1 raz. Ostatnio 2011-07-26 14:13:25 przez stwolf.
tagi: ASP.NET   XML


kowalsks  2011-07-27 18:13:14 #1
0
avatar
 
 
Na webio masz 2 uzytkownikow bazodanowych bo masz 2 bazy , wiec na kazda z baz danych mozesz miec osobnego wlasciciela bazy.
Jego login i hasło ustawiasz w web.configu zeby moc sie z ta baza danych polaczyc.
Co do membershipa to jezeli chcesz go uzywac z MSSQL'em konfigurujesz go zeby korzystal z connectionstringa do bazy. A ilu uzytkownikow bedziesz mial w membershipie nie jest zalezne od uzytkownikow bazodanowych. Uzytkownikow z membershipa mozesz przyporzadkowywac do rol ktore stworzysz. Nie maja oni nic wspolnego z uzytkonikiem bazodanowym.
 
Bedzie to wygladalo tak:
 
userDB (jego konto zakładasz przez panel webio) łączy się z baza danych.
 
Pozniej w kodzie swojej aplikacji lub poprzez ASP.NET Configuration tworzysz użytkowników w membershipie i oni w żaden sposob nie sa poloczenie z twoim userDB--pozdrawiam
Seba

pozdrawiam Seba
stwolf  2011-07-29 11:07:54 #1.1
0
avatar
 
 
Dzięki!
Zatem wychodzi jednak na to, że zawsze łączymy się poprzez userDB z maksymalnymi uprawnienami do bazy. Czyli zawsze ten sam connectionstring ;] . Credentiale dla danego usera odczytujemy już z bazy.
Moim zdaniem bardziej bezpieczna byłaby opcja na łączenie poszczególnych użytkowników z bazą. Bo jaką mamy pewność, że dana osoba zalogowana jako userDB nie przypuści injection ataku typu drop table...;]

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony