Witam, mam zamiar stworzyć pewną aplikację, której struktura będzie wyglądała mniej-więcej tak :
Serwer z bazą danych MySQL <---------> Serwer z uruchomioną usługą WCF
| |
strona www w ASP.NET aplikacja na Windows Phone 7
W skrócie : aplikacja WP7 lub strona, łączy się z serwisem WCF, on z bazą danych na innym serwerze.
i tutaj zaczyna się kłopot z autoryzacją, poczytałem troszeczkę, ale dalej nie wiem jak rozwiązać ten problem. Dodam, że serwer z usługą WCF będzie hostowany na Apachu, więc nie będzie IIS oraz MsSQL, co za tym idzie, nie zadziałają gotowe klasy do autoryzacji.
Myślałem, aby zbudować taki system autoryzacyjny :
Aplikacja użytkownika (ASP.NET, WP7), ma możliwość wpisania loginu i hasła, hasło jest hashowane i solone w SHA1 i obie te wartości są wysyłane do WCF, WCF łączy się z bazą danych i wyjmuje z tabeli login, hasło (w sha1 + salt) następnie, jeśli wartości się zgadzają, generowany jest GUID, a te 3 wartośći (login,hasło,guid) wrzucane są na serwerze do Cachu. Gdy logowanie się nie powiedzie -> Exception, jeśli zaś się uda, zwracany jest guid, który będzie cały czas przekazywany między aplikacjami i sprawdzany na serwerze. Nie wiem, gdzie go "upchnąć" ale pewnie gdzieś w Context, aby nie trzeba było dodawać go do każdej metody (jako parametr), którą chcemy wykonać w WCF.
Chciałbym się dowiedzieć, czy takie coś jest bezpieczne, oraz czy jest może jakiś inny, lepszy sposób mój pomysł.