Как только вы распространяете свое приложение, его можно разобрать. Таким образом, частный ключ, который будет распространяться вместе с вашим приложением, может быть извлечен и повторно использован.
Нет полностью защищенного способа делать то, что вы пытаетесь сделать. Но есть способы ограничить клиентов, даже если они не являются надежными.
Простейшим (и наименее защищенным) было бы ограничение доступа на основе пользовательского агента. Но любой клиент может подделать пользовательский агент.
Решение с сертификатом/криптостойкостью является более надежным, но, как сказано выше, сертификат может быть извлечен из вашего приложения.
OAuth используется некоторыми приложениями в том же контексте, что и ваш. Но OAuth не был разработан для настольных (или мобильных) приложений и также уязвим для обратного проектирования приложения.
Вы можете аутентифицировать пользователя (через пользователя/пароль или другой стандартный метод). В этом случае вы не ограничаетесь основанием на форме пластины. Затем вы можете закрыть учетную запись пользователей, злоупотребляющих вашим сервисом. Это защищенное решение, но не совсем ответ на вашу проблему.
Это не самый простой (который был бы агент пользователя), и он далеко не обеспечен. – Guillaume
Услуги JSON не заботятся о пользователе-агенте. Пользовательский агент полезен только при возврате html в браузер. Кстати, вы все равно можете установить пользовательский агент с HttpClient. –
HTTPS безопасен - внешние стороны не могут на него обходить. И если он использует аутентификацию с именем пользователя/паролем, то другие не могут подключиться к нему. –