質問: お世話になっております。 Google Cloud Endpointを使用し、APIを作成しているのですが、あるEndpointのみ 限定したユーザーだけが実行できるようにしたいと考えています。 例えば コンテンツデータであればPOST, PUT, DELETEはAdminのみ。 ユーザーが作成したデータであればPOST, PUT, DELETEは作成したユーザーのみ。 等です。 皆様はどのように管理されているのでしょうか?
回答: Adminが、Developerという意味であれば、User Service を利用して、アクセス制御を行うのが簡単です。 マスタデータの登録APIや、Cron, TQから実行するAPIは、UserService.Adminで制限をかけるようにします。 Adminが、AdminのRoleを持ったUserという意味であれば、要件に合わせて自分で実装します。 一番単純なのは、Userのデータに紐付けてAdmin Flagを入れて、プログラム側で判定を入れるとかですね。その場合、だれがAdminなのかを管理する機能を作成する必要があります。 もしUserがGoogle AppsのUserであれば、Admin SDK を利用すれば、Google Groupと連携させることもできます。 admin@example.comのようなグループを作成し、そのグループに所属しているメンバーはAdminとみなすという実装になります。Google Groupと連携させるメリットは、admin@example.comのメンバーの管理はGroupの機能で行えるので、自前で管理画面を作る必要がないことです。