Где следует создать учетную запись службы Google? Домен приложения? Или в Домене каждого клиента? - PullRequest
0 голосов
/ 09 марта 2019

Сервисная учетная запись предназначена для создания в домене приложения?Или в клиентском домене G Suite от имени приложения?


Справочная информация:
У моей компании есть продукт (в дальнейшем «Приложение»), в качестве клиентов которого используется несколько тысяч организаций, каждая из которых потенциально можетимея свои собственные домены Google.(далее «Домен организации»)

Мы собираемся установить синхронизацию между Приложением и Доменом организации для данных, общих для Приложения и Домена организации, и хотим использовать подключение OAuth2,с администратором домена, предоставляющим приложению «полномочия для всего домена» от имени своих пользователей для автономной синхронизации.

со страницы учетной записи службы :

... учетная запись, которая принадлежит вашему приложению, а не отдельному конечному пользователю.Ваше приложение вызывает API Google от имени учетной записи службы, поэтому пользователи не участвуют напрямую.

и

Администраторы домена G Suite также могут предоставлять учетные записи домена службы-широкие полномочия для доступа к пользовательским данным от имени пользователей в домене.

Ссылка на справку по консоли Cloud Platform Faq :

Вы можете получить доступ к даннымиз проектов пользователей облачной платформы Google, создав учетную запись службы для представления вашей службы, а затем попросив ваших клиентов предоставить этой учетной записи соответствующий доступ к своим облачным данным с помощью политик IAM.Обратите внимание, что вы могли бы захотеть создать учетную запись для каждого клиента ... (выделение добавлено)

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

Непонятная часть:
На странице «Учетная запись службы» инструкции по делегированию полномочий для всего домена, похоже, смещены относительно того, где находится учетная запись службы.Перед инструкциями написано:

... сначала включите делегирование по всему домену для существующей учетной записи службы на странице учетных записей служб ... с включенным делегированием по всему домену,Затем администратор домена G Suite должен выполнить следующие шаги:

После этого он прочитает

Ваше приложение теперь имеет полномочия наделать вызовы API как пользователи в вашем домене (чтобы "выдать себя за пользователя").(выделение добавлено)

Из того, что я читаю, первая часть гласит «одна учетная запись службы для приложения», а вторая - как «учетная запись службы доступна только как личность».в домене приложения, а не в домене организации. "

Предназначена ли учетная запись службы в домене приложения?Или в Домене организации, от имени Приложения?

Я видел примеры, когда администратор домена Организации создавал учетную запись службы, а затем передавал clientID / secret владельцам приложения ... но яЯ не уверен, что это правильный подход для нашего сценария.


Связано - Управление областями: На этапах делегирования администратор домена организации вручную добавляет области.

Мы бы предпочли использовать экран согласия OAuth, на котором показаны области действия и ссылки на наши страницы / политики.К сожалению, насколько мне показало мое исследование, похоже, что эта страница не используется в процессе авторизации учетной записи службы;только для других типов приложений, которые аутентифицируют одного пользователя, а не весь домен организации.

Есть ли страница, которую я пропустил в море документации Google?

1 Ответ

0 голосов
/ 18 марта 2019

Я думаю, вы не понимаете, как использовать учетные записи Сервиса.

Сервисные учетные записи являются фиктивными учетными записями пользователей.У них есть собственная учетная запись на диске, календарь и, возможно, еще несколько.Учетные записи служб предназначены для использования с серверными приложениями для взаимодействия с сервером, где нет взаимодействия с пользователем.Сервисные аккаунты предварительно авторизованы.Вы предоставляете учетной записи службы доступ к данным пользователя в вашем случае, используя привязку к домену учетной записи gsuite.Таким образом, учетная запись службы сможет, например, передавать управление всем учетным записям пользователей календаря Google.

Именно поэтому вам не нужен экран согласия.Еще один момент, связанный с учетными записями служб, заключается в том, что вы должны контролировать данные, чтобы их настроить.Если вы не контролируете данные, вы не можете предоставить доступ к этим данным учетной записи службы.

Вам следует использовать Oauth2, если вы хотите получить доступ к частным данным пользователя, принадлежащим вашим клиентам.

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

...