6

Spero che questo non sia troppo ampio ma dopo un sacco di ricerche su google non sono sicuro da dove iniziare. Sto cercando una panoramica introduttiva/noob per aiutarmi a iniziare a costruire un'implementazione di autenticazione per un'applicazione rails 3.Strategia di autenticazione delle rotaie per noob

requisiti tecnici di base:

  • applicazione Rails 3 è ospitato sul servizio di terze parti (Heroku)
  • Necessità di utilizzare specifico servizio SSO privato esterno per autenticare gli utenti.
  • Nessun database o modello utente locale nell'applicazione rails.
  • L'autenticazione è basata su token che indica che è presente un cookie speciale che deve essere letto passandogli il token al server SSO (non basato su rotaie).
  • Non ho controllo sul server o sull'infrastruttura SSO.
  • La fiducia del server SSO è implicita e non si desidera mantenere il database locale di utenti, password o informazioni sensibili. Le informazioni utente esistono solo durante la sessione e il server SSO è autorevole.
  • Le informazioni sui token di sessione sono basate su cookie e permangono per la durata della sessione del browser.

Sto cercando un esempio di base/tutorial/strategia/spiegazione di come il processo avrebbe funzionato in rotaie con l'impostazione di cui sopra. Vorrei il processo di essere senza soluzione di continuità per l'utente con il flusso di lavoro che si presenta sostanzialmente in questo modo:


  • Passare alla applicazione Rails ->
  • reindirizzare gli utenti non autenticati al server SSO ->
  • login e l'autenticazione tramite server SSO a distanza ->
  • callback/reindirizzare alle rotaie app ->
  • cattura informazioni utente passato indietro dal server SSO e caricare le risorse protette in applicazione Rails

strategia è completamente personalizzato utilizzando una risorsa privata SSO e non utilizza un meccanismo di autenticazione e pubblicato (in altre parole, non Facebook, Google, Twitter, OAuth, ecc).

Qualsiasi aiuto sulla terminologia, tutorial coerenti, esempi sarebbe apprezzato.

Edit/Update:

Per essere più precisi Sono anche alla ricerca di una buona documentazione su come creare una strategia di sviluppo personalizzato omniauth. Alcuni tutorial che passano attraverso il tipo di codice richiesto per parlare con un server SSO arbitrario, leggere un token da un cookie e completare l'handshake di autenticazione e il callback/reindirizzamento.

risposta

1

Questa non è davvero una risposta, ma sto postando questo perché un commento non andrebbe bene. Non conosco guide complete, quindi ecco cosa ti suggerisco di fare:

  1. Scopri come funziona Omniauth. C'è un ottimo Railscast sull'autenticazione tramite Twitter.È davvero semplice e ti farà entrare nel flusso della cosa.

  2. Costruisci la tua strategia Omniauth. Vai all'elenco di Omniauth Strategies e scorri fino a Strategie di sviluppo. In questa tabella, scegli la strategia che puoi usare per connetterti al tuo server SSO.

Idealmente, devi essere in grado di utilizzare OAuth2 e ci sono un paio di guide che parlano di attuare la propria strategia di OAuth:

  1. Custom OAuth 1.0 strategy to connect to Rdio
  2. Custom OAuth 2.0 strategy by Intridea (the creators of Omniauth)
  3. Custom OAuth 2.0 strategy to connect to Force.com by Heroku

Ma dal momento che non è possibile, basta dare un rapido sguardo a quelle guide. Senza particolari, è un po 'difficile (per me) dare ulteriore aiuto, ma spero che qualcun altro riempirà i dettagli.

+0

Grazie per i collegamenti. Ho fatto esattamente questo, imparando di più su omniauth. Il problema è che devo costruire qualcosa di abbastanza personalizzato. Nessuna delle strategie disponibili è perfetta per l'ambiente in cui devo operare. In particolare, sto cercando alcuni esempi che spieghino come leggere un token da un cookie e inviarlo al server SSO. Sfortunatamente per me sto lavorando con un'API non documentata. Quindi è un po 'una scatola nera. Ugh! –

Problemi correlati