Перенести пользователей с Google App Engine на Google OpenID

я перешел с Google App Engine несколько месяцев назад. Но я все еще полагаюсь на него для аутентификации, потому что мои пользователи идентифицируются по их атрибуту user_id в GAE.

Для этого мои (теперь внешние) приложения перенаправляют пользователя в приложение Google App Engine с помощью зашифрованного, подписанного запроса на вход с отметкой времени. Затем приложение GAE выполняет вход с помощью службы «Пользователи» GAE. После успешного входа в GAE пользователь снова перенаправляется с использованием зашифрованного, подписанного ответа с отметкой времени на мое внешнее приложение.Элементарную реализацию можно найти здесь и здесь . Как видите, это очень просто и зависит от тяжелой криптографии, что приводит к плохой производительности.

Мои внешние приложения, в данном случае приложения Django, хранят user_id в поле пароля таблицы пользователей. Помимо user_id, я получаю только адрес электронной почты от GAE для хранения имени пользователя и электронной почты в Django.

Теперь я хотел бы удалить зависимость от службы GAE. Первый подход, который приходит на ум, вероятно, будет заключаться в том, чтобы отправить электронное письмо каждому пользователю с просьбой установить новый пароль, а затем выполнить мою собственную аутентификацию с использованием Django.

Я бы предпочел решение, основанное на службе Google OpenID, чтобы для пользователя фактически не было разницы. Это также предпочтительнее, потому что мне все равно нужно отправить пользователя в Google, чтобы получить токены AuthSub для API Календаря Google.

Проблема в том, что я не смог найти способ получить атрибут GAE user_id данной учетной записи Google без использования GAE. OpenID и все другие протоколы аутентификации используют разные идентификаторы.

Итак, теперь возникает вопрос: предоставляет ли Google какие-либо API, которые я мог бы использовать для этой цели, которых я еще не видел? Есть ли другие возможные решения или идеи о том, как перенести учетные записи пользователей?

Заранее спасибо!

7
задан mback2k 4 April 2012 в 07:32
поделиться