Domanda

Come implementare un sistema con i seguenti obiettivi:

  • Gestire l'autenticazione,la autorizzazione per centinaia di migliaia di gli utenti esistenti attualmente strettamente integrato con un 3rd party fornitore dell'applicazione (vogliamo busto questi utenti in qualcosa di gestire e rendere le nostre applicazioni si possono utilizzare contro di esso, e in più il nostro 3rd party fornitori di agire contro di esso).
  • Gestire le informazioni del profilo collegato agli utenti
  • Deve essere in grado di accedervi da qualsiasi numero di applicazioni web su qualsiasi piattaforma (Windows, *nix, PHP, ASP, C#, Python/Django, et cetera).

Qui alcuni esempi di implementazioni:

  • LDAP/active directory Server per gestire il tutto.Utilizzare schema personalizzato per tutti i dati del profilo.Tutto può eseguire l'autenticazione con LDAP/AD e siamo in grado di memorizzare tutti i tipi di Acl e i dati di profilo in uno schema personalizzato.
  • L'utilizzo di LDAP/active directory per l'autenticazione solo, cravatta utenti LDAP di un più robusto profilo/server di autorizzazione utilizzando una sorta di database (MSSQL/PostgreSQL/MySQL) o di un documento basato DB (CouchDB, SimpleDB, et cetera).Utilizzare LDAP per l'autorizzazione, quindi premere il DB per le cose più avanzate.
  • Utilizzare un database Relazionale o di un Documento) per tutto.

Uno di questi tre è il migliore?Ci sono altre soluzioni che si adattano gli obiettivi di cui sopra e sono più facili da implementare?

** Devo aggiungere che quasi tutte le applicazioni in cui sarà eseguita l'autenticazione di utente del database sarà sotto il nostro controllo.Lone qualche outsider saranno le applicazioni che stiamo rimozione del database utente corrente e forse 1 o 2 persone.Nulla di così ampia come per bisogno di un openID server.

La sua anche importante sapere che un sacco di questi utenti hanno avuto questi account per 5-8 anni e di conoscere il proprio account di accesso e password, et cetera.

È stato utile?

Soluzione

C'è una differenza tra autenticazione e autorizzazione/profilatura quindi non forza sia necessariamente in un unico strumento.La tua seconda soluzione di utilizzare LDAP per l'autenticazione e un DB per l'autorizzazione sembra più robusto LDAP dati è controllato dall'utente e il DB sarà controllato da un amministratore.L'ultimo caso è probabile che si trasformano in struttura e complessità nel tempo, ma l'autenticazione è solo che l'autenticazione.La separazione di queste funzioni, si dimostrano più gestibile.

Altri suggerimenti

Se si dispone di una esistente infrastruttura di active directory, che sarà la strada da percorrere.Questo sarà particolarmente vantaggioso per le aziende che hanno già avuto Windows server impostato per l'autenticazione.Se questo è il caso, sto appoggiato verso il primo punto di campionamento "implementazioni".

Altrimenti sarà un sorteggio tra ANNUNCIO e opensource opzioni LDAP.

Potrebbe essere non valida per arrotolare schema di autenticazione single sign-on (soprattutto considerando la grande quantità di documentazione e il lavoro di integrazione che si potrebbe avere a che fare), e, ovviamente, non unire i server di autenticazione con una qualsiasi delle applicazioni in esecuzione sul vostro sistema (dal momento che si desidera essere in grado di essere indipendente dal carico di tali applicazioni).

Goodluck!

L'utilizzo di LDAP/active directory per l'autenticazione solo, cravatta utenti LDAP di un più robusto profilo/server di autorizzazione utilizzando una sorta di database (MSSQL/PostgreSQL/MySQL) o di un documento basato DB (CouchDB, SimpleDB, et cetera).Utilizzare LDAP per l'autorizzazione, quindi premere il DB per le cose più avanzate.

Ci sono diversi siti con circa 100k utenti e tutti funzionano con la normale database.Se la maggior parte delle applicazioni possono accedere al db è possibile utilizzare questa soluzione.

Si può sempre implementare il proprio OpenID server.C'è già un Libreria Python per OpenID quindi dovrebbe essere abbastanza facile.

Naturalmente non è necessario accettare gli accessi autorizzati da altri server di applicazioni.Accetta le credenziali autorizzata solo dal proprio server.

Edit: Ho trovato un attuazione di OpenID protocollo del server in Django.

Edit2: C'è un evidente vantaggio in attuazione OpenID per i tuoi utenti.Essi saranno in grado di accedere a StackOverflow con i loro account di accesso :-)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top