2013-05-10 15 views
7

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.

+0

2) La mia domanda è: perché OAuth non dovrebbe funzionare sui dispositivi mobili? :) Non vedo alcun motivo, perché non dovrebbe funzionare lì .. – Dworza

+0

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

+0

E 'un requisito che i tuoi utenti siano in grado di concedere/negare l'accesso ai propri dati queste app di terze parti? – Perception

risposta

2

Ecco le mie risposte in ordine,

  1. OAuth 2.0 è la misura migliore per voi. Direi che dovresti andare per OAuth.
  2. Sicuramente sì.
  3. Ci sono librerie. Apache Oltu e Google client library.
  4. È possibile utilizzare la specifica OpenID Connect su OAuth per implementare SSO.
+0

grazie divyanshm per la modifica – SureshAtt

+0

La documentazione per la libreria client di Google specifica che "questa libreria è una libreria client Java facile da usare ed efficiente per accedere alle API di Google utilizzando JSON e OAuth 2.0". Mi sono perso, ho pensato che sarebbe stata una libreria per implementare il mio provider OAuth? – SiN

+0

Hai provato Oltu? – SureshAtt

2
  1. Le app mobili funzionano perfettamente con OAuth.
  2. SSO può essere abilitato utilizzando OAuth.

Alcune informazioni su come impostare un server OAuth/fornitore - How would an efficient OAuth2.0 server/provider work?

Come dici tu, è necessario chiedere all'utente di autorizzare un app (accettare/negare le autorizzazioni che l'applicazione richiede) - caso d'uso perfetto per OAuth 2.0.

Sentiti libero di informarti se hai bisogno di maggiori informazioni su come funziona OAuth.

PS - Nessuna idea di integrazione con Shiro.

Problemi correlati