Зачем иметь централизованный сервер авторизации в OAuth для предоставления доступа? - PullRequest
2 голосов
/ 27 апреля 2020

Итак, я новичок в OAuth и, может быть, я что-то неправильно понял? У меня вопрос об OAuth (используется в сочетании с OID C) и о том, почему у кого-то должен быть централизованный сервер авторизации, который знает о том, кому и на каком ресурсе разрешено делать.
Мышление микро-сервисов Я бы предложил иметь каждое приложение, Для каждой службы решите, кто получает доступ к ресурсам, входящим в сферу ответственности приложений / служб, вместо того, чтобы иметь сервер авторизации, который необходимо настроить для каждого приложения / службы. Служба может принимать эти решения на основе информации (например, роли и группы) в маркере доступа, который передается им.

На мой взгляд, в худшем случае будет другая команда, отвечающая за аутентификацию. сервер, и так как они заняты, команда разработчиков приложений не может запустить их новую разработку, потому что им приходится ждать. Но затем в запросе аутентификации есть поля типа «область действия», в которых клиент может определить, что он хотел бы сделать с ресурсом, а пользовательские утверждения в JWT отправляются в качестве ответа от сервера аутентификации. Все это будет означать, что серверу авторизации необходимо знать, кому разрешено делать, в каком приложении.

Я правильно понял? И если да, то зачем нам централизованный сервер аутентификации?

И еще один вопрос:
Это «единственный» и правильный путь - или это также хорошая идея - иметь приложения / сервисы для решить, кому разрешено делать что?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 апреля 2020

Наличие централизованного сервера авторизации имеет свои преимущества. Например, вам нужно поддерживать пользователей в централизованном месте, вы можете усилить защиту в одной точке. Изменение / исправление сделано только в одной точке. Принятие нового протокола безопасности требует изменения в одной точке. И этот список можно продолжить.

Если вы думаете об интеграции / определении работы сервера авторизации для микросервисов, то, по мнению IMO, вы отклоняетесь от основной идеи самого микросервиса. Микросервис должен выполнять простое действие, которое можно легко изолировать друг от друга (конечно, с некоторой зависимостью от примера источника данных. По крайней мере, это то, во что я верю).

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

...