Domanda

sto cominciando a dubitare seriamente la comunità OpenID nonostante il fatto che funziona.

Sono in fase di valutazione attualmente OpenID come un servizio di autenticazione per 'questo' sito e mentre le promesse sono grandi, non riesco proprio a farlo funzionare. E sono veramente perso.

chiedo della comunità SO di darmi una mano qui. Dammi le risposte e mi mostra esempi in modo da poter sfruttare questo nel modo in cui avrebbe dovuto essere.

Il mio scenario è molto tipico. Voglio per autenticare gli utenti attraverso uno specifico dominio Google Apps. Se si ha accesso a questo dominio Google Apps, quindi si ha accesso alla mia applicazione web.

Dove mi perdo, è tutti i prerequisiti e le dipendenze coinvolti.

  1. Che cosa è XRD?
  2. Che cosa è Yadis?
  3. Perché è necessario XRD e Yadis?
  4. Che cosa devo fare per implementare l'autenticazione OpenID sul mio sito?

Inoltre, questo è molto importante per me.

quando faccio il login al SO, io uso il mio account Google. Perché quando clicco sul pulsante di accesso sto presentato con questa pagina di conferma. Dove sto concessione SO il diritto di utilizzare le mie credenziali dell'account Google.

In qualche modo, Google sa che si tratta di "Stackoverflow.com" che mi sta chiedendo se va bene il login. E vorrei sapere che tipo di controllo che ho su questo breve testo. Ho intenzione di distribuire OpenID su diversi domini diversi, ma io preferirei se avrebbero tutto il lavoro senza dover essere configurati individualmente con parametri speciali, come ad esempio le chiavi API segrete e cosa no. Tuttavia, non so per certo se questo è un prerequisito di OpenID, che o l'API Federati Accesso che Google fornisce.

È stato utile?

Soluzione 3

In realtà ho trovato una soluzione al mio problema, e surpsingly così, era molto semplice. Io ancora non capisco XRDS e Yadis ma sto facendo leva abbastanza facilmente in questo modo.

Quello che vuoi, e quello che stai cercando è il codice per fare l'OpenID "inoltro partito" roba. Ecco "voi" come un consumatore di provider OpenID. Si entra un endpoint OpenID e voilà, hai OpenID attivato il vostro sito, questo codice illustra che nella pratica.

// using DotNetOpenAuth
var openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
if (response == null)
{
    // Google account end point (works fine)
    var googleID = "https://www.google.com/accounts/o8/id";
    // Google hosted account end point
    //  https://www.google.com/accounts/o8/site-xrds?hd=mydomain.com
    // I was unable to test this, but I was running my RP (this code)
    // from localhost and it's quite possible that a hosted account RP
    // has to return to the same domain.
    // It went fine, but crashed with a "Unable to resolve mydomain.com" error
    // once I logged in.
    openid.CreateRequest(googleID).RedirectToProvider();
}
else
{
    switch (response.Status)
    {
        case AuthenticationStatus.Authenticated:
            // Success
            // to allow persistance across sessions
            // you'll have to track the "claimed identifier"
            // some OpenID providers allow you to get an email address through
            // extensions but this is not always possible.
            // the claimed identifier is typically your safest bet
            // and it's a big URL which uniquely identifies the guest
            // as a specific user, however, you know very little about this user
            // which is a good thing becuase you don't have to give out personal or
            // sensitive information to start using a service.
            break;

        default:
            // Something went wrong, check Status property
            break;
    }
}

Mentre stavo calcolando questo fuori, ho avuto l'impressione da ogni spec. là fuori che avrei dovuto ospitare il mio proprio "provider OpenID" che ha reso il suono come avrei dovuto gestire conti o una parte del processo. In realtà tutto quello che dovevo fare era questo.

Richiesta tale URL, o se si riceve una richiesta di OpenID in risposta. Verificare se tale richiesta contiene le informazioni di accesso valido.

Altri suggerimenti

Per rispondere in realtà si mette in discussione (cioè trascurando tutti i punti argomentative) Sono come-si-parlare utilizzando DotNetOpenAuth per implementare l'autorizzazione OpenID per uno dei miei siti; ed è stato abbastanza banale.

E 'solo un controllo .NET viene rilasciato, configurare una piccola quantità di cose, e poi lasciarlo collegamento a autenticazione basata su form. Piuttosto bella.

Va bene, hai un sacco di domande in un unico colpo di testa lì. Fammi vedere se riesco a rompere il basso.

XRD e Yadis:

"Yadis" era il nome per il pezzo di rilevamento dei servizi di OpenID - la parte che si ottiene da "il mio OpenID è example.com" a "server autorevole per il mio OpenID è a openid.example.com/server e supporta v2 con le estensioni AX." XRDS è lo schema XML che contiene tali informazioni.

(Il fatto che OpenID (uno standard abbiamo sviluppato attraverso nessun standard riconosciuto) dipende XRD (da un altro standard di lavoro in corso in è uno standard completamente diverso corpo ) è forse deplorevole. Tutto quello che posso dire è che mi sembrava una buona idea al momento.)

"Che cosa devo fare per implementare?"

Una ricetta per OpenID-Attivazione tuo sito . Vacca sacra, che è 2+ anni già? E 'ancora rilevante, tuttavia.

Come il provider OpenID identifica il vostro sito (il relying party):

Questo breve testo (ad esempio "stackoverflow.com") è il "regno" OpenID, che è un parametro che si passa al provider ed è un sottoinsieme rigorosa del URL endpoint si utilizza per elaborare la loro risposta. (Quindi, se dite al server di inviare la risposta OpenID per server2.example.com/foobar, il vostro regno può essere example.com, o server2.example.com o server2.example.com/foobar, ma non server99.example .com).

chiavi API segrete:

In generale, non c'è una chiave out-of-band API segreto per ottenere. Per i provider OpenID general-purpose, le chiavi sono appena emessi attraverso il meccanismo di associazione standard di OpenID.

Ora hai colpito su alcune caratteristiche qui che un provider OpenID potrebbe certamente considerare prezioso - del tipo "come faccio a dire all'utente in un modo più user-friendly quale sito che stanno accedendo a che mostrare loro un URL estratto" o 'come posso identificare questa richiesta è davvero proviene da un RP ho una sorta di rapporto contrattuale con', ma tali caratteristiche non sono tutto ciò che è nello standard OpenID 2.0.

Sembra che si vuole veramente indagare RPX - si tratta di una soluzione che rende facile per gli sviluppatori (e gli utenti ) per utilizzare i loro meccanismi di autenticazione preferite, compreso OpenID.

  

Lavorare come un proxy tra i fornitori di terze parti di identità e il vostro sito web, RPX aiuta a fatica autenticare gli utenti con il proprio account esistente su Facebook, Google, Yahoo !, Twitter, MySpace, AOL, Windows Live / MSN / Hotmail, o di qualsiasi altro OpenID provider.

Nella mia esperienza, sì.

Stavo cercando di utilizzare DotNetOpenAuth, in particolare su Mono, ed ho ottenuto da nessuna parte veloce, e ho provato un sacco di modi per farlo funzionare, e finito per ottenere molto frustrato.

In assenza di alternative che ho usato LoginRadius (già utilizzando con un sito WordPress che ho avuto), e l'ho trovato molto più facile, più esso si apre un popup-finestra per fare l'autenticazione che è come avrei voluto con DotNetOpenAuth.

Si guardano franca al momento, ma si dice Beta. Così essi possono pagare per essa in futuro ...

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