Proveedor de OpenID para un solo usuario (autohospedado y gratuito/libre)

Quiero convertirme en mi propio proveedor de OpenID.

Lo necesito principalmente para iniciar sesión en sitios que usan OpenID 2.0 . Para sitios más antiguos, la compatibilidad con OpenID 1.1 sería excelente. No sé mucho sobre el nuevo OpenID Connect , así que lo dejaré abierto.

Preferiría si solo se admite un usuario ( hay una pregunta para un proveedor de OpenID multiusuario ), con la esperanza de que sea más liviano (lo que facilitaría la auditoría del software, en caso de que surja la necesidad), que da menos superficie de ataque, y que funciona sin una base de datos.

Requisitos formales

  • Debe estar autorizado bajo una licencia FLOSS.
  • Todavía debe mantenerse.
  • Debe ejecutarse en un servidor GNU/Linux.

Lo que encontré

  • phpMyID "ya no se desarrolla ni se mantiene".

  • Prairie parece estar muerta (según el nombre de archivo de la versión actual 0.2 Alpha, es de 2008).

  • El servidor prairie-openid2 de OleKEH (comenzado como una bifurcación de Prairie) parece estar muerto (último cambio de código de 2011).

  • poit parece estar muerto (última versión de 2009).

  • SimpleID suena bien (aunque es compatible con múltiples usuarios; pero al menos no usa una base de datos) y no parece estar muerto (última versión de 2014-11; última actividad del sitio de 2015-04).

    (Probaré este a menos que obtenga otras recomendaciones; por supuesto, no dude en encontrar una respuesta si puede recomendar SimpleID para mi propósito).

@FrederickNord: Como escribí, aceptaré y preferiré soluciones para un solo usuario, mientras que OP de la pregunta vinculada busca soluciones para múltiples usuarios.
@Tom: (Como parece que ha creado la etiqueta autohospedada , ¿vio las etiquetas de metadiscusión para el software que se ejecuta en un servidor (¿web?) ? Si no, tal vez quiera participar).
@unor Lo hice y vi tu respuesta, ¿no es esta la mejor manera de hacerlo?
@Tom: Está bien, está bien; Pensé que tal vez tienes una sugerencia de mejora o una idea diferente o algo así. (Supongo que una puntuación de +4/0 no es suficiente para iniciar un evento de reetiquetado tan grande).
Claro, entiendo: creo que su respuesta tiene más sentido; aunque

Respuestas (1)

Para mi propio sitio, utilicé lo que básicamente equivale al reenvío de OpenID. Mi sitio está construido usando ikiwiki, así que uso la directiva meta para agregar una delegación de OpenID a otro dominio. Esto termina creando el siguiente código HTML en el encabezado :

<link href="https://login.launchpad.net/+openid" rel="openid.server" />
<link href="https://login.launchpad.net/+openid" rel="openid2.provider" />
<link href="https://login.launchpad.net/+id/xxxxxxx" rel="openid.delegate" />
<link href="https://login.launchpad.net/+id/xxxxxxx" rel="openid2.local_id" />
<meta http-equiv="X-XRDS-Location" content="https://login.launchpad.net/+id/xxxxxxx/+xrds" />

Así que puede ver aquí que delego al Launchpad de Canonical , pero también podría haber usado cualquier otro proveedor de OpenID en el que tenga una cuenta, incluido Stack Exchange:

<!-- OpenID-2.0 delegated to stackexchange -->
<link rel="openid2.provider" href="https://openid.stackexchange.com/openid/provider" />
<link rel="openid2.local_id" href="https://openid.stackexchange.com/user/xxx-xxx-xxx-xxx-xxx" />

La gente de Indieweb tiene un excelente tutorial sobre cómo hacer este reenvío. También hay Wordpress , Drupal y probablemente otros complementos que hacen esto por ti. Pero honestamente, considerando lo simple que es el código HTML, diría que puede ser más simple tener una página HTML estática que apunte a otro proveedor que usar un complemento.

También he considerado ejecutar mi propio proveedor de OpenID, liviano, sin una base de datos y todo eso. Terminé haciendo trampa así: parece mucho más simple. Después de que Google e incluso los proyectos de software libre (p. ej., Drupal 8 ) abandonaron básicamente OpenID, no estaba seguro del futuro de OpenID, así que no quería esforzarme demasiado en ello.

Sé que la delegación de OpenID no es exactamente como ejecutar su propio proveedor, pero teniendo en cuenta que no quería ejecutar una base de datos y esto es de un solo usuario, siento que simplemente ejecutar un host virtual con una página estática básicamente equivale a lo mismo . Todavía necesita ejecutar un servidor web, por lo que podría argumentar que está ejecutando un proveedor OpenID. Es solo un detalle de implementación que la solicitud se reenvía a otro.

Gracias por tu respuesta. Si bien no es una solución para mí (porque realmente quiero ser el proveedor, como en: no dar datos sobre mí a un tercero, no tener que buscar otro servicio en caso de que cierren, etc.), su Sin duda, la respuesta puede ser una alternativa para las personas que no la necesitan.
bueno, esa es la cuestión: si el proveedor se cierra, solo tiene que señalar a otro proveedor en la delegación. en cuanto a los datos, ya tengo esa cuenta allí: los datos adicionales que doy a Launchpad son a qué sitios me conecto, cuándo y desde dónde.
Lo sé, por eso dije "buscar", ya que tendría que encontrar un servicio de terceros una vez más (y otra vez...), posiblemente ya no encuentre uno confiable (y en mi caso, ni siquiera encontraré uno confiable). uno la primera vez, de ahí mi pregunta :)).