1

サービス アカウントを使用してグループのメンバーにアクセスしようとしています。ユーザーに代わって通常の OAuth2 トークンを使用し、 とhttps://www.googleapis.com/admin/directory/v1/groups/{group}/membersscopeを呼び出してこれを実行できることを確認しましたhttps://www.googleapis.com/auth/admin.directory.group.readonly

サービス アカウントで同じことをしたいと思います。サービス アカウントのメール アドレスをグループ メンバーとして追加し、メンバーの表示権限が「グループのすべてのメンバー、組織のすべてのメンバー」に設定されていることを確認しました。

メンバーのリストを要求すると、次のエラーが表示されます。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Not Authorized to access this resource/api"
   }
  ],
  "code": 403,
  "message": "Not Authorized to access this resource/api"
 }
}

このサービス アカウントがグループを表示できるようにするには、どうすればよいですか?

4

2 に答える 2

0

次の API ドキュメント ページで説明されている手順に従って、サービス アカウントを作成し、ドメイン全体の権限の委任を実行できます。グループのメンバーであるユーザーのメール アドレスが必要になることに注意してください (コード内のuserEmail )。以下のスニペット) を使用して、サービス アカウントが代わりに動作できるようにします。

https://developers.google.com/admin-sdk/directory/v1/guides/delegation

このページには、Google Developers Console で作成されたサービス アカウントと秘密鍵を使用して com.google.api.services.admin.directory.Directory オブジェクトをインスタンス化する方法の Java および Python の例が含まれています。

 GoogleCredential credential = new GoogleCredential.Builder()
  .setTransport(httpTransport)
  .setJsonFactory(jsonFactory)
  .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
  .setServiceAccountScopes(DirectoryScopes.ADMIN_DIRECTORY_USERS)
  .setServiceAccountUser(userEmail)
  .setServiceAccountPrivateKeyFromP12File(
      new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
  .build();
于 2015-06-11T15:31:46.793 に答える