Как предоставить работникам индивидуальный доступ к ресурсам

#web-services #security #authentication #service #authorization

Вопрос:

В настоящее время у меня есть одна проблема с дизайном, которая заключается в:

У меня есть распределенная система, в которой у меня есть основная «служба данных», которая получает запросы и раздает данные, а также некоторые работники, созданные с использованием одного и того же образа контейнера.

Однако я хочу, чтобы некоторые из этих работников имели доступ к другим данным. Служба данных может просто принимать все запросы и доверять работникам, но, поскольку в будущем у работников может быть пользовательский код, я хочу, чтобы среда не вызывала доверия.

Один из способов, которым я могу это сделать,-назначить «случайный ключ» (закрытый/открытый ключ, одноразовый пароль, токен…) для каждого работника при его создании, отправить этот ключ в службу данных, и служба данных будет знать, к каким ресурсам у работника будет доступ. Я думаю, что это не слишком сложно создать, но я бы не хотел воссоздавать колесо, специализируясь на чем-то, что связано с безопасностью. Ребята, знаете ли вы какой-либо метод аутентификации/авторизации (Kerberos, SAML, OIDC и т.д.), Который Решает эту проблему?

Кстати, мы используем Keycloak для единого входа, и я думаю, что он использует OIDC, но, насколько я знаю, он основан на паролях, и мне трудно подумать, может ли он решить эту проблему.