0

Directory API を使用して、ドメイン内のユーザーの Google パスワードを更新しようとしています。Plus サービス アカウントの例に従いましたが、これはほとんど同じです ( https://github.com/google/google-api-java-client-samples/blob/master/plus-serviceaccount-cmdline-sample/src /main/java/com/google/api/services/samples/plus/serviceaccount/cmdline/PlusServiceAccountSample.java )。

ドメインにユーザー パスワードを設定するために、スーパー管理者ユーザーのメール アドレスを setServiceAccountUser() に渡す必要がある理由を特定しようとしています。serviceAccountUser を設定せずに API を使用できるようにする設定はありますか?

setServiceAccountUser() 呼び出しをコメントアウトすると、次のメッセージが表示されます。

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

関連するコード (Plus サンプルから) は次のとおりです。

// service account credential (uncomment setServiceAccountUser for domain-wide delegation)
    GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
        .setJsonFactory(JSON_FACTORY)
        .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
        .setServiceAccountScopes(Collections.singleton(PlusScopes.PLUS_ME))
        .setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
        // .setServiceAccountUser("user@example.com")
        .build();
4

1 に答える 1

1

Directory API の書き込み操作には、管理者アカウントが必要です。API ユーザーの変更を実行する権限を持つスーパー管理者または代理管理者。これは、前提条件のドキュメントに記載されています。

于 2015-04-08T18:29:57.077 に答える