Я являюсь частью проекта внешнего интерфейса, и мне нужна помощь, чтобы перенести нашу модель авторизации в keycloak. Мы опираемся на node.js, и весь проект использует микросервисы без сохранения состояния, а также наше промежуточное промежуточное ПО в качестве целых серверных служб, которые мы используем. Интерфейс использует стандартный адаптер JS для управления сеансами и токенами.
На данный момент мы определили четыре роли: турагент, бэк-офис, конфигуратор и сотрудник по безопасности данных. Пока все просто. Моя проблема в том, как смоделировать следующий необходимый нам уровень авторизации.
Например: для турагентов мы хотим иметь возможность предоставлять каждому человеку, может ли он просматривать конкретные данные клиента или может отменить заказы. Есть около 6-8 вариантов для турагентов. Таким образом, для бэк-офиса должны быть опции для операций с запасами или другие виды заказов.
Как и бэкэнд, мы не сохраняем никаких данных! Вот почему я храню все эти вещи в keycloak и нахожу способ легко перенести эту информацию в наше промежуточное ПО.
Вот что я пытался / думал до сих пор:
* Используйте группы для первого слоя и роли для второго. -> не работает, потому что группы не раскрываются в токене.
* Используйте роли областей для верхней и атрибуты для нижней иерархии. -> атрибуты не включены в токен доступа.
* Используйте роли областей для верхних ролей и ролей клиентов в нижней иерархии. -> работает, но мы должны убедиться, что роли на втором уровне определенно связаны только с одной ролью на первом уровне. Я пока не знаю как.
* Используйте роли для первого слоя и ресурсы для второго. -> Кажется, это очень близко к тому, что нам нужно. Но в настоящее время я не могу понять правильный подход со всеми этими политиками и разрешениями ...
Обсуждения здесь, в Stack Overflow, кажутся очень плодотворными, и я хотел попробовать, хотя у меня нет кода, чтобы предложить.
Спасибо за любую помощь и, пожалуйста, дайте мне знать, если я предоставлю дополнительную информацию.
Sven