Ответ 1
Наконец-то я получил эту работу, поэтому я отвечу на свой вопрос, так как предыдущие ответы здесь были полезны, но не рассказывают всю историю.
django-openid-auth на самом деле довольно легко настроить и использовать. Файл README очень понятен. Если вы просто хотите использовать стандартные учетные записи google (т.е. Адреса @gmail.com), то вы настраиваете его в settings.py с помощью:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'
Но если вы хотите использовать учетную запись "Google Apps", то есть размещенную gmail в вашем собственном домене компании, это сложнее. Я получил данные из этого вопроса. Чтобы использовать учетные записи ваших приложений Google, настройте параметры settings.py на:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=example.com'
# replace example.com with your hosted google apps domain
В будущем это может сработать, но сегодня это, вероятно, не будет. Проблема в python-openid, на которую опирается django-openid-auth. Стандартная сборка python-openid не понимает некоторых расширений протокола, используемых Google. (Почему Google должен расширять протокол? Копайте http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains и отчитайтесь. Удачи.) Поэтому вам нужно вместо этого использовать adieu патч к python-openid, который доступен здесь: http://github.com/adieu/python-openid
Установите это поверх существующего python-openid. Теперь это должно сработать.
Будьте осторожны с параметром OPENID_USE_AS_ADMIN_LOGIN
, так как он требует, чтобы у вас была открытая учетная запись пользователя, которая является "персоналом" или "суперпользователем", чтобы использовать admin, который не будет выполняться по умолчанию. Таким образом, вам нужно сделать 2-шаговый процесс включения openid, войти в систему с вашим openid, чтобы создать учетную запись в django, а затем использовать свою старую учетную запись администратора, чтобы пометить свою собственную учетную запись openid как суперпользователь, а затем отключить администратор non-openid доступ.
Еще одна вещь: администратору домена, возможно, потребуется включить login для входа в домен, прежде чем это сработает. Элемент управления находится в http://www.google.com/a/cpanel/example.com/SetupIdp