oAuth действительно предназначен для аутентификации пользователей, а не приложений. Я боюсь, что в этом сценарии не очень хороший способ аутентификации приложений, по крайней мере, не без распространения криптографически защищенного, упрощенного оборудования для реагирования на запросы, например, YubiKey вместе с вашим приложением.
Это принципиально сложная проблема для любого такого веб-интерфейса, никоим образом не ограничивающегося облачными конечными точками Google. Суть в том, что вы не можете ограничить количество абонентов вашей конечной точки только создаваемым вами приложением, особенно когда это приложение распространяется среди многих конечных пользователей, некоторые из которых знают, как сбрасывать память или использовать сниффер пакетов.
Лучшее, что может быть сделано, насколько мне известно, заключается в добавлении токена разработчика к вызовам. Это частная строка, известная вашему приложению, и не будет поставляться ничем, кроме вашего приложения. Это будет просто дополнительным параметром для каждого удаленного вызова. Такой токен, безусловно, может быть извлечен из вашего приложения слабо заинтересованным противником с минимальной компетентностью, но он по крайней мере мешает другим дружественным разработчикам случайно вызвать ваш API в предположении, что вы не возражаете против этого. Если вы действительно умны, вы можете разработать механизм, который займет целый день, чтобы работать, а не час, но я сомневаюсь, что вы можете сделать лучше.
Учитывая слабость этого подхода к злонамеренным актерам, я не думаю, что в Google Cloud Endpoints есть встроенная поддержка, хотя я полагаю, что близок service account.