Сервер аутентификации с несколькими веб-серверами?

Извините, если этот вопрос слишком прост, но я просто не уверен в том, что я сделал, и мне нужны советы.

Я создаю несколько веб-серверов, и каждый из них имеет свои основные функции. Во всяком случае, у них есть некоторые общие функции, такие как профиль пользователя, как на картинке ниже:

Это простая структура, где каждый сервер имеет свой собственный сервер аутентификации и функцию управления профилем пользователя, но в этом случае мне нужно дублировать вещи. И в моем случае, если 1 пользователь хочет использовать несколько приложений, ему необходимо зарегистрировать несколько учетных записей.

Чтобы избежать этого, я создаю главный сервер, который обрабатывает основные функции (такие как Управление профилем пользователя,..) и аутентификацию. Я использую OAuth2 для этого.

Когда пользователь пытается получить доступ к серверу A,B или C, он перенаправляется на главный сервер для аутентификации и перенаправляет обратно с помощью токена доступа. Я храню этот токен в сеансе пользователя. Затем каждый раз, когда пользователь снова пытается получить доступ к серверу A,B,C, я отправляю токен доступа на главный сервер, чтобы убедиться, что этот токен все еще действителен, чтобы он мог продолжить запрос, в противном случае ему необходимо повторно пройти аутентификацию.

Кажется, здесь все работает нормально, но когда сервер A,B или C предоставляют API для своего отдельного мобильного приложения, это усложняется. Сервер A,B,C не аутентифицирует пользователя, так что мне с этим делать? Должен ли я передавать учетные данные пользователя на главный сервер (я предпочитаю это, но я не уверен, как это сделать), или я должен позволить серверу A,B,C аутентифицировать пользователя (это будет дублировать информацию пользователя на каждом сервере)?

Я беспокоюсь о безопасности, а также производительности. Ваши советы приветствуются.

0 ответов

Другие вопросы по тегам