Замена API подготовки Google Apps

В моей организации есть собственное разработанное веб-приложение, основанное на API подготовки приложений Google, чтобы позволить нашему ИТ-отделу уровня 1 управлять учетными записями электронной почты и группами электронной почты. Однако, поскольку Google отказался от поддержки этого API в пользу API Admin SDK Directory, некоторые из функциональность нашего веб-приложения перестала работать, поэтому пришло время начать переписывать серверную часть веб-приложения.

Однако проблема, с которой мы сталкиваемся, заключается в том, что новый API использует аутентификацию oAuth 2.0, тогда как в старом API я мог просто жестко запрограммировать пользователя-администратора и получить токен авторизации, вся идея заключалась в том, чтобы минимизировать количество пользователей и учетных данных с помощью права администратора в домене.

Итак, вопрос в том, могу ли я каким-либо образом заставить этого «фиктивного» пользователя авторизовать приложение один раз и никогда больше, чтобы иметь подобную архитектуру, подобную той, что была у нас раньше? хотя я признаю, что лучший вопрос: как лучше всего следовать в этом случае?


person rantsh    schedule 03.06.2014    source источник


Ответы (1)


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

Чтобы создать службу администрирования с учетными данными учетной записи службы:

import httplib2
import sys

from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials

def main(argv):
  # Load the key in PKCS 12 format that you downloaded from the Google API
  # Console when you created your Service account.
  f = file('key.p12', 'rb')
  key = f.read()
  f.close()

  # Create an httplib2.Http object to handle the HTTP requests and authorize it
  # with the Credentials. Note that the first parameter, service_account_name,
  # is the Email address created for the Service account. It must be the email
  # address associated with the key that was created.

  credentials = SignedJwtAssertionCredentials(
      '[email protected]',
      key,
      scope='https://www.googleapis.com/auth/admin.directory.user')
  http = httplib2.Http()
  http = credentials.authorize(http)

  service = build('admin', 'directory_v1', http=http)

  # Then you can use the service
person Meriam-K    schedule 24.10.2014