Как управлять учетными данными потребителей - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть общий вопрос о способе аутентификации пользователя на многих микросервисах и Express-Gateway.У меня N микросервисов.Один из этих микросервисов (назовем его «Профили пользователей») будет содержать все данные, связанные с профилями пользователей, такие как электронная почта, имя пользователя, дата регистрации, дата рождения и т. Д. Итак, вот вопросы:

  1. Как организовать регистрацию пользователя и аутентификацию?Как насчет этого рабочего процесса:
    • EG имеет конечные точки API, которые напрямую связаны с внешним миром.Эти конечные точки поступают из микросервиса «Профили пользователей».
    • Если пользователь хочет зарегистрироваться ИЛИ войти, он отправляет запрос POST в эту службу.Этот запрос содержит все необходимые данные.
    • , чтобы получить JWT accessToken, который затем используется для всех других запросов, этот микросервис отправляет запрос в API администратора EG и создает следующие вещи:
      1. создать пользователя
      2. создать учетные данные jwt для этого пользователя
    • после получения ответов от EG микросервис «Профили пользователей» формирует токен доступа JWT на основеkeyId и keySecret
    • отправляют этот токен пользователю
    • , теперь пользователь может получить доступ ко всем защищенным маршрутам при передаче Bearer accessToken

Здесь - схема рабочего процесса.

Мой второй вопрос - если вышеуказанный рабочий процесс в порядке, то после каждого создания пользователя будет создаваться вновь созданный keySecret.Что мне нужно указать для secretOrPublicKey param в gateway.config.yml?Может быть, когда генерируется JWT accessToken, мне нужно использовать какой-то тип закрытого ключа, а не keySecret на этапе создания учетных данных, а затем поместить тот же ключ в gateway.config.yml?

1 Ответ

0 голосов
/ 04 мая 2019

Прошу прощения за поздний ответ.

Поток, который вы описали, выглядит нормально, и это именно то, для чего предназначен API администратора.

По вопросу 2 - вам не нужно прикасаться к secretOrPublicKey - вы устанавливаете его один раз, и это хорошо навсегда, независимо от количества пользователей, которых вы создаете. Этот параметр используется для подписи JWT, отправленных клиенту. Оставьте все как есть, и у вас не должно возникнуть проблем.

...