Sono un po 'perso con l'overflow di informazioni e ho bisogno di una guida sul modo migliore in cui posso supportare fornendo alle API l'accesso solo ai client fidati.Provider API centralizzato - oAuth o no?
ambiente attuale:
Al momento dispone di un server centralizzato che gestisce utente autenticazione/autorizzazione tramite Apache Shiro.
Abbiamo API in-house che comunicano internamente con il server centralizzato per autenticare e gestire token. (Così abilitando SSO).
Le comunicazioni tra le nostre applicazioni client e le API sono protette su SSL.
Viene utilizzata l'autenticazione basata su token.
Obiettivo:
Il nostro obiettivo è quello di consentire 3rd applicazioni di terze parti e le API per comunicare con i nostri server di autenticazione centralizzato. Ma la nostra preoccupazione principale è il phishing, in quanto desideriamo solo che le parti "valide" comunichino con noi e preferibilmente non consentono di esporre le informazioni di autenticazione dalla parte di terze parti.
Domande:
1- Qual è il modo migliore per attuare una tale architettura? Dovremmo andare avanti con OAuth? Se sì, c'è un buon modo per integrarlo con Shiro?
2- OAuth farebbe bene il suo lavoro anche sulle applicazioni mobili? (ad esempio Limita l'accesso all'API REST a meno che l'applicazione sia attendibile)
3- Esiste una libreria di provider OAuth che posso utilizzare con Java oppure OAuth è semplicemente uno "standard" che devo implementare personalmente? (Come, ad esempio, l'implementazione di API RESTful)
4- L'SSO supporta facilmente OAuth?
Ci scusiamo per domande vaghe. Ho solo bisogno di guida e consigli generali.
2) La mia domanda è: perché OAuth non dovrebbe funzionare sui dispositivi mobili? :) Non vedo alcun motivo, perché non dovrebbe funzionare lì .. – Dworza
Is Shibboleth è un'opzione? Sembra che si integri anche con le app mobili e abbia un'API un po 'più consistente di oAuth. [vedi questa domanda SO su di esso] (http://stackoverflow.com/questions/1935011/integrating-iphone-application-with-shibboleth) – David
E 'un requisito che i tuoi utenti siano in grado di concedere/negare l'accesso ai propri dati queste app di terze parti? – Perception