REST API Secure

Odpowiedz Nowy wątek
2013-11-15 08:36
0

Witam
Tworzę aplikację web opierającą się o architekturę REST. Napisałem serwisy w Springu oraz warstwę klienta w Angular JS oraz Bootstrap 3. I moje pytanie brzmi jak zabezpieczyć moje API?. Czytałem o OAuth ale nie chce korzystać z autoryzacji zewnętrznej opierającej się o inne serwisy. Chciałem stworzyć wewnętrzną autoryzację. Domyślam się że musi to się opierać o jakąś formę tokenu który będzie przechowywany na obydwu warstwach i porównywany przy każdym callu do serwera. Ale takie rozwiązanie (w wersji plaintext) jest mega podatne na podsłuchanie. Czy znacie może jakieś biblioteki pozwalające bezpiecznie wprowadzić powyższe rozwiązanie? Z góry dzięki za odp.

Pozostało 580 znaków

2013-11-15 08:46
KubusiowyKubuś
0

Jakbyś myślał w mojej głowie.

Wczoraj spotkałem się z tym problemem i rozwiązałem go implementując własny provider OAuth2. Myślę że to rozwiązanie Ci pomoże ;-)

Pozostało 580 znaków

2013-11-15 09:08
0

Najprościej użyć SSLa ;) Wtedy możesz wykorzystać bez problemu HTTP Basic Auth albo OAuth Bearer Token

Pozostało 580 znaków

2013-11-15 10:01
KubusiowyKubuś
0

Generalnie chodzilo mu o to że np

strona działa na adresie example.com a restowe api na example.com/api/ i teraz user np pobiera posty example.com/posts (czyli wykonuje restowego requesta do zasobu jsona ) do example.com/api/posts

i teraz user wpisujac w przegladarce example.com/api/ otrzyma jsona z postami - chodzi o to aby tylko strona (javascript) miała dostęp do api restowego.

Piszę to wnioskując po problemie jaki przedstawił

Pozostało 580 znaków

2013-11-15 10:13
0

Hmm nie pomyślałem aby implementować własnego providera. Znalazłem jeszcze coś takiego jak HMAC. Autoryzacja jest podobna do kryptografii asymetrycznej. Czyli jest tworzony klucz prywatny który posiada klient oraz serwer, i nie jest on w żaden sposób przesyłany, przysyłany jest klucz publiczny z każdym postem i sprawdzany za pomocą klucza prywatnego. Jeżeli ktoś korzystał z powyższego rozwiązania nie pogardzę radami albo ciekawymi tutkami, ponieważ dopiero to ogarniam. KubusiowyKubuś dzięki za podpowiedź.

Pozostało 580 znaków

2013-11-15 11:21
KubusiowyKubuś

KubusiowyKubuś mówi ze nie ma problemu.

Ale otóż architektura klucza publicznego dla wielu userów sie nie sprawdzi ponieważ sytłacja ma sie tak (klucz prywatny i publiczny) musi być przechowywany w javascripcie na stronie usera oraz na serwerze i dalej te klucze są widoczne po stronie klienta.

Moim zdaniem lepiej rozwiązać to tak że klucz publiczny + id usera + token dla każdego requesta generowany ale dochodzimy do momentu gdy nasz pomysł staje się OAuth2 ;]

Pozdrawiam

Pozostało 580 znaków

2013-11-15 12:34
0

W sumie;) dzieki za odp.

Pozostało 580 znaków

2013-11-15 12:47
KubusiowyKubuś
0

Innego sposobu nie znalazłem i aktualnie ten implementuje - jak znajdziesz jakiś lepszy zapodaj - z chęcią się z nim zapoznam.

Pozostało 580 znaków

2013-11-15 14:27
0

Mam ostatnie pytanie. Przy pomocy jakiej biblioteki zaimplementowałeś swojego providera?? Czytałem trochu o spring-security-oauth ale po ich przykładach nie wiem czy łatwo można takowego providera zaimplementować RESTowo. A chciałbym aby to działało webservice'owo

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0