Сценарий :
Скажем, у меня есть RESTful http (s) API, работающий где-то на публичном порту IP +, и теперь я хочу сделать простой интерфейс, который взаимодействует с этим API.
Ограничение : Я хочу использовать GitHub Pages для обслуживания внешнего интерфейса и хочу сделать хранилище общедоступным.
Вопрос : Есть ли способ спроектировать API так, чтобы успешными были только вызовы, исходящие с веб-сайта gh-pages? То есть, если кто-то раскошелит репозиторий и запустит собственную версию клиентского интерфейса, сможет ли API заметить, что вызов не происходит с «официального» сайта gh-pages? Мне действительно интересно, есть ли что-то, что я могу предоставить в вызове API, который докажет , что вызывающий абонент звонит из определенного, заранее определенного места.
Если внешний интерфейс может быть размещен в частном порядке, я мог бы хранить общий секрет на обоих серверах и использовать его для аутентификации, но в идеале я хотел бы иметь возможность размещать его на страницах GitHub (устраняя необходимость в обслуживании сервера). себя). Могу ли я как-то использовать тот факт, что сайт gh-pages будет иметь надлежащий сертификат от Github? Или этот сертификат будет доступен для всех сайтов gh-страниц одинаково, и, следовательно, бесполезен для определения происхождения?
Надеюсь, вопрос ясен, любой вклад будет очень признателен!