2

私の組織では、 Google Apps プロビジョニング APIに依存する社内開発の Web アプリケーションを使用して、レベル 1 の IT 部門が電子メール アカウントと電子メール グループを管理できるようにしています。ただし、Google がAdmin の SDK Directory APIを優先して API を非推奨にしたため、Web アプリケーションの機能の一部が機能しなくなったため、Web アプリケーションのバックエンドを書き直す時が来ました。

ただし、私たちが直面している問題は、新しい API が oAuth 2.0 認証を使用していることです。古い API では、管理者ユーザーをハードコーディングして認証トークンを取得するだけでした。全体的なアイデアは、ユーザーと資格情報の量を最小限に抑えることでした。ドメインへの管理者権限。

問題は、この「ダミー」ユーザーにアプリを一度承認させて、以前と同じようなアーキテクチャを二度と持たせないようにする方法はありますか? より良い質問は認めますが、この場合に従うべきベストプラクティスは何ですか?

4

1 に答える 1

1

ケースに最適な認証フローは two-legged-oauth です。oauth 2.0 では、 Service Account Credentialsを設定する必要があります。

サービス アカウント資格情報を使用して管理サービスを構築するには:

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(
      'XXXXX@developer.gserviceaccount.com',
      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
于 2014-10-24T10:18:10.863 に答える