Attualmente sto discutendo se utilizzare il login OpenID per uno dei miei siti web. OpenID potrebbe essere più difficile da implementare perché ho già registrato la registrazione e il codice di accesso, ma questa è solo una considerazione del tempo. Quali sono i vantaggi e gli svantaggi di utilizzare OpenID in contrasto, ad esempio, con un sistema di account utente di un sito Web tradizionale.Quali sono i vantaggi e gli svantaggi dell'utilizzo di OpenID?
risposta
Vantaggi
si dispone di un single sign-on che in realtà è abbastanza freddo, in particolare per le persone che hanno un sacco di conti qua e là.
Il server openid fornisce informazioni di base sull'utente, evitando la necessità di annotare le consuete informazioni di base ogni volta. In questo senso risparmi la seccatura ai tuoi utenti.
Migliora piuttosto il tradizionale meccanismo utente/passaggio. Esistono molti siti che forniscono entrambi i sistemi contemporaneamente.
Sposta la fiducia dell'onestà da più parti a una sola. Al momento, non so se qualcuno dei siti in cui sono registrato memorizza la mia password in chiaro per rubarla e cerca di usarla su altri siti presumendo che abbia la stessa password.
Il vantaggio tecnico della delega. Non sei obbligato a utilizzare lo stesso provider. Puoi cambiare.
Svantaggi
Si devono ancora fornire utente/password a coloro che non capiscono il nuovo paradigma o non hanno un OpenID (forse ce l'hanno, ma non sanno) . Se si tratta di una vasta gamma di persone che stai cercando di affrontare, allora potresti spaventarli.
Inoltre, non lo userei per nulla di serio. Non mi fiderei della mia banca che mi chiede di accedere con il mio openid, ma anche molti siti di e-commerce. Va bene per cose senza importanza.
Il provider openid è in grado di tracciare le abitudini dell'utente in quanto riceve tutte le richieste di autorizzazione. Ecco perché ho distribuito il mio fornitore personale.
Infine, per quanto ho visto, molti casi di server openid spostano la password in chiaro, ma questa è la mia comprensione e potrei sbagliarmi. Ho implementato il mio provider openid e sono andato molto bene in modo che la password fosse trasportata via https, anche se il mio openid è contrassegnato come http
Il vantaggio principale che vedo, anche se non necessariamente applicabile nel tuo caso se voglio mantenere il tuo sistema esistente, è che non devo preoccuparmi di memorizzare le password.
Troppe persone usano la stessa password (o una piccola serie di password) per tutto, quindi se il mio sito è stato compromesso (e spero di essere abbastanza esperto da impedirlo, ma la sicurezza è un multi-livello bestia, quindi qualsiasi cosa per aggiungere sicurezza extra è buona nel mio libro), quindi l'hacker non è riuscito a ottenere la password.
Per l'utente, ora possono legittimamente avere solo una password per tutto. Usano un provider OpenID di cui si fidano piuttosto che dover fidarsi di qualsiasi tom dick o harry su internet con un sito web.
Ben prendendo come esempio, supporta entrambi. Accedo tramite il mio account Google tramite OpenID, ma devo ancora avere un account/nome utente per collegarmi al mio OpenID.Suppongo che tu stia consentendo l'accesso solo tramite OpenID ma non che i tuoi utenti accedano utilizzando il tuo sito come server OpenID.
Quindi per chiarire le cose; Puoi utilizzare molto del tuo codice di accesso/disconnessione e ti servirà perché l'unica differenza è che ti autentichi tramite una terza parte anziché il tuo database personale. Immaginate questo:
authenticate_from_db(String username, String password)
{
fetch username and password where username = username
if username = username and password = hash_of(password)
{
return true;
}
else
{
return false;
}
}
authenticate_from_openid(String openId_provider)
{
provider = contact_openID_provider(openID_provider)
if(provider)
{
login.username = map(returned_user, your_db)
return true
}
else
{
return false;
}
}
Quindi, vedete, la procedura di autenticazione è per lo più cambiata mentre la vostra è ancora utilizzata.
il vantaggio è piuttosto chiaro:
- Permettere agli utenti di accedere con gli account esistenti attraverso il loro fornitore OpenID.
- Gli utenti esistenti potrebbero opzionalmente login attraverso il loro fornitore OpenID
Gli svantaggi sono (posso immaginare):
- ostili provider OpenID (? Spam) autenticare le loro spam bot ecc
- altro titolo preoccupazioni permettendo a una terza parte di autenticare i tuoi utenti
Voglio sottolineare che supportare OpenID non dovrebbe modificare nulla per gli utenti esistenti.
Gli utenti OpenID devono ancora disporre di un account, vengono autenticati solo da una terza parte.
Infatti, OpenID costituisce l'elemento di autenticazione (chi sono). L'account utente nella tua applicazione definisce l'elemento di autorizzazione (cosa possono fare). –