Якщо ми розробляємо ПО, яке має інтегруватися із Google’ом, наприклад ми хочемо надати нашому клієнту менеджерити його ж юзерів в Google G Suite, то є необхідність пройти security assessment, який коштує доречі не дешево. Тобто стороння організація, має за тисячі доларів перевірити ваш апікейшн і тільки тоді ви можете впроваджувати ваш продукт.
Як чудова альтернатива для цього, це створення свого аплікейшену в G Suite MarketPlace:
1. Після створення аплікейшену в G Suite Marketplace в G Suite Marketplace SDK автоматично свторюється G Suite Marketplace Integration Client (Credentials/OAuth 2.0 Client IDs)
Тут потрібна веріфікація із сторони гугла, але достатньо створити тестовий аплікейшн, щоб можна було погратися, потестувати. Для цього вказуємо Visibility: My Domain (Only available to users at mydomain.com) в Configuration
Також на цій сторінці налаштування, задаємо OAuth 2.0 scopes з якими ми хочемо працювати
2. Створюємо Service Account. Зберігаємо отриманий json-файл(він нам буде потрібний для подальшої роботи)
3. Йдемо в Security / Setting / Advanced Settings та клікаємо на Manage API client access
тут зліва вводимо Unique ID нашого service account’а, а з права через кому усі OAuth 2.0 scopes
Приклад отримання усіх юзерів домену в G Suite
1 |
<em>SCOPE </em>= Google::Apis::AdminDirectoryV1::AUTH_ADMIN_DIRECTORY_USER_READONLY<br><br><strong>def gsuite_users(domain)</strong><br> service = ::Google::Apis::AdminDirectoryV1::DirectoryService.new<br> subuser_id = 'admin@mycompany.com'<br><br> authorizer = Google::Auth::ServiceAccountCredentials<br> .make_creds(json_key_io: File.open('config/my.json'), scope: SCOPE)<br> impersonate_auth = authorizer.dup<br> impersonate_auth.sub = subuser_id<br> service.authorization = impersonate_auth<br> service.list_users(domain: domain).users<br><strong>end</strong><br><br> |
1 |
<em>SCOPE </em>= Google::Apis::AdminDirectoryV1::AUTH_ADMIN_DIRECTORY_USER_READONLY<br><br><strong>def gsuite_users(domain)</strong><br> service = ::Google::Apis::AdminDirectoryV1::DirectoryService.new<br> subuser_id = 'admin@mycompany.com'<br><br> authorizer = Google::Auth::ServiceAccountCredentials<br> .make_creds(json_key_io: File.open('config/my.json'), scope: SCOPE)<br> impersonate_auth = authorizer.dup<br> impersonate_auth.sub = subuser_id<br> service.authorization = impersonate_auth<br> service.list_users(domain: domain).users<br><strong>end</strong> |
Для того, шоб це все працювало, необхідно щоб наш клієнт заінсталив собі наш G Suite Application – таким чином він погодиться на наші скоупи, в межах якого ми будемо працювати