Question

Je commence à douter sérieusement la communauté OpenID en dépit du fait que cela fonctionne.

Je suis en train d'évaluer actuellement en tant que service OpenID d'authentification pour le site « ceci » et alors que les promesses sont grandes, je ne peux pas le faire fonctionner. Et je suis vraiment perdu.

Je demande de la communauté SO me aider. Donnez-moi des réponses et me montrer des exemples que je puisse tirer parti de cela dans la façon dont il était censé être.

Mon scénario est très typique. Je veux authentifier les utilisateurs à travers un domaine Google Apps spécifique. Si vous avez accès à ce domaine Google Apps, alors vous avez accès à mon application Web.

Là où je me perds, est toutes les conditions préalables et les dépendances impliquées.

  1. Qu'est-ce que XRD?
  2. Qu'est-ce que Yadis?
  3. Pourquoi ai-je besoin? XRD et Yadis
  4. Que dois-je faire pour déployer l'authentification OpenID sur mon site?

En outre, ce qui est vraiment important pour moi.

Quand je me connecte à, j'utiliser mon compte Google. Lorsque je clique sur le bouton de connexion, je suis présenté avec cette page de confirmation. Où j'accorder SO le droit d'utiliser mes lettres de créance de compte Google.

D'une certaine façon, Google sait qu'il est « Stackoverflow.com » qui me demande s'il est normal de se connecter. Et je veux savoir quel genre de contrôle que j'ai sur ce petit texte. J'ai l'intention de déployer sur plusieurs domaines OpenID différents mais je préférerais qu'ils le feraient si tous les travaux sans avoir à être configurés individuellement avec des paramètres spéciaux, tels que les clés API secrètes et de ce pas. Cependant, je ne sais pas pour sûr si cela est une condition sine qua non d'OpenID, qui ou de l'API Connexion fédérée que Google fournit.

Était-ce utile?

La solution 3

Je l'ai effectivement trouvé une solution à mon problème, et surpsingly donc, il était très simple. Je ne comprends toujours pas XRDS et Yadis mais je tirant parti comme si facilement.

Qu'est-ce que vous voulez, et ce que vous cherchez est un code pour faire les choses OpenID « partie relayant ». C'est « vous » en tant que consommateur de fournisseurs OpenID. Vous entrez un point final et le tour est joué OpenID, vous avez activé votre site OpenID, ce code montre que dans la pratique.

// 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;
    }
}

Pendant que j'essayant de se faire, j'ai eu l'impression de toutes les spécifications. là-bas que je devais héberger mon propre « fournisseur OpenID » qui fait sonner comme je devais gérer les comptes ou une partie du processus. En réalité, tout ce que je devais faire était cela.

Demander que l'URL, ou si vous recevez une demande en réponse OpenID. Vérifiez si cette demande contient des informations de connexion valide.

Autres conseils

Pour vous répondre effectivement la question (à savoir tous les points sans tenir compte argumentatives) Je suis comme-nous-parler en utilisant DotNetOpenAuth pour mettre en œuvre l'autorisation de mise pour OpenID un de mes sites; et il a été tout à fait banal.

Il est juste un contrôle .NET vous déposez, configurez une petite quantité de choses, puis laissez-le lien à l'authentification des formulaires. Très agréable.

D'accord, vous avez beaucoup de questions dans un en-tête là-bas. Permettez-moi de voir si je peux le briser.

XRD et Yadis:

« Yadis » était le nom de la découverte de service morceau de qu'OpenID - le bit qui vous fait de « mon OpenID est example.com » à « le serveur faisant autorité pour mon OpenID est à openid.example.com/server et il prend en charge v2 avec des extensions AX « . XRDS est le schéma XML qui contient cette information.

(Le fait que OpenID (une norme que nous avons développé par aucun organisme de normalisation reconnu) dépend XRD (d'une autre norme de travail en cours dans

Une recette pour OpenID qui permet à votre site . vache sacrée, qui est 2+ ans déjà? Il est toujours d'actualité, cependant.

Comment le fournisseur identifie votre site OpenID (la partie utilisatrice):

Ce petit texte (par exemple « stackoverflow.com ») est le qu'OpenID « royaume », qui est un paramètre que vous passez au fournisseur et est un sous-ensemble strict de l'URL de point final que vous utilisez pour traiter leur réponse. (Donc, si vous dites au serveur d'envoyer la réponse à server2.example.com/foobar OpenID, votre royaume peut être example.com ou server2.example.com ou server2.example.com/foobar, mais pas server99.example com.)

clés API secret:

En général, il n'y a pas de clé API secrète hors bande pour obtenir. Pour les fournisseurs de OpenID à usage général, les clés sont simplement émis par le mécanisme d'association norme OpenID.

Maintenant, vous avez frappé sur certaines fonctionnalités ici qui un fournisseur OpenID peut certainement considérer valeur - comme « comment puis-je dire à l'utilisateur d'une manière plus conviviale quel site ils se connecter à leur montrer que l'URL extrait » ou « comment puis-je identifier cette demande est vraiment venir d'un RP je une sorte de relation contractuelle avec », mais ces caractéristiques ne sont pas tout ce qui est dans la norme OpenID 2.0.

On dirait que vous voulez vraiment étudier RPX - c'est une solution qui le rend facile pour les développeurs (et les utilisateurs ) d'utiliser leurs mécanismes d'authentification préférés, y compris OpenID.

  

Travailler comme un proxy entre les fournisseurs d'identité tiers et votre site Web, RPX vous aide authentifiez facilement les utilisateurs avec leur compte existant sur Facebook, Google, Yahoo !, Twitter, MySpace, AOL, Windows Live / MSN / Hotmail, ou tout autre serveur OpenID.

Dans mon expérience, oui.

Je tentais d'utiliser DotNetOpenAuth, en particulier sur Mono, et ai nulle part, et j'ai essayé beaucoup de façons de le faire fonctionner, et a fini par devenir très frustré.

Avec aucune solution de rechange que j'ai utilisé LoginRadius (déjà à l'aide d'un site WordPress j'ai eu), et trouvé beaucoup plus facile, plus il apparaît une fenêtre pop-up pour faire l'authentification qui est la façon dont je l'aurais voulu avec DotNetOpenAuth.

Ils ont l'air libre en ce moment, mais il dit Beta. Donc, ils peuvent facturer à l'avenir ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top