Identity Server 4 + Angular SPA в качестве шлюза федерации для внешних провайдеров - PullRequest
0 голосов
/ 04 мая 2020

Я проектирую систему со следующими компонентами: - Angular SPA -. NET Основные микросервисы (один из них в AuthService)

Я хочу реализовать архитектуру, в которой будет действовать мой IS4 в качестве шлюза федерации (в качестве клиента для внешних провайдеров - Facebook, Microsoft, Google et c). И в то же время он должен выступать в качестве поставщика для angular SPA (который будет выступать в качестве клиента).

Поэтому я хочу реализовать следующий поток. - Пользователь нажимает на кнопку входа в социальную сеть (из SPA) - IS4 вызывается и выступает в качестве клиента для внешних предоставлений - Пользователь завершил авторизацию, внешний токен получен IS4 - ??? - Клиент SPA получает внутренние токены

Таким образом, основная проблема заключается в том, как реализовать токен обмена от внешнего провайдера к внутреннему. - Для этого случая, как SPA должен быть настроен? - Как должна осуществляться интеграция между IS4 и SPA после получения внешнего токена? - Какие параметры должны быть в запросе от SPA в этом случае? - Можем ли мы использовать конечную точку токена IS4 и производить внутреннюю эмиссию токена внутренними устройствами IS4?

1 Ответ

0 голосов
/ 05 мая 2020

Итак, у меня есть решение моей маленькой концептуальной путаницы.

Архитектура: - Angular SPA - Клиент - Бэкэнд IS4 + SPA с взаимодействиями, обслуживаемыми той же службой (вместо пользовательского интерфейса быстрого запуска) - Служба идентификации

Поток следующий: - Клиент запускает поток PKCE - Для пользователя отображается SPA взаимодействий (с внешними кнопками входа в систему провайдера входа в систему, полями для входа / передачи и т. Д. c) - щелчки пользователя кнопка внешнего провайдера и начинается взаимодействие между пользователем и внешним провайдером - после завершения взаимодействия IS4 перенаправляет клиенту с кодом - клиент запрашивает токен с этим кодом (завершает поток PKCE)

Таким образом, основная ошибочная концепция была ответственность. Весь пользовательский интерфейс, связанный с авторизацией, должен быть на стороне IS4.

...