[Security] Chcę otworzyć api na świat jak zrobić to bezpiecznie?

0

Cześć,

Mam zagwozdkę jak w tytule tematu. Powiedzmy, że mam aplikację, do której się potrafi zalogować user, który oczywiście ma konto w serwisie. Aplikacja, do której się loguje (tutaj używam, o ile to ma znaczenie mechanizmów jwt) służy do zarządzania w dużym skrócie spersonalizowaną konfiguracją. Ten sam użytkownik dostaje dostęp do api, aby podłączyć się do serwisu używając swojej aplikacji. Teraz zastanawiam się jak powinienem zabezpieczyć takie api. Co ważne user może trzymać w aplikacji np. maila klientów.
Poszperałem trochę jak robią to inne serwisy i znalazłem dość proste rozwiązanie:

  1. User w konfigruacji generuje sobie api-key i token
  2. Używając api-key i tokena wysyła requesty (po https tylko i wyłącznie)
  3. Po mojej stronie jest zaimplementowane basic auth
    Zastanawiam się, czy takie zabezpieczenie wystarczy, czy trzeba implementować bardziej skomplikowane mechanizmy?
0

Co się stanie jak wyślę JWT używające "none" jako algorytmu?

2

Bearer authentication + ssl + w kliencie cert pinning żeby nikt komunikacji nie mógł łatwo podsłuchać (bez tego ssl można obejść) zwykle wystarcza. Po drodze nikt nie odszyfruje ruchu, a jak ktoś podstawi jakieś proxy po drodze, to dzięki weryfikacji certyfikatu serwera klient odmówi połączenia

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