Мы строим решение, которое должно будет иметь доступ к нашим клиентам учетные записи Gmail для чтения/отправки почты. При регистрации аккаунта у нас будет всплывающее окно для нашего клиента, чтобы он выполнил авторизационную страницу Gmail, а затем серверный процесс, чтобы периодически читать их электронные письма..NET Gmail OAuth2 для нескольких пользователей
Документация, похоже, не охватывает этот прецедент. Например, https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth говорит, что токены клиента должны храниться в client_secrets.json - что, если у нас есть 1000 клиентов, что тогда?
Учетные записи службы предназначены для информации, не являющейся пользователем, а скорее данными приложения. Кроме того, если я использую GoogleWebAuthorizationBroker, и пользователь удалил доступ, или жетоны истекли, я не хочу, чтобы мое серверное приложение сервера открыло веб-браузер, поскольку это, похоже, делает.
Я бы предположил, что могу использовать IMAP/SMTP, но я не думаю, что это хорошая идея хранить эти учетные данные в моей базе данных, и я также не думаю, что Google тоже хочет этого.
Есть ли ссылка на то, как это можно сделать?
Похоже, вам нужно вернуться к Google [OAuth 2.0 документации] (https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#oauth-20- пр otocol). Идентификатор клиента и секрет уникальны для каждого типа приложения (веб-приложение, Android и т. Д.). Что касается вашего случая использования, учетные записи служб идеально подходят для того, что вы ищете, если вы не хотите, чтобы пользователь давал согласие каждый раз, когда они используют ваше приложение. Это вызов «Делегирование полномочий домена во всей учетной записи службы». Подробнее об этом читайте здесь (https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority). – Andres
Благодарим за ответ, но в верхней части этой страницы говорится: «Обычно приложение использует учетную запись службы, когда ** приложение использует API Google для работы со своими данными, а не с данными пользователя. ** Например, приложение, использующее Google Cloud Datastore для сохранения данных, будет использовать учетную запись службы для аутентификации своих вызовов в API облачного хранилища данных Google ». –
Часть, на которую вы ссылаетесь, говорит: ** Ваше приложение теперь имеет право называть вызовы API как пользователей в вашем домене ** Это случайные люди, не принадлежащие к моему домену. –