Size: a a a

Clojure — русскоговорящее сообщество

2021 October 08

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Ещё есть вариант с общим сервисом авторизации. Он выписывает что-то вроде сертификата для аутентификации в других микросервисах. Они в свою очередь используют первый для проверки валидности сертификата в запросах пришедших напрямую без дополнительного проксирования
источник

R

Rail in Clojure — русскоговорящее сообщество
В этом как раз для меня кроется двойная работа, то есть надо делать api в главном бэкенде, там же реализовать логику на передачу данных во внутренний сервис, обработку ответа от внутреннего сервиса, и естественно добавить api во внутреннем сервисе
источник

R

Rail in Clojure — русскоговорящее сообщество
Скажите, а есть какой то паттерн или протокол через которое можно такое сделать или самому надо все реализовать?
источник

a

alex in Clojure — русскоговорящее сообщество
Надо просто написать этот api gateway так, чтобы брать соответствие пути-сервиса из источника данных. Дописывать ничего не надо будет. Вы описываете конкретный путь чтоль каждый раз?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
не могу припомнить готовых реализаций, но сам паттерн довольно простой
Есть три агента: А - клиент, В - сервис авторизации, Сх - группа микросервисов (С1, С2, С3 …)
1. А login/pass (или что угодно другое идентифицируещее клиента) -> B
2. B certificate (например JWT подписанный ключом B и в теле содержащий условные идетификаторы микросервисов к которым есть доступ, например там только C1 и C3) -> A
3. A request + certificate -> C1, C2, C3
4. C1,2,3 certificate -> B для проверки валидности подписи
5. B -> C1 ok
6. B -> C2 fail
7. B -> C3 ok
8. ответы от Cx уходят клиенту
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
а вы уверены, что все эти сервисы можно выставлять потребителям на фронт?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Когда у системы единая точка входа, вы оставляете за собой право менять кишки как вздумается. Если клиент ходит в десять мест, вы связываете себя этим
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
со сменой бекенда придется обновлять фронт
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Я бы поискал какой-то готовый api gateway со встроенной авторизацией на основе правил вместо самописного сервиса, а дальше просто ямлы ему подкидывать
источник

a

alex in Clojure — русскоговорящее сообщество
плюсую, да и как разграничивать внутреннюю сетку микросервисов и то что на фронт?
источник

R

Rail in Clojure — русскоговорящее сообщество
Выставлять торчащим наружу как раз не хотелось бы остальные api сервисы
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Запутался: "остальные" это какие?
источник

R

Rail in Clojure — русскоговорящее сообщество
Внутренние апи сервисы)
Сейчас есть главный апи бэкенда куда ходят клиенты, в его апишках делаем запросы во внутренние апишки
источник

R

Rail in Clojure — русскоговорящее сообщество
Хорошо, поищу)
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
слышал много положительных отзывов о гидре/кратосе https://www.ory.sh/hydra
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
может пригодится) правда на гошечке)
источник

R

Rail in Clojure — русскоговорящее сообщество
Спасиб, гляну)
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ну и посмотри вообще на тему OpenID и OAuth. Там суть простая.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
OpenID Connect - это вообще кажется то, что тебе и нужно.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Там новый сервис в самом OIDC-провайдере не кодом впиливаешь, а «регистрируешь» через web-сервис.
источник