In che modo funziona la delega OpenID sulla parte di riferimento? Le specifiche sono cambiate di recente?

StackOverflow https://stackoverflow.com/questions/826014

  •  05-07-2019
  •  | 
  •  

Domanda

Considera questo scenario. Ho il mio sito Web, che uso come identificatore, ma utilizzo un provider OpenID di terze parti (nel mio caso yahoo), come descritto qui , per accedere ai siti Web di Relying Party (RP) come stackoverflow e sourceforge.

Sembrava una mossa saggia:

  • Non sono bloccato con un provider OpenID, dal momento che se / quando yahoo non offrirà più il servizio o inizierò a caricarlo o non mi fiderò più di loro, posso cambiare fornitore indolore
  • Non ho l'onere economico, amministrativo e di sicurezza di installare e gestire un provider OpenID sul mio server

Domanda

Come dovrebbe funzionare l'RP? La mia comprensione è che dovrebbe utilizzare l'identificatore I fornito e utilizzare il provider (yahoo) solo per l'autenticazione (e non per l'identificazione). È corretto? Qualcosa è cambiato di recente? Giusto per essere chiari, intendo che la mia identificazione dovrebbe essere

http://www.mysite.com/myPreferredUrl

e non

https://me.yahoo.com/myYahooId (che è il mio sito web " reindirizzare " l'autenticazione come descritto nel sito Web sopra)

Nota a margine

Sto ponendo questa domanda anche perché le cose sembrano essere rotte in questo momento (erano ok alcuni mesi fa). Se provo ad accedere su StackOverflow, scrivo l'URL mysite.com, sono correttamente " reindirizzato " al sito Web di Yahoo, su cui accedo, mi chiede se vorrei "continuare su StackOverflow", dico di sì, "reindirizza" e sul sito StackOverflow vedo " Questo è un OpenID che non abbiamo mai visto " ;, mostra il mio ID yahoo e in realtà sono bloccato!

È un bug o mi sto perdendo qualcosa?

PS: se ti stai chiedendo come sto scrivendo questa domanda, questo perché su una delle molte macchine che utilizzo, un browser ha ancora un cookie valido ....

EDIT: la risposta di Andrew Arnott di seguito ha suggerito un modo per risolvere il mio problema (cioè passare a un altro fornitore). Ma sono ancora interessato ad alcuni dettagli: cosa è cambiato da OpenID 1.1 a 2.0, sulla delega? Perché nelle specifiche è stato scelto di lasciare che il provider "rompa" la delegazione? Più spieghi, maggiori sono le possibilità che la tua risposta sia accettata.

È stato utile?

Soluzione

Credo che la risposta di Andrew sia abbastanza accurata. L'unica cosa che posso aggiungere è un po 'di come le specifiche v2.0 sono finite come hanno fatto, consentendo al provider di scegliere di non lavorare con la delega. Penso che uno dei motivatori sia stata la selezione dell'identità diretta dal server, in cui l'utente fornisce semplicemente "yahoo.com". (o fai clic sul pulsante Yahoo), quindi l'ID scelto ritorna dal server nella risposta id_res. Ciò consente anche al server di fare cose come offrire una scelta dell'ID da inviare (come fa Yahoo) o inviare un identificatore univoco a ciascun RP (come fa Google).

Significa anche che tutte le informazioni necessarie sono in una risposta id_res , il che significa che il RP non ha bisogno di memorizzare lo stato dalla sua richiesta checkid per elaborare la risposta. In effetti, un provider potrebbe inviare una risposta id_res direttamente al RP senza che il RP lo avvii con una richiesta checkid .

Un provider v1.x era completamente inconsapevole quando stava avvenendo la delega serale. Questo design ha impedito a un provider di scegliere di non supportare la delega, ma ha anche creato alcuni problemi con l'interfaccia utente; chiederà se si desidera fornire il "quot.coolprovider.com" ID quando stavi effettivamente utilizzando il tuo " joesmith.org " delegato ID.

Quindi, c'è il compromesso. La delega è ancora possibile, quindi la speranza era che gli utenti che desideravano davvero la delega (che, ammettiamolo, rimarranno sminuiti dal numero di utenti di questi grandi siti) possono scegliere i provider che offrono le funzionalità di cui hanno bisogno. (In altre parole, lascia che il mercato combatta.)

Altri suggerimenti

Non credo che Yahoo supporti la delega OpenID. Cioè, StackOverflow e altri RP possono eseguire il rilevamento sul proprio identificatore e impostare correttamente la richiesta di autorizzazione della delega, ma Yahoo potrebbe scegliere (probabilmente in contrasto con le specifiche) di inviare un'asserzione di identità per il proprio identificatore piuttosto che quella fornita da il RP.

Le specifiche non sono cambiate da OpenID 1.1 a 2.0. Le specifiche non suggeriscono né confermano il comportamento di Yahoo! e solo Yahoo può commentare autorevolmente il proprio ragionamento.

La delega StackOverflow funziona ancora. Yahoo ti ha rotto, a quanto pare. Ti suggerisco di sfruttare ciò che la delegazione ti ha acquistato cambiando a chi deleghi l'autenticazione. www.myopenid.com ad esempio supporta la delega. Se cambi il tuo identificatore per puntare a quello, dovresti essere in grado di tornare in StackOverflow come il tuo vecchio io. :)

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