Использование OAuth для аутентификации виджета календаря GoogleApps в нашем веб-приложении (с использованием Google в качестве двуногого клиента OAuth)

#oauth #google-calendar-api #google-apps #oauth-provider #google-widget

#oauth #google-calendar-api #google-приложения #oauth-провайдер #google-виджет

Вопрос:

В настоящее время я изучаю возможность интеграции календаря Google Apps с моим приложением. Один из моих вариантов использования включает добавление пользовательского виджета в календарь. Пользователь будет использовать этот виджет для добавления специальных событий календаря, затем виджет свяжется с моим приложением с помощью oauth, чтобы запустить дополнительную бизнес-обработку.

  • Как мне безопасно подключиться к своему приложению через OAuth из виджета Google?
  • Есть ли у Google какой-либо api / поддержка для того, чтобы быть потребителем OAuth?
  • Или Google-apps предоставляет сервис, в котором я могу безопасно хранить потребительский ключ OAuth и секретный ключ на уровне домена и получать к ним доступ так, чтобы отдельные пользователи не видели ключ?

Я рассмотрел возможность использования отдельного веб-приложения для размещения ключа пользователя и секрета. Но это просто устраняет проблему в будущем. Как мне убедиться, что запрос к этому приложению от аутентифицированного пользователя Google-apps в определенном домене? В этом случае мне пришлось бы использовать OpenID или аналогичный.

  • Если да, то было бы лучше использовать OpenID для этого варианта использования и полностью отказаться от OAuth?

(Примечание: Я уже прочитал столько документации Google OAuth, сколько смог найти. Пожалуйста, не ссылайтесь на другие, если в них конкретно не упоминается использование Google в качестве клиента OAuth или как использовать Google для управления ключами клиента OAuth).

Ответ №1:

Насколько я мог понять, это невозможно, поскольку я планировал это сделать.

Это потому, что виджет использует только javascript и HTML для клиента. Нет места, где хранить идентификационные данные пользователей, им все равно пришлось бы где-то входить на сервер, и серверу пришлось бы хранить идентификационные данные пользователей и выполнять танец oauth.

Я открыт для лучших ответов, если они у кого-нибудь есть, но я больше не занимаюсь этим вопросом.