OpenID Python скрипт прямого входа - PullRequest
0 голосов
/ 02 апреля 2012

Я использую Python / Django-nonrel. Я хочу создать веб-сайт, который может проверять / входить в систему пользователя с парой URL-адреса OpenID / пароля, используя скрипт (код Python), а не входить вручную. Это выполнимо? Спасибо.

1 Ответ

1 голос
/ 03 апреля 2012

Да, есть возможность аутентификации с использованием OpenID из скрипта, хотя это немного сложнее, чем вы думаете, если вы не привыкли к рабочему процессу OpenID.

Просто вспомнил, что OpenID - это тримеханизм аутентификации.Участвуют три стороны:

  1. Конечный пользователь OpenID: ваш скрипт на Python
  2. Потребитель OpenID: веб-сервер, обслуживающий ресурсы
  3. Поставщик удостоверений OpenID:где вы проходите аутентификацию (например, MyOpenID, Yahoo и т. д.)

Важно: Вся цель рабочего процесса OpenID состоит в том, что вы никогда, никогда не обмениваетесьпароль от веб-сервера, который предоставляет ресурс (# 2)!Вы должны войти на другой веб-сайт (например, MyOpenID), чтобы подтвердить свою личность.

Таким образом, ключом к реализации рабочего процесса OpenID как части сценария является использование инструмента веб-автоматизацииэто управляет куки и следует за перенаправлениями.Mechanize for Python] 1 - инструмент высокого уровня, который удобно реализует большую часть этой типичной логики User Agen (браузера).


Имейте в виду, что когда-то веб-сервер (#2) перенаправляет User Agent (# 1) на веб-сайт Identity Provider (# 3), там будут задействованы некоторые сценарии Identity Provider.Этот сценарий для конкретного провайдера обычно используется для ввода комбинации имени пользователя и пароля, чтобы доказать, что вы являетесь владельцем идентификационного URL.

Как только это будет сделано, провайдер идентификации (# 3) перенаправит ваш пользовательский агент обратно навеб-сервер (# 2), после чего веб-сервер будет обслуживать ресурс (или перенаправит вас на URL, который обслуживает запрошенный ресурс).

Итак, если у вас есть объект высокого уровня, который реализуетбольшая часть типичной логики User Agent (например, перенаправления и куки), остальное должно быть довольно простым.

...