Какое будущее у OpenID, OpenID2, Open Connect? Стоит ли внедрять провайдера?
Я вижу, что логины OpenID доступны повсюду, и решил, что мне следует заняться реализацией собственного провайдера на моем сервере, чтобы я мог контролировать свою информацию и свой логин.
Это, на удивление, довольно сложно и сложно.
Несмотря на то, что многие сайты разрешают вход в систему с помощью OpenID (например, этот), я обнаруживаю следующие проблемы:
- Многие простые решения OpenID для провайдеров единого удостоверения теперь не работают.
- У OpenID были довольно серьезные проблемы с безопасностью:
http://en.wikipedia.org/wiki/OpenID
- Многие поставщики OpenID исчезли (MyOpenID.com, getopenid.com и т. Д.)
- Протокол, кажется, постоянно меняется с выпуском предыдущих версий (возможно, из-за проблем безопасности?)
Например, это решение для SO от 13 августа 2013 года об использовании Google Plus/Profiles в качестве делегата теперь получает ошибку от Google, в которой говорится, что поддержка OpenID 2.0 была удалена из Google к апрелю этого года и заменена OpenID Connect:
Делегировать OpenID в Google (НЕ в Google Apps)
Кто-нибудь даже предлагает простого OpenID Connect единого поставщика удостоверений? Если посмотреть на список OpenID провайдера OpenID, то здесь вообще не упоминаются какие-либо решения OpenID Connect, не говоря уже о том, что страница не обновлялась в течение 4 лет!
http://wiki.openid.net/w/page/12995226/Run%20your%20own%20identity%20server
Просматривая всю эту информацию, я очень рад, что пару лет назад отложил свой план по внедрению OpenID 2.0 на моем сервере, поскольку похоже, что он уже устарел, и я не могу найти простой способ доказать, что я идентичность. Удивительно, что я не могу просто сделать один пакет, установить, отредактировать файл конфигурации и уйти. Большинство простых реализаций включают в себя установку и использование PHP, который имеет свои собственные проблемы безопасности, которые необходимо изучить.
Итак, любой, кто является экспертом по OpenID и куда он направляется, может дать мне несколько советов о том, как просто настроить мой провайдер идентификации или стоит ли это трудностей? Мне бы очень хотелось иметь контроль над моей информацией и распространением моего адреса электронной почты, а также иметь постоянную идентичность, но если стандарт будет постоянно меняться, то он не будет действительно постоянным.
3 ответа
OpenID 2.0 устарел, и только сегодня OpenID Foundation утвердил Руководство по миграции OpenID 2.0 в OpenID Connect.
Я не эксперт по OpenID, но важно знать, что OpenID Connect принципиально отличается от старых версий. В частности, он работает поверх OAuth, поэтому проверяющая сторона должна получить учетные данные OAuth от поставщика услуг.
Есть спецификация, которая позволяет RP автоматически получать эти учетные данные OAuth (называемые динамической регистрацией клиента), но спецификация помечена как "необязательная", она не поддерживается широко в клиентских библиотеках, и я сильно сомневаюсь, что мы увидим много приложений внедрение динамической регистрации клиентов.
Переход на OpenID Connect отнимает власть как у пользователей, так и у разработчиков приложений (не говоря уже о небольших провайдерах идентификации) и дает все это крупным поставщикам услуг известных брендов. Так что, к сожалению, похоже на то, что идея создания собственного личного провайдера OpenID не будет в будущем.
Если вы хотите настроить своего собственного провайдера OpenID, я могу предложить два доступных варианта, которые вы могли бы рассмотреть. Они оба PHP-решения.
Первый, самый простой в реализации, phpMyID, устарел своим владельцем, но снова поднялся на GitHub. Я быстро проверил это вчера, используя PHP 5.6.8. Это всего лишь два PHP-файла.
Второй называется SimpleID и это то, что я сейчас использую. Я использовал его для входа на несколько сайтов, включая этот.
Однако OpenID Connect также не является. Я ищу решение для этого, чтобы я мог обновить (этот поиск привлек меня к вашему вопросу). Наилучший кандидат, которого я нашел до сих пор, называется Глуу, но, похоже, он чудовище, и я еще не пробовал.
У SimpleID есть билет Trac и ветка разработки для поддержки OpenID Connect, но, похоже, он неактивен.
Еще одна интересная вещь, которую я нашел во время поиска, - это вход в сеть и IndieAuth. Не OpenID, но, тем не менее, интересно.
Что будет в будущем, конечно, трудно предсказать.
Google внедрил OpenID Connect. В них реализовано Discovery, но в качестве универсального IDP OIDC это не очень полезно без динамической регистрации, поскольку вам все равно нужно зарегистрировать приложение и получить ключи. Боюсь, это может сработать в их пользу, поскольку люди могут предпочесть логин Google и, следовательно, не заботиться об OIDC на основе предоставленной пользователем электронной почты или URL-адреса.
Согласно сертификатам OpenID, очень немногие внедрили динамическую регистрацию, но она еще очень молода и может измениться.
Я искренне надеюсь, что полный OpenID Dynamic получит широкое распространение, предпочтительно со стороны поставщиков электронной почты, чтобы мы могли иметь единый вход в систему на основе вашей электронной почты, что большинство людей могут вспомнить, а не какую-то непонятную конечную точку http.
Я собираюсь сделать это для моего собственного сервера; простой маленький OIDC и сервер webfinger в node.js на основе openid-connect. Мы должны сделать это легко и широко принятым, я добавлю ссылку в комментарии здесь, когда мой мини-сервер будет доступен с npm install
:-)