Реализация OpenID-провайдера в Perl - PullRequest
6 голосов
/ 14 июня 2010

Это может быть выстрел в темноте, но я пытаюсь реализовать провайдера OpenID в Perl, используя Net :: OpenID :: Server module . Документация для всего процесса является запутанной и редкой.

Если кто-то успешно внедрил провайдера в Perl, не могли бы вы вставить несколько фрагментов кода?

Ответы [ 2 ]

7 голосов
/ 22 июля 2010

Итак, я, наконец, установил OpenID на место, и он работает довольно хорошо.Я полагаю, я подробно опишу некоторые ошибки, с которыми я столкнулся.

  • Процесс входа в OpenID включает более трех состояний / шагов. Это сбивает с толку, потому чтодокументация и пример кода приведут вас к мысли, что их три.Есть, в некоторых случаях, до семи.Посмотрите журналы вашего сервера и посмотрите, сколько раз SERVER и USER (те, кто запрашивает аутентификацию) попадают в PROVIDER (что вы, вероятно, настраиваете). Трудно что-то отладить, когда вы просматриваете только половину взаимодействий
  • Многие провайдеры используют незавершенную спецификацию OpenID 2.0. (Это немного лучше.) Спецификация 2.0 работает иначе, чем спецификация 1.0;СЕРВЕР (их) устанавливает доверие с ПРОВАЙДЕРОМ (вами).Net :: OpenID :: Server обрабатывает это изящно, но не говорит вам, какую спецификацию он использует.Спецификация 2.0 добавляет шаг к процессу установления связи.
  • Настройте свой собственный OpenID SERVER для простого тестирования. Я использовал простой сервер Rails с гемом ruby-openid.Потребовалось около 10 минут, чтобы настроить поведение реального сервера в дикой природе.
  • Это должно быть само собой разумеющимся, но убедитесь, что ваш процесс входа в систему без сохранения состояния.глобальная переменная, которая обрабатывает, как пользователь был проверен.Поскольку использование этой переменной делало определенные допущения, несовместимые с процессом входа в систему OpenID, пользователям было бы разрешено входить в учетные записи, отличные от их собственных.Это явно плохо.Несколько замыканий, и у нас есть код без сохранения состояния и более безопасный.

В общем и целом, OpenID - это круто, как только он заработает.

0 голосов
/ 09 ноября 2010

Кстати, разработка модулей Perl для Net-OpenID начинается, так что вы можете ожидать, что большая куча исправлений и лучших документов скоро появится.Проверьте CPAN и openid-perl группу для деталей.

...