Что выбрать для SSO и как лучше сделать общение сервисов?

Задача следующая: необходим какой-то сервер авторизации с UI, чтобы пользователи могли регистрироваться, менять свои данные и пр. и в дальнейшем к нему могли обращаться сервисы для получения каких-то данных о пользователях.

Так же сервер должен иметь API, чтобы другие сервисы могли запросить у него, например, список пользователей, чтобы можно было их выбрать в качестве исполнителя задачи (как пример).

Сервисы будут внутри компании, только в локальной сети (если это важно).

Вопрос 1: что лучше всего взять для авторизации/регистрации? Keycloak или написать какое-то свое решение?

Вопрос 2: как организовать общение сервисов, если я, условно говоря, нахожусь в сервисе создания задач, а мне нужно получить список исполнителей, то сервис задач должен сходить сам в сервис авторизации и получить список пользователей, но доступ без ключа к такому открывать будет странно, поэтому как быть в этой ситуации? Разрешать всем авторизированным пользователям получать эти данные и просто брать токен пользователя из запроса и пробрасывать его дальше? Так же сервис задач может обращаться еще к нескольким сервисам внутри организации.

Вопрос 3: Есть ли какие-то SSO системы без JWT, а на статичных токенах, которые не имеют срока действия и лежат, например, где-то в Redis'e? И чем такие токены будут хуже, чем JWT?

Так же, если важно, то стек такой: UI на Blazor WASM, сервисы на ASP.Net Core Web API.


Ответы (0 шт):