Ваш шлюз API дает вам единую точку входа, которая упрощает доступ клиентских приложений к вашим услугам . Вы можете добавить защиту от блокировки ключей на шлюзе, а не на сервисах, стоящих за ним - возможно, если у вас есть настройка, где вы можете заблокировать доступ клиентов по сети к любым сервисам, кроме шлюза. Но даже в этом случае вам могут понадобиться шлюз и клавиатурный шлюз в службах позади.
Причиной того, что вы можете поставить keycloak на службы, является то, что им, вероятно, потребуется знать личность пользователя, выполняющего запрос. Если они все равно будут читать токен, то было бы проще всего добавить к ним ключи. И вы все еще хотите, чтобы шлюз упростил жизнь для клиентов. Затем вы также хотели бы, чтобы шлюз направил токен службам за шлюзом. (Мы используем keycloak и spring cloud gateway в проекте Activiti Cloud, и именно поэтому мы решили защитить сами сервисы с помощью keycloak и сделать так, чтобы шлюз передавал им токен.)