Какую стратегию OAuth использовать для аутентификации принадлежащего SPA, а какую для третьих лиц? - PullRequest
0 голосов
/ 19 января 2019

Корпус : System-K имеет много микросервисов. Одним из них является микросервис OAuth, который предоставляет токены доступа для третьих сторон, которые будут использовать некоторые данные, управляемые другими микросервисами System-K. System-K также имеет внешний интерфейс, который является веб-приложением SPA. Этот SPA также потребляет те же данные, что и третьи стороны, но с той разницей, что этот SPA будет способен запрашивать привилегированные данные, поскольку является собственным интерфейсом Sysmte-k.

Вопрос : Какую стратегию OAuth использовать для SPA? или я должен использовать другой подход для обработки запроса аутентификации, сделанного SPA и оставляющего сервер OAuth только для третьих сторон?

Под капотом : Веб-приложение построено на Angular 7+, оно отправляет запросы на APIGateway, который является микросервисом, частью Sysmte-k, а затем APIGateway направляет такие запросы целевому микросервису. OAuth-запрос от третьих лиц также отправляется на APIGateway, который направляется в микросервис OAuth. Все микросервисы встроены в Node и написаны с использованием TypeScript.

Обновление 1 Я не хочу, чтобы пользователи, проходящие аутентификацию в SPA, увидели экран с надписью «Разрешаете ли вы System-K получить доступ к вашему профилю Sysmte-k?» поскольку SPA - это сам клиент System-k.

1 Ответ

0 голосов
/ 19 января 2019

Вопрос: - Какую стратегию OAuth использовать для SPA? или я должен использовать другой подход для обработки запроса аутентификации, сделанного SPA, и покидает сервер OAuth только для третьих лиц?

Если ваш SPA не имеет внутреннего сервера (что означает, что ваш SPA на самом деле не является SPA), вы можете использовать implicit OAuth. Неявный OAuth работает в JavaScript в браузере.

Для неявного OAuth я настоятельно рекомендую использовать сторонний провайдер идентификации (Google, Auth0, Okta). Получить правильную защиту в вашем собственном коде очень сложно.

Если вы сможете добавить бэкэнд-сервис для предоставления трехстороннего OAuth, ваша безопасность улучшится, и у вас будет гораздо больше возможностей. Я снова рекомендую сторонний поставщик удостоверений.

...