Мультитенантна автентифікація без пасток
Від Команда Alt Auth

Мультитенантність — місце, де самописна автентифікація починає боліти. Перша версія припускає, що один користувач належить одній компанії. Потім консультант приєднується до двох клієнтів, агенція керує п’ятьма, хтось отримує підвищення в одній організації і лишається глядачем в іншій — і схема, яка здавалася очевидною, раптом виявляється хибною всюди.
Ролі належать членству, а не користувачу
Найдорожче скорочення — покласти стовпець ролі в запис користувача. Це працює, доки першій людині не потрібні різні права у двох місцях, і тоді припущення вже просочилося в кожен запит і кожну перевірку в інтерфейсі. Ролі мають належати зв’язку між користувачем і організацією з самої першої міграції.
Визначте, що означає токен
- Токен, прив’язаний до однієї організації, простіше авторизувати і безпечніше втратити — але він потребує повторної видачі при перемиканні.
- Токен зі списком усіх членств позбавляє зайвих звернень, але ускладнює кожну перевірку прав.
- Що б ви не обрали, запишіть це. Режим відмови — коли два сервіси припускають різні відповіді.
- Ніколи не дозволяйте клієнту вибирати активну організацію без підтвердження членства на сервері.
“Майже кожна історія витоку в мультитенантних системах — це одне й те саме речення: ідентифікатор тенанта взяли із запиту, і ніхто його не перевірив.”
Alt Auth моделює організації, членства, рівні власності та ролі менеджерів безпосередньо, тож структура існує ще до того, як вона знадобиться, а тариф Business додає кілька організацій в одному обліковому записі для клієнтів, які керують кількома.