0

このリソースで新しいデバイスを作成しようとしています:

https://cloud.google.com/identity/docs/reference/rest/v1beta1/devices/create .

以下のように API のスコープを定義しました。

    @Override
    protected List<String> getScopes() {
        return Collections.singletonList(
                "https://www.googleapis.com/auth/cloud-identity"
        );
    }

このように API の create メソッドを呼び出しています。

            val createDeviceRequest = new CreateDeviceRequest()
                    .setCustomer("customers/my_customer")
                    .setDevice(createDeviceModel.toGoogle());
            
            cloudIdentityClientFactory
                    .createFor(adminGoogleId)
                    .devices()
                    .create(createDeviceRequest)
                    .execute();

「createDeviceRequest」エンティティ値は次のようになります。

ここに画像の説明を入力

クライアントの作成は正常に機能し、リスト エンドポイントを呼び出して、応答本文に 3 つのデバイスがある成功応答を取得できるため、クライアントの作成に関するエラーはありません。上記で定義された 1 つのスコープのみを使用しており、リストされているデバイスにアクセスできるため、スコープが正常に機能することを理解しています。

https://cloud.google.com/identity/docs/reference/rest/v1beta1/devices/list

正常に動作するリスト デバイスの例:

            val x = cloudIdentityClientFactory
                    .createFor(adminGoogleId)
                    .devices()
                    .list()
                    .setCustomer("customers/my_customer")
                    .execute();

create エンドポイントを呼び出そうとすると、403 Forbidden エラーが発生します。この禁止メッセージの原因を知りたいのですが、それを修正する方法はありますか?

POST https://cloudidentity.googleapis.com/v1beta1/devices
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "The caller does not have permission",
    "reason" : "forbidden"
  } ],
  "message" : "The caller does not have permission",
  "status" : "PERMISSION_DENIED"
}

ありがとう。

4

1 に答える 1

1

代わりに Githubに質問を投稿することをお勧めします。

Java と GCP API に関するあなたの質問に、彼らはおそらくより適切に答えることができるでしょう。

于 2020-08-21T20:11:43.857 に答える