Pregunta

Estoy empezando a dudar en serio el OpenID de la comunidad, a pesar de que el hecho de que funciona.

Estoy en el proceso de en la actualidad la evaluación de OpenID como un servicio de autenticación de 'este' sitio y mientras que las promesas son grandes, yo simplemente no puede conseguir que funcione.Y estoy muy perdido.

Les pido de la MANERA de la comunidad para ayudarme a salir de aquí.Me dan respuestas y me muestran ejemplos para que yo pueda aprovechar de la manera que estaba destinado a ser.

Mi escenario es muy típico.Quiero autenticar a los usuarios a través de un determinado dominio de Google Apps.Si usted tiene acceso a este dominio de Google Apps, entonces usted tiene acceso a mi aplicación web.

Donde me pierdo, es de todos los requisitos y dependencias involucradas.

  1. ¿Qué es la DIFRACCIÓN de rayos x?
  2. ¿Cuál es el Yadis?
  3. ¿Por qué necesito DRX y Yadis?
  4. ¿Qué tengo que hacer para implementar OpenID authentication en mi sitio web?

También, esto es muy importante para mí.

Cuando yo inicio de sesión para ASÍ, puedo utilizar mi Cuenta de Google.Cuando hago clic en el botón de inicio de sesión me presentan con esta página de confirmación.De donde yo soy la concesión PARA el derecho a usar mi Cuenta de Google credenciales.

De alguna manera, Google sabe que es "Stackoverflow.com" que me pide si bien de inicio de sesión.Y me gustaría saber qué tipo de control que tengo sobre este pequeño texto.Tengo la intención de implementar OpenID en varios dominios diferentes, pero yo preferiría que si iba todo el trabajo sin tener que configurarse de forma individual, con parámetros especiales, tales como el secreto de claves de API y lo que no.Sin embargo, no sé con certeza si este es un requisito previo de OpenID, que o la Federado de inicio de Sesión de la API que proporciona Google.

¿Fue útil?

Solución 3

De hecho, he encontrado una solución a mi problema, y surpsingly así, era muy simple.Todavía no entiendo XRDS y Yadis pero estoy aprovechando muy fácilmente como así.

Lo que usted quiere, y lo que estamos buscando es el código para hacer el OpenID "la retransmisión del partido" cosas.Que el "usted" como un consumidor de OpenID proveedores.Escribe un OpenID extremo y voila, usted ha OpenID habilitado su sitio, este código muestra que en la práctica.

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

Mientras estaba pensando esto, tengo la impresión de cada especificación.allí que me iba a alojar mi propio "OpenID provider" que hizo sonar como me iba a manejar las cuentas o alguna parte del proceso.En realidad todo lo que tenía que hacer era este.

Solicitar que la dirección URL, o si recibe una OpenID solicitud en respuesta.Revise para ver si la solicitud contiene la información de inicio de sesión válido.

Otros consejos

Para responder a la pregunta que en realidad (es decir, sin tener en cuenta todos los puntos argumentativos) Soy tan-que-hablar usando DotNetOpenAuth para implementar la autorización de OpenID para uno de mis sitios; y ha sido bastante trivial.

Es sólo un control de .NET se te cae, configurar una pequeña cantidad de cosas, y luego dejar que se enlazan con la autenticación de formularios. Bastante agradable.

Está bien, tienes un montón de preguntas bajo un encabezado allí. Déjame ver si puedo romper hacia abajo.

XRD y Yadis:

"Yadis" era el nombre para el trozo de descubrimiento de servicios de OpenID - la parte que se obtiene de "mi OpenID es example.com" a "el servidor autorizado para mi OpenID está en openid.example.com/server y v2 es compatible con las extensiones AX ". XRDS es el esquema XML que contiene esa información.

(El hecho de que OpenID (un estándar desarrollado por nosotros no hay organismo de normalización reconocido) depende de difracción de rayos X (de otro estándar de trabajo en curso en la un nivel completamente diferente del cuerpo ) es quizás lamentable. Todo lo que puedo decir es que me pareció una buena idea en ese momento.)

"¿Qué tengo que hacer para implementar?"

Véase Joseph Smarr Una receta para OpenID: Habilitación de su sitio . Santo cielo, que es 2+ años ya? Es todavía relevante, sin embargo.

¿Cómo el proveedor de OpenID identifica su sitio (la parte que confía):

Ese pequeño texto (por ejemplo, "stackoverflow.com") es el "reino" de OpenID, que es un parámetro que toma al proveedor y es un subconjunto estricto de la URL de punto final que se utiliza para procesar su respuesta. (Así que si usted le dice al servidor que envíe la respuesta a OpenID server2.example.com/foobar, su dominio puede ser example.com o server2.example.com o server2.example.com/foobar, pero no server99.example .com.)

claves de la API Secret:

En general, no existe una clave de API secreta fuera de banda a obtener. Para propósito general openid proveedores, las claves se acaba de emitir a través del mecanismo asociación OpenID estándar.

Ahora que ha golpeado a algunas de las características aquí, que un proveedor de OpenID podría considerar sin duda valiosa - como "¿cómo puedo decirle al usuario de una manera más fácil de usar en qué sitio que están en el registro a que mostrándoles una URL extracto" o '¿Cómo puedo identificar esta solicitud es muy próximos de un RP tengo algún tipo de relación contractual con', pero estas características no son todo lo que es en el estándar OpenID 2.0.

Parece que realmente quiere investigar RPX - es una solución que facilita a los desarrolladores (y usuarios ) para utilizar sus mecanismos de autenticación preferidas, incluyendo OpenID.

  

Trabajo como un proxy entre los proveedores de identidad tercer partido y su sitio web, RPX le ayuda a los usuarios sin esfuerzo autenticarse con su cuenta existente en Facebook, Google, Yahoo !, Twitter, MySpace, AOL, Windows Live / MSN / Hotmail, o cualquier otra OpenID proveedor.

En mi experiencia, sí.

Yo estaba tratando de usar DotNetOpenAuth, específicamente en Mono, y llegué a ninguna parte, y he intentado un montón de maneras de conseguir que funcione, y terminó siendo muy frustrado.

Sin alternativas que utilicé LoginRadius (que ya utilizan con un sitio de WordPress que tenía), y pareció mucho más fácil, además de que aparece una ventana emergente ventana para hacer la autenticación que es lo que hubiera querido con DotNetOpenAuth.

Se ven libres por el momento, pero no dice Beta. Por lo que pueden cobrar por ello en el futuro ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top