Авторизація користувача за допомогою мікросервісів


12

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

Для мене останній має більше сенсу, оскільки полегшує застосування змін, застосування політики; це СУХО і т. д. Однак це може легко вийти з-під уваги різного роду сервісами, скидаючи свої правила в одне місце, а також переймаючись мережею накладних витрат.

Будь-які думки?

Відповіді:


7

Я використовував би центральну, уніфіковану систему аутентифікації та мав окремі дозволи / статистику для кожної мікросервіси (на кшталт того, як я ще не можу внести посилання на цей сайт обміну стеками, але я можу переповнювати стеки під час використання центральної системи аутентифікації обміну стеками). Один із моїх поточних проектів передбачає такий підхід найближчим часом, що буде приємно; попередня робота з розробки передбачала створення системи, сумісної з HIPPA, що вимагає другого рівня авторизації / автентифікації, і це вимагає часу роздратування, коли авторизація ланцюгів ромашок від юридично відокремлених, але функціонально невіддільних компонентів системи. Процес налагодження передбачає набагато менше радості, ніж простий вхід в oauth або api з appid та x-auth заголовками.

Що використовувати, залежить від конкретних вимог дорожньої карти розвитку, але я б обрав простіший підхід, де це можливо, щоб уникнути зайвих накладних витрат та часу / зусиль на розробку.


Ми використовуємо OAuth2 для аутентифікації, і я хотів би дотримуватися того самого принципу - тобто мати центральну службу з єдиною, чітко визначеною відповідальністю - для авторизації, а не дублювати функціональність та розкидати логіку між службами. Для мене це порушення межі домену. Я погоджуюсь, що це означає, що нам доведеться розібратися в ізоляції правил обслуговування (ala stackoverflow, програмісти тощо).
morcmarc

2
Можливо, у вас можуть бути глобальні дозволи, які перекриваються спеціальними дозволами, корисними, якщо кілька основних мікросервісів використовують ті самі дозволи. Спеціальні дозволи для мікросервісу, ймовірно, повинні зберігатися в інфраструктурі додатків для цієї мікросервісу, щоб уникнути можливих проблем з роботою центральної служби аутентифікації.
Джонатан Восс

4

Кожна мікросервіс не повинна робити власну автентифікацію, але вона повинна робити власну авторизацію.

Джерело

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

Враховуючи, що кількість мікро-сервісів може зрости до сотень, тисяч, Центральна служба авторизації повинна відповідати за перелік дозволів, але не перевіряючи ці дозволи. Окремі мікросервіси, можливо, доведеться по-різному підходити для підтвердження дозволу.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.