Attualmente sto scrivendo un'API di riposo in python con il pallone microframework. È un'API privata e si occupa dei dati utente. Ho intenzione di utilizzare questa API per creare un web e un'app per Android.Alla ricerca di un consiglio per proteggere un'API REST privata scritta in python-flask
Per ora utilizzo auth digest per proteggere i dati degli utenti privati. Ad esempio, se desideri pubblicare dati sul mio servizio con l'utente bob, fai una richiesta post su myapi/story/create e fornisci le credenziali di bob con lo schema digest.
Sono consapevole questa non è una buona soluzione, perché:
-Digest autenticazione non è sicuro
-Il client non è autenticato (? Come proteggere le richieste non attinenti con l'utente corrente, ad esempio creare un nuovo utente)
Ho letto un sacco di cose su oAuth ma l'autenticazione a 3 vie sembra eccessiva perché non ho intenzione di aprire la mia API a terze parti.
OAuth a 2 vie non si adatta perché fornisce solo l'autenticazione per i client e non per gli utenti.
Un altro problema con oAuth è che non ho trovato una guida completa per l'implementazione in Python. Ho trovato la libreria python-oauth2, ma non capisco l'esempio del server e non riesco a trovare ulteriore documentazione. Inoltre, sembra che molti aspetti di oAuth non siano trattati in questo esempio.
Quindi le mie domande sono:
- C'è schema alternativo (non oAuth) per l'autenticazione client e utente con un ragionevole livello di sicurezza?
- Se outh è la soluzione migliore:
- Come saltare il processo di autorizzazione (perché gli utenti non dovranno autorizzare i client di terze parti)?
- Esiste documentazione dettagliata per python-oauth2 o per qualsiasi altra libreria Python?
Qualsiasi aiuto o consiglio sarà apprezzato.
Per quanto riguarda uno dei tuoi problemi, una gran parte dei principali siti di non lasciare che ti iscrivi attraverso cliente ecc, ti fanno iscrivere attraverso il loro sito web. Per quei siti che lo consentono, la loro chiamata API è effettivamente la stessa cosa del loro modulo di registrazione, quindi non importa se è sicuro o meno. –