Zajmuję się tworzeniem aplikacji WinForm .net, przeznaczonych do uruchamiania w kilku oddziałach banku jako aplikacja zapasowa, gdy główna aplikacja (aplikacja internetowa) jest niedostępna z powodu problemów z połączeniem z centralny węzeł banku. Same oddziały nie liczą się z żadnymi usługami dla przedsiębiorstw poza bazą danych SQL-Server. Z tego powodu aplikacja powinna móc łączyć się bezpośrednio z serwerem SQL. Mój problem powstaje, gdy muszę podać aplikację z hasłem do połączenia z bazą danych:Zabezpieczenia ciągów połączeń w aplikacji pulpitu .net
1) Zapisywanie hasła w czystym tekście w pliku app.config lub podobnym nie jest opcją (klient wymaga hasła do być zaszyfrowane)
2) Przechowywanie hasła zaszyfrowanego w pliku konfiguracyjnym prowadzi do potrzeby posiadania lokalnego klucza szyfrującego. Klucz szyfrowania może być po prostu zakodowany w kodzie aplikacji, ale byłby łatwy do odczytania za pomocą .net-decompiler lub podobnego.
3) Używanie niestandardowego algorytmu do szyfrowania/odszyfrowywania nie działa z tych samych powodów, co 2).
4) Zintegrowane bezpieczeństwo nie jest obsługiwany przez bank
Dodatkowo, klienci wymagają, że powinny one być w stanie zmienić hasło w jednym miejscu (w obrębie gałęzi) bez potrzeby, aby przejść z jednego komputera na inny aktualizowanie plików konfiguracyjnych (które wykluczają możliwość użycia klucza komputera do zaszyfrowania hasła w plikach konfiguracyjnych poszczególnych komputerów, takich jak asp.net).
Czy przedstawiłbyś inne podejście lub sugestię rozwiązania tego problemu? Byłbym wdzięczny za każdą pomoc. Dzięki z góry, BERNABE
Witam, dziękuję za odpowiedź. Posiadanie dostępu do danych w oddzielnej, samoobsługowej usłudze wygląda jak dobry sposób na przejście (w rzeczywistości byłoby to łatwe do wdrożenia, pod warunkiem, że już umieścił wszystkie funkcje dostępu do danych za fasadą. robię małe badania na temat hostowanych usług wcf i odkryłem, że Microsoft nie zaleca tej opcji dla środowisk produkcyjnych. Co o tym sądzisz? Czy wiesz o jakimkolwiek systemie produkcyjnym, który z niej korzysta? Jestem całkiem nowy w WCF Dzięki! Bernabé –
Jeśli hostujesz go w tej samej aplikacji, AFAIK, będzie działał pod tym samym kontem użytkownika, co nie jest tym, czego potrzebujesz.Zalecam hosting WCF jako usługę Windows, ponieważ jest łatwy do zabezpieczenia, działa lokalnie i nie musisz instalować niczego innego na pudełku, jak na przykład IIS. Oto link do artykułu MSDN opisujący opcje hostingu, wskazujący konkretnie hostowanie go jako usługi Windows. http://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic4 – jvilalta
Dokładnie, właśnie to miałem na myśli, gdy mnie brakowało - używając terminu "hosting własny". W opublikowanym artykule rozmawiają o "ograniczonych funkcjach o wysokiej dostępności", gdy porównują hosting usług Windows z hostingiem IIS. Ale nie są do końca konkretne, nie znam pogody, która mogłaby mieć znaczenie w moim przypadku, oddział mógł mieć nie więcej niż 20 jednoczesnych użytkowników. –