2008-10-02 19 views
21

Mamy usługi Web Service SOAP w produkcji, które opierają się na nagłówkach SOAP (zawierających poświadczenia klienta) w celu uwierzytelnienia. WS są używane w heterogenicznych środowiskach z klientami .NET/Java/PHP/Python/C++ zarówno w aplikacji internetowej, jak i na komputerze.Uwierzytelnianie usług sieciowych - najlepsze praktyki?

Rozważamy v2 dla tych WS i zastanawiam się, co jest uważane za najlepsze praktyki dla uwierzytelniania WS SOAP? (dość bezpieczny, a jednocześnie łatwy w obsłudze na wielu różnych platformach).

Odpowiedz

15

Najprostszym sposobem na obsłużenie go na różnych platformach jest użycie podstawowego uwierzytelniania HTTP i HTTPS dla warstwy transportowej. WS-Security będzie dobry, jeśli Twoje potrzeby wykraczają poza zwykłą nazwę użytkownika/hasło, ale wsparcie będzie się różnić nieco między platformami. Uwierzytelnianie HTTP jest obsługiwane przez każdą przyzwoitą implementację protokołu SOAP.

4

Jeśli musisz sam rzucić wszystko i nie możesz korzystać z protokołu HTTPS, sugerowałbym część nazwy WS-Security opartą na hash. Jest dość bezpieczny i dość łatwy do wdrożenia, o ile twoje biblioteki mają funkcje mieszające.

Jeśli korzystasz z usług internetowych, nie będę polegać na uwierzytelnianiu HTTP.

WS-Security jako całość jest o wiele za duża.

+1

Dlaczego nie polegać na istniejącym uwierzytelnianiu HTTP, czy jest to jedyne, jeśli NIE MOŻNA używać protokołu HTTPS? – Xailor

+0

@ Xepoch mówią o podstawowym uwierzytelnieniu, w którym nazwa użytkownika i pwd są wysyłane jako nagłówek mydła? – Mou

+0

@ David, proszę mi powiedzieć, jak zaimplementować "hash-based UsernameToken częścią WS-Security.". możesz podać mi dowolny link, skąd mogę odczytać kod i pobrać kod do uruchomienia na moim komputerze. dzięki – Mou

2

Sposób, w jaki rozwiązałem ten problem w przeszłości, polega na użyciu standardowych funkcji WS- *.

Zamiast korzystać z funkcji uwierzytelniania, włączamy funkcję integralności nagłówka wiadomości. To wymaga, aby obie strony okna dialogowego miały dostęp do pary kluczy publiczny/prywatny i wykryły wszelkie manipulowanie polem nazwy użytkownika w nagłówku. Możesz więc mieć pewność, że każdy, kto wysłał wiadomość i ustawił identyfikator użytkownika, ma dostęp do klucza prywatnego.

Zapewnia to rozsądny poziom integralności, jeśli klucze są zarządzane prawidłowo.