Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure Paweł Berus Zespół Bezpieczeństwa PCSS 36. Spotkanie Poznańskiej Grupy.NET Poznań, 13.10. 2011 1
Agenda Uwierzytelnianie Sesja Logowanie SQL Azure Hybrydy i aplikacje ON-PREMISE Monitorowanie Zagrożenia Podsumowanie 2
Uwierzytelnianie Rozwiązania mechanizmu logowania OpenID Systemy federacyjne AppFabric ACS (Access Control Service) Własne rozwiązania 3
Uwierzytelnianie AD FS (1) Przykładowa konfiguracja serwera System Microsoft Windows Server 2008 R2 Enterprise SP1 Active Directory Domain Services Web Service (IIS) Active Directory Federation Services 2.0 4
Uwierzytelnianie AD FS (2) Stacja dewelopera System Microsoft Windows Vista Enterprise x64 Microsoft Visual Studio 2010 Enterprise Windows AzureSDK v 1.4 Windows Azure Tools for Microsoft Visual Studio 2010 1.3 Windows Identity Foundation SDK v4.0 x64 5
Uwierzytelnianie AD FS (3) Tworzymy projekt Dodajemy WebRole Dodajemy referencję STS (Security Token Service) 6
Uwierzytelnianie AD FS (4) Uruchamiamy kreator Federation Utility 7
Uwierzytelnianie AD FS (5) Wskazujemy nasz serwer AD FS 8
Uwierzytelnianie AD FS (6) Wybieramy metodę walidacji certyfikatu 9
Uwierzytelnianie AD FS (7) Wybieramy certyfikat do szyfrowania tokena 10
Uwierzytelnianie AD FS (8) Lista właściwości poświadczenia 11
Uwierzytelnianie AD FS (9) Po pomyślnym zakończeniu kreatora mamy utworzony plik opisujący połączenie oraz sposób wymiany informacji z serwerem AD FS 12
Uwierzytelnianie AD FS (10) 13
Uwierzytelnianie AD FS (11) Konfiguracja serwera AD FS Uruchamiamy konsolę AD FS i przechodzimy do dodawania zaufanych stron 14
Uwierzytelnianie AD FS (12) Wskazujemy plik z deskryptorem wygenerowany przez kreator w Visual Studio 15
Uwierzytelnianie AD FS (13) Ustawiamy wstępną politykę dostępu do zasobów naszej aplikacji 16
Uwierzytelnianie AD FS (14) Ekran podsumowujący 17
Uwierzytelnianie AD FS (15) Czas na deployaplikacji do Windows Azure, pod adres który podaliśmy jako adres serwisu przy tworzeniu pliku metadanych opisujących komunikację z AD FS em Z poziomu Visual Studio Generując pakiet pod Visual Studio i tworząc instancję korzystając z panelu na stronie https://windows.azure.com/ 18
Uwierzytelnianie AD FS (16) Wpisujemy adres naszej strony w Windows Azure Mamy przekierowanie na serwer AD FS https://xxx.xxx.225.251/adfs/ls/?wa=wsignin1.0&w trealm=https%3a%2f%2fpbazurehs.cloudapp.net&wc tx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct= 2011-06-15T16%3a21%3a31Z 19
Uwierzytelnianie AD FS (17) Po przekierowaniu i podaniu danych autoryzacyjnych następuje przekierowanie do naszej aplikacji znajdującej się w Windows Azure z przekazaniem poświadczeń (Claims) 20
Uwierzytelnianie AD FS (18) Po pomyślnej autoryzacji zostajemy przekierowani na naszą stronę 21
Uwierzytelnianie AD FS (19) DEMO 22
Uwierzytelnianie AD FS (20) Pobieranie informacji o użytkowniku 23
Uwierzytelnianie AppFabric Access Control Service 24
Sesja (1) WIF spójny model dla ASP.NET i WCF Everything is managed as a SessionSecurityToken ASP.NET korzysta zhttp Cookies, WCF używasecure Conversation Cookie Mode Serwis jest bezstanowy Zawsze działa na farmach webowych Zazwyczaj bardzo wydajny Zalecane podejście w aplikacjach Musi być użyte przy WCF 25
Sesja (2) Session Mode Mała ilość danych przesyłanych po kablu Serwis musi być stanowy Działa na farmach webowych z współdzieloną bazą Zalecane dla ASP.NET, gdy cookies są za duże 26
Logowanie (1) Jak logować? 27
Logowanie (2) SQL Azure Azure Storage Azure Drive Serwery zewnętrzne 28
SQL Azure(1) Rozszerzenie SQL Server-a dla chmury Zgodne z produktem pudełkowym Database as a service Uruchomiony na klastrach w MS Dostęp przez protokół TDS Umożliwia symetryczność z dotychczasowymi produktami Przenośność Skalowalność 29
SQL Azure(2) Nie musimy się obawiać o aktualizowanie serwera Nie trzeba się bawić w konfigurowanie High Availability, replikację Awarie nie trzeba się martwić o awarie sprzętu, dysków, wszystkich rzeczy, które mogą się popsuć Każda baza, jaka jest tworzona, jest od razu replikowana Serwer nie jest fizycznym serwerem, czy maszyną wirtualną Firewall 30
SQL Azure poziomy bezpieczeństwa Usługa wymagany SSL wykrywanie DoS-ów inspekcja pakietów Serwer lista dozwolonych adresów IP usuwanie bezczynnych (idle) połączeń generowane nazwy serwerów Baza danych niedozwolone często atakowane nazwy użytkowników (SA, Admin, root, guest, itd.) 31
Hybrydy i aplikacje ON-PREMISE Dostęp do danych chronionych Ochrona infrastruktury Specyfika aplikacji ON-PREMISE AppFabric ServiceBus 32
Monitorowanie Windows Azure Diagnostics Śledzenie zdarzeń Zbieranie logów IIS Zbieranie danych diagnostycznych Konfigurowany przez użytkownika Zbieranie danych co określony czas lub na żądanie Cerebrata 33
Monitorowanie uruchomienie 34
Monitorowanie Web.config 35
Monitorowanie Generowanie danych diagnostycznych 36
Monitorowanie Przechowywanie danych lokalnie (1) 37
Monitorowanie Przechowywanie danych lokalnie (2) 38
Monitorowanie Web.config(dla IIS) 39
Monitorowanie zaplanowany transfer danych 40
Monitorowanie transfer danych na żądanie 41
Zagrożenia Wyciek kluczy Wyciek certyfikatów Konieczność wprowadzania zmian w ustawieniach frameworka Aplikacje zewnętrzne 42
Podsumowanie Duże możliwości integracji Monitorowanie i logi Zrównoważona wygoda i bezpieczeństwo Security-In-Depth 43
Pytania? 44
Kontakt Paweł Berus pawel.berus@man.poznan.pl 45