Перейдите в раздел «IAM и администрирование» → «Учетные записи служб» → «Создать учетную запись службы» и настройте её. Два дополнительных шага не обязательны — пропустите их.
В списке учетных записей служб выберите созданную учетную запись, запишите её «уникальный идентификатор» для дальнейшего использования, затем перейдите на вкладку «Ключи». Создайте новый ключ в формате «JSON» и сохраните файл для дальнейшего использования.
Перейдите на admin.google.com и откройте раздел «Безопасность». Откройте «Управление доступом приложений», затем «Управление доступом сторонних приложений». Нажмите «Добавить приложение», «Имя OAuth-приложения или идентификатор клиента». Введите идентификатор клиента вашего OAuth-приложения, затем выберите его из списка. Выполните все шаги, убедившись, что приложение помечено как «Доверенное». После этого оно должно появиться в списке:
Вернитесь в раздел «Управление доступом приложений», прокрутите вниз и выберите «Управление делегированием в домене». Нажмите «Добавить новый» и введите идентификатор клиента учетной записи службы, которую вы создали ранее. В разделе «Области действия» вставьте значение:
В панели администратора Discourse перейдите в раздел Администрирование > Настройки > Вход и аутентификация > Аутентификаторы и найдите «google oauth2 hd». Настройте следующие параметры:
google oauth2 hd: доменное имя вашего Google Workspace
google_oauth2_hd_groups_service_account_json: вставьте содержимое файла ключа учетной записи службы, который вы создали ранее
google_oauth2_hd_groups_service_account_admin_email: введите адрес электронной почты любой учетной записи администратора Google Workspace. Эта учетная запись будет использоваться службой при получении информации о группах Google
google oauth2 hd groups: включено
При следующем входе пользователя Discourse автоматически загрузит и сохранит информацию о группах Google.
Чтобы связать группу Google с группой Discourse, откройте настройки группы в Discourse и перейдите в раздел Управление → Участники. В разделе «Автоматически» появится новый выпадающий список, позволяющий связать любое количество групп Google с группой Discourse:
Изменения в этом параметре вступают в силу немедленно. Изменения членства в группах Google вступят в силу при следующем входе пользователя.
Большое спасибо @angus за его работу над этой функцией. Мы надеемся в ближайшем будущем расширить эту систему синхронизации групп на другие методы входа.
Hi Charlie, the google oauth2 hd is from Google OIDC API (docs here). They say it is:
The domain associated with the Google Workspace or Cloud organization of the user
To give an example, if I was setting this up internally for our staff, I would set the value to discourse.org.
Yup!
Google groups will only appear in Discourse once a member of that group signs in to Discourse using google. We don’t have any system for listing them up-front.
@david I finally got it to work. I had to turn some things off. The way my site was set up, users were auto-logged in through Google Oauth. I turned that off and Discourse Connect and it worked. Unsure as to which was creating a disconnect. Once I physically logged in with Google, everything populated.
Like @John_Faig, I’m wondering if this is still experimental.
I just saw this feature and have three Google Groups that I’d like to migrate. Getting people to “change” is extremely difficult. We need good reasons to shift out of our comfort zone. Then we don’t want stumbling blocks in the process. Creating a (Discourse) login in yet another website is a hassle for people who are already vested in GG. If this feature is stable, the potential stumbling block is removed, and we can focus on providing compelling reasons for the audience to migrate.