Я наконец получил эту работу, поэтому я отвечу на свой вопрос, так как предыдущие ответы здесь были полезны, но не рассказывают всю историю.
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
, так как требует , чтобы вы имели учетную запись openid, которая является «сотрудником» или «суперпользователем», чтобы использовать admin, что по умолчанию не происходит. Таким образом, вам нужно будет выполнить двухэтапный процесс включения openid, войти в систему с помощью openid, чтобы создать учетную запись в django, затем использовать старую учетную запись администратора, чтобы пометить свою учетную запись openid как суперпользователя, и затем отключить не-openid администратора. доступ.
Еще одна вещь: администратору вашего домена может потребоваться включить openid логин для вашего домена, прежде чем это сработает. Управление на http://www.google.com/a/cpanel/example.com/SetupIdp