Замяна на API за предоставяне на Google Apps

В моята организация имаме собствено разработено уеб приложение, което разчита на API за предоставяне на приложения на Google, за да позволим на нашия ИТ отдел от ниво 1 да управлява имейл акаунти и имейл групи. Въпреки това, тъй като google отхвърли приложния програмен интерфейс (API) в полза на API на директорията на SDK на администратора някои от функционалността на нашето уеб приложение спря да работи, така че е време да започнем да пренаписваме задната част на уеб приложението.

Проблемът, с който се сблъскваме обаче, е, че новият 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