Чи потрібні мікросервіси, що стоять за шлюзом 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.