Поставщик OpenID для одного пользователя (самостоятельный и бесплатный/бесплатный)

Я хочу стать своим собственным провайдером OpenID.

Мне он нужен в первую очередь для входа на сайты с помощью OpenID 2.0 . Для старых сайтов поддержка OpenID 1.1 была бы отличной. Я мало что знаю о новом OpenID Connect , поэтому оставлю это открытым.

Я бы предпочел, чтобы поддерживался только один пользователь ( есть вопрос к многопользовательскому OpenID провайдеру ), в надежде, что он более легковесный (что облегчит аудит ПО, если возникнет необходимость), что даст меньше поверхность атаки и что он работает без базы данных.

Формальные требования

  • Он должен быть лицензирован по лицензии FLOSS.
  • Его нужно еще сохранить.
  • Он должен работать на сервере GNU/Linux.

Что я нашел

  • phpMyID «больше не разрабатывается и не поддерживается».

  • Prairie вроде умер (судя по названию файла текущей версии 0.2 Alpha, она 2008 года).

  • Сервер OleKEH prairie-openid2 (запущенный как форк Prairie) кажется мертвым (последнее изменение кода с 2011 года).

  • poit вроде мертв (последний релиз 2009 года).

  • SimpleID звучит хорошо (хотя он поддерживает несколько пользователей, но, по крайней мере, не использует базу данных) и не кажется мертвым (последний выпуск от 2014-11; последняя активность сайта от 2015-04).

    (Я попробую этот, если не получу другие рекомендации; конечно, не стесняйтесь придумывать ответ, если вы можете порекомендовать SimpleID для моей цели.)

@FrederickNord: Как я уже писал, я буду принимать и предпочитать решения только для одного пользователя, в то время как OP связанного вопроса ищет многопользовательские решения.
@Tom: (Похоже, что вы создали собственный тег - вы видели мета- теги обсуждения для программного обеспечения, которое работает на (веб-сервере?) ? Если нет, возможно, вы хотите присоединиться.)
@unor Я сделал и просмотрел ваш ответ, разве это не лучший способ сделать это?
@ Том: Хорошо, хорошо; Я подумал, может быть, у вас есть предложение по улучшению или другая идея или что-то в этом роде. (Я полагаю, что оценки +4/0 недостаточно для начала такого масштабного мероприятия по перемаркировке.)
Конечно, я понимаю - ваш ответ, я считаю, имеет наибольший смысл; хотя

Ответы (1)

Для моего собственного сайта я использовал то, что в основном сводится к пересылке OpenID. Мой сайт создан с использованием ikiwiki , поэтому я использую мета- директиву, чтобы добавить делегирование OpenID в другой домен. В результате в заголовке создается следующий HTML-код :

<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" />

Итак , вы можете видеть здесь, что я делегирую на панель запуска Canonical , но я также мог бы использовать любого другого провайдера OpenID, в котором у меня есть учетная запись, включая 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" />

У людей из Indieweb есть отличный учебник о том, как сделать эту переадресацию. Есть также Wordpress , Drupal и, возможно, другие плагины, которые сделают это за вас. Но, честно говоря, учитывая простоту HTML-кода, я бы сказал, что может быть проще просто иметь статическую HTML-страницу, указывающую на другого поставщика, чем использовать плагин.

Я также рассматривал возможность запуска собственного поставщика OpenID, облегченного, без базы данных и всего такого. В итоге я обманул так: кажется намного проще. После того, как Google и даже проекты свободного программного обеспечения (например, Drupal 8 ) в основном отказались от OpenID, я не был уверен в будущем OpenID, поэтому не хотел тратить на него слишком много усилий.

Я знаю, что делегирование OpenID не совсем похоже на запуск вашего собственного провайдера, но, учитывая, что вы не хотели запускать базу данных, и это один пользователь, я чувствую, что просто запуск виртуального хоста со статической страницей в основном равносильно тому же самому. . Вам все еще нужно запустить веб-сервер, поэтому я могу утверждать, что вы используете поставщика OpenID. Это просто деталь реализации, что запрос перенаправляется другому.

Спасибо за Ваш ответ. Хотя для меня это не решение (потому что я действительно хочу быть провайдером, например: не давать данные обо мне третьим лицам, не искать другой сервис на случай, если они отключатся и т. д.), ваш answer, безусловно, может быть альтернативой для людей, которым это не нужно.
ну вот в чем дело: если провайдер закрывается, вам просто нужно указать на другого провайдера в делегировании. что касается данных, у меня уже есть эта учетная запись: дополнительные данные, которые я отдаю на панель запуска, — это какие сайты я подключаю, когда и откуда.
Я знаю, поэтому я сказал «поиск», так как мне придется снова искать сторонний сервис (и снова…), возможно, уже не найдя надежного (а в моем случае я даже не найду ни одного надежного один первый раз, отсюда и мой вопрос :)).