D'abord nous allons établir quelques termes:
Le User-supplied identifier
est la chaîne que l'utilisateur en fait des types (ou est déclenché en cliquant sur un bouton prédéfini à la RP) qui déclenche la découverte OpenID ait lieu. Il n'est pas normalisé et ne devrait jamais être utilisé pour représenter l'utilisateur dans votre base de données parce qu'il n'est pas sécurisé ou unique, mais c'est un point de départ nécessaire. La découverte sur cet identifiant correspond soit à claimed identifier
soit à OP Identifier
. Exemples: yahoo.com, myopenid.com, andrewarnott.myopenid.com
Le Claimed Identifier
est l'identificateur OpenID que l'utilisateur "contrôle" ou utilise comme son identité. Il peut ou peut pas être une URL (il peut être un XRI). Une assertion positive d'un OP sera toujours un identificateur revendiqué (même si la découverte a commencé avec un identificateur OP). Exemples: https://andrewarnott.myopenid.com/
Le OP Identifier
, ou « fournisseur OpenID Identifier » est le identifer que OpenID peut effectuer la découverte RPs sur pour commencer un flux identifier select
où le RP ne sait pas encore ce que l'identificateur Réclamé de l'utilisateur sera. Exemples: https://me.yahoo.com/, http://www.myopenid.com/ et https://www.google.com/accounts/o8/id
Le OP Endpoint
est l'URL que le RP redirige l'utilisateur vers afin d'authentifier l'utilisateur, et est utilisé pour créer des associations partagées ou d'effectuer la vérification directe d'une assertion qui utilise un OP privé association. Exemples: http://localhost/server.aspx, http://localhost/provider.ashx, https://www.google.com/accounts/o8/ud (notez l'oud se terminant au lieu de id)
Donc, avec tout ce contexte, votre OpenIdRelyingParty.CreateRequest
appel doit recevoir un identifiant fourni par l'utilisateur, qui peut aussi être un identifiant validé ou un identificateur OP. Il doit pas être le point d'extrémité OP. Ainsi, par exemple, vous pourriez passer:
openIdRelyingParty.CreateRequest("http://localhost/sampleop/")
ou
openIdRelyingParty.CreateRequest("http://localhost/user.aspx?username=bob")
Andrew, merci beaucoup pour toutes ces explications +1. Cela m'a vraiment aidé à clarifier ces concepts. J'ai réussi à faire en sorte que les 2 démos DotNetOpenAuth se connectent entre elles (OP et RP) mais je n'ai pas pu créer mon propre OP et me connecter à lui.Continuez à recevoir les "No OpenId endpoints found", ce qui n'est pas une erreur très explicative. Votre projet (DotNetOpenAuth) semble être génial mais il manque de documentation. En fait je pense que openid lui-même manque de documentation. Je ne pouvais pas trouver ces concepts pointés ailleurs. Merci quand même :) –
@ André Pena, ça fait des jours que j'essaye de faire fonctionner mon OP. mais c'est le même problème que vous avez. Avez-vous déjà résolu cela? –