Чи потрібні мікросервіси, що стоять за шлюзом API, щоб перевірити маркер доступу?


10

У мене є купа мікросервісів, які доступні лише зовні через шлюз API.

Мій шлюз API налаштований як ресурс OAuth і перевіряє маркер (перевіряє підпис тощо) перед тим, як передавати запит нижче за потоком до однієї або декількох мікросервісів.

Хоча моїм мікросервісам потрібен маркер для перевірки обсягів та претензій, чи є зараз необхідність у цій службі перевірити маркер?

Здається, це щось надмірно, але я не можу знайти в Інтернеті жодної поради щодо цього сценарію.

Чи достатньо добре перевірити маркер на шлюзі API? Або найкраще практично повторно його підтвердити?


1
Чи доступні ці самі сервіси при внутрішньому обході шлюзу ?
Грег Бургхардт

I cannot find any advice online about this scenario.Тому що це залежить від кількох факторів, які різняться від проекту до проекту. Напевно, у більшості розробок, які претендують на архітектуру MS, вони не потрібні. Більше того, в таких архітектурах повинен бути сервер автентичності, який буде робити це замість служб (і замість шлюзу, звичайно). Чи сервер автентифікації, який дозволяє передавати запит, чи ні.
Лаїв

Відповіді:


3

Якщо будь-які внутрішні дзвінки можуть обійти шлюз або підтвердити маркер у кожній мікросервісі, або змусити всі виклики - внутрішні та зовнішні - пройти через шлюз.

Особисто я також не вірив би внутрішнім дзвінкам. Нехай вони проходять через шлюз, навіть до точки обмеження руху через правила брандмауера. Знайте, хто спілкується з ким і чому. Це допомагає обмежити вашу атаку, якщо хтось порушує вашу мережу.

Це вводить єдину точку відмови, але цей ризик може бути зменшений серверами, що врівноважують навантаження, та серверами з відмовою під рукою у випадку катастрофічних проблем.

З іншого боку, якщо кожна служба перевіряє маркер, і все, що стосується змін процесу перевірки, вам доведеться оновити служби N + 1.


Я чув аргумент, що "і внутрішньому трафіку ви не можете довіряти". Але виставляти додаток (відносно) невеликій кількості користувачів в інтранеті - це далекий вигляд від викриття одного і того ж додатку в публічному Інтернеті. Це по суті те саме, що різниця між магнітом динаміка і циклотроном.
Роберт Харві

2
@RobertHarvey: Я думаю, що виправдання, яке я чув, "не довіряйте внутрішньому трафіку" - це не стільки законний трафік, скільки стін від мережі у разі вторгнення. Особливо, якщо ваша система обробляє інформацію про ІСІ, стан здоров'я, фінансову та конфіденційну інформацію. Якщо хтось вривається, вони обмежені тим, що ще можуть поговорити.
Грег Бургхардт

Якщо хтось потрапить у вашу систему, перевірка токена буде меншою кількістю ваших проблем. Потрібно чи ні підтвердити маркер у довіреній мережі (а не доступний іноземцям), може залежати від типу перевірок, які ми виконуємо, і якщо знову не буде перевірки. Як, наприклад, продуктивність. Поверніться до своїх міркувань. Чи реалізуєте ви TLS в приватній мережі? Чи зашифруєте ви зв’язок між двома компонентами, що працюють поруч? Ймовірна відповідь залежить .
Лаїв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.