Вы можете реализовать всю логику аутентификации прямо в вашем приложении.В качестве альтернативы, посмотрите Auth0 , который в основном предоставляет вам аутентификацию и управление идентификацией как сервис.Вы можете легко добавить Auth0 в свое приложение Heroku в качестве бесплатного дополнения на торговой площадке Heroku Elements .
У них есть много различных вариантов использования и связанных с ними пошаговых переходов, и они предлагают очень щедрый бесплатный уровень.
Исходя из ваших требований, звучит так, что вы, возможно, захотите посмотреть Auth0 Приложений между компьютерами с использованием OAuth2 Client Credentials Grant .При этом вашей внешней системе (системам) в основном нужно будет проходить аутентификацию с Auth0, используя Client Id и Client Secret (которые вы можете сгенерировать в Auth0 и предоставить им).Затем они получат доступ к вашему API с помощью JWT , который вы можете легко проверить в своем приложении (Auth0 предоставит вам сгенерированный код на многих разных языках, чтобы вы могли сделать это очень легко).Ваш API затем отклонит запросы без действительного JWT (отправив ответ «401 Unauthorized»).
Поначалу это может показаться немного пугающим, но действительно стоит пройти через соответствующий «быстрый запуск» Auth0.Они действительно стараются изо всех сил, чтобы сделать это как можно проще!