1

管理者ユーザーを使用して、Googleアプリドメインのユーザーになりすます方法を探しています。google data document list apiで簡単に実行できましたが、新しいDriveAPIで実行する方法が見つかりません。

正確には、私がやりたいのは、Oauth2を使用して管理者ユーザーを認証し(私はすでにこれを行っています)、ドメインのユーザーのリストを取得してからユーザーになりすますか、少なくともからファイルやドキュメントにアクセスできるようにすることですそれらのユーザーのドライブ。

Googleアプリの管理パネルには、OauthコンシューマーキーとOauthコンシューマーシークレットがありますが、これらはOauth2ではなくOauth12LOで使用されます。

私が欲しいものを実装するための適切な方法/回避策/ハックはありますか?

よろしくお願いします、

ジェローム

4

2 に答える 2

2

私は例としてgoogle-api-ruby-clientを見てきましたが、管理パネル->高度なツール->サードパーティのoauathクライアントの管理を通じてアクセスが許可されているサービスアカウントでこれを行うことができるはずです。許可されると、 http://code.google.com/p/google-api-ruby-client/source/browse/service_account/analytics.rb ?repo = samplesでサービスアカウントの例に従うことができますが、

client.authorization = asserter.authorize()

あなたが使用することができます

client.authorization = asserter.authorize("id@domain.com")

私はまだこれについて多くのことをしていませんが、この方法で認証した後、自分のドメインのユーザーが所有するすべてのドキュメントを一覧表示することができました。

于 2012-10-06T19:56:39.473 に答える
2

James Woodwardのおかげで、ユーザーになりすますことができました。Java固有の詳細を提供するための回答を投稿します。

  1. APIコンソールでサービスアカウントを作成します。3つの重要なリソースが作成されます:
    1. クライアントID:GoogleAppsドメインでアプリを承認するために使用されます
    2. メールアドレス:アプリのリクエストを承認するために使用されます
    3. .p12キーファイル:アプリのリクエストを承認するために使用されます
  2. Google Apps管理パネルでアプリを承認し、サービスアカウントのクライアントIDと、アプリに必要なすべてのスコープを提供します。
  3. GoogleCredentialこの方法で作成します:

    GoogleCredential serviceCred = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId(SERVICE_ID)
                .setServiceAccountScopes(Arrays.asList(SCOPES))
                .setServiceAccountUser("impersonated.user@domain.com")
                .setServiceAccountPrivateKeyFromP12File("key.p12")
                .build();
    

これらのクレデンシャルを使用して、承認された任意のスコープでアプリによって行われたリクエストを認証できるようになりました。

于 2012-10-09T09:45:14.340 に答える