Наиболее элегантным решением вашей проблемы было бы использование федерации удостоверений. Основная идея состоит в том, чтобы аутентифицировать вашего пользователя локально, как вы делаете это в своих обычных приложениях, и отправить маркер безопасности своему облачному провайдеру, подтверждающий личность ваших пользователей.
SAML является наиболее распространенным протоколом федерации, используемым для достижения этой цели. У Google есть хорошая страница , объясняющая детали , и википедия страница также проницательна:
Существует множество решений для федерации удостоверений, например:
- Службы федерации Active Directory (ADFS)
- SimpleSAMLphp
- Шибболет
- OpenAM
SimpleSAMLphp может быть хорошим началом для ознакомления с SAML, как это просто .. :)
Процедура подключения к приложениям Google описана здесь .
ADFS будет решением, ориентированным на AD, но его будет немного сложнее настроить.