2009-01-28 24 views
5

Pracuję nad usługą WCF, która będzie komunikować się przez net.tcp do n wystąpień aplikacji klienckiej (która jest rozwijana przez innego programistę w moim biurze).Pierwsza logika, ochrona WCF później?

W tej chwili używam net.tcp bez żadnego zabezpieczenia, ponieważ czułem, że ustawienie tego na tym etapie nie było konieczne, przynajmniej dopóki nie zbliżymy się do wdrożenia.

Podczas tworzenia aplikacji WCF, czy istnieje jakakolwiek szkoda w używaniu standardowego wiązania (net.tcp w moim przypadku) bez zabezpieczeń, to po zakończeniu logiki biznesowej należy wprowadzić wszystkie wymagania bezpieczeństwa? Czy są jakieś rzeczy, o których muszę wiedzieć, że mogą nie działać po wdrożeniu zabezpieczeń?

Odpowiedz

5

Choć ogólny projekt powinien rozważyć zabezpieczenie od samego początku , Nie sądzę, że dobrym pomysłem jest łączenie komponentów z jakąkolwiek konkretną strategią bezpieczeństwa. Być może zechcesz użyć niektórych swoich składników w sposób niezabezpieczony lub w innym protokole, który oferuje różne opcje zabezpieczeń.

Tak więc moja odpowiedź brzmi: tak i nie. Tak, musisz pomyśleć o tym od samego początku, ale nie powinieneś łączyć swoich komponentów ze swoimi potrzebami bezpieczeństwa.

To powiedziawszy, ponieważ wiesz, że będziesz używać net.tcp powinieneś być świadomy, że zabezpieczenia transportu są domyślnie włączone dla tego powiązania.

Aby uzyskać więcej informacji, zobacz fantastyczny rozdział Juval Lowy Programming WCF Services, rozdział 10. Lowy, w swojej bibliotece ServiceModelEx (omówione szczegółowo w książce) zapewnia naprawdę przyjemną strukturę, którą można podłączyć po utworzeniu komponentów. Nawet jeśli nie jest to dokładnie to, czego szukasz, możesz dostosować go do swoich potrzeb.

+0

Rzeczywiście czytałem programowanie usług WCF, ale nie osiągnąłem tak daleko. Zdecydowanie daję ten rozdział przeczytanemu :) –

+2

Tak - nie bój się po prostu zagłębić się w rozdział 10. Pominąłem 7, 8 i 9, aby trafić w zabezpieczenia. Jest bardzo dobrze napisany. –

3

Bezpieczeństwo należy przemyśleć od początku, a nie dodawać na końcu.

Opracuj plan swojego bezpieczeństwa i wprowadź go w życie, a nie na końcu.

referencyjne: Microsoft .NET: Projektowanie architektury aplikacji dla przedsiębiorstwa

http://www.amazon.com/Microsoft ®-NET architecting-Aplikacje-PRO-Developer/dp/073562609X

+0

Dzięki za odpowiedź. Jeśli mógłbyś zaktualizować swoją odpowiedź z kilkoma odniesieniami, które byłyby świetne. –

+0

Zrobię, najpierw muszę iść do domu. –

2

Masz dwie możliwości, upiecz od początku lub uderz na końcu. Z ogólną ochroną powiedziałbym, że to naprawdę nie działa w lukrze, więc musisz zrobić bałagan z ciasta, aby go tam dostać.

Jednak sposób, w jaki widzę twoje pytanie, już wiesz, że musisz zrobić coś, aby rozwiązać problem z bezpieczeństwem, po prostu nie zdecydowałeś, co robić. W takim przypadku zgodzę się z Terry, że powinieneś zaprojektować abstrakcję, która pozwoli ci wtłoczyć ewentualne rozwiązanie.

Gdybym był tobą, prawdopodobnie wykonałbym model zagrożenia i wykorzystałam go do rozważenia wkładów i ryzyk związanych z twoją usługą. Pomoże ci to zdecydować, co powinieneś w końcu zrobić i czy twoja abstrakcja obejmuje wszystkie podstawy.