# Roles (роли)

**Модели авторизации**

<table border="1" id="bkmrk-%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%2B-%2F--" style="border-collapse: collapse; width: 100%; height: 119.188px;"><colgroup><col style="width: 27.0635%;"></col><col style="width: 39.6826%;"></col><col style="width: 33.3731%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">Модель</td><td class="align-center" style="height: 29.7969px;">Процесс</td><td class="align-center" style="height: 29.7969px;">+ / -</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Backend-driven</td><td style="height: 29.7969px;">JWT → roles → проверка в FastAPI</td><td style="height: 29.7969px;">+ простой  
+ быстрый  
- логика размазана по коду</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Token-driven</td><td style="height: 29.7969px;">JWT уже содержит всё → backend просто читает</td><td style="height: 29.7969px;">+ без внешних запросов  
- сложнее управлять динамикой</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Keycloak Authorization Services</td><td style="height: 29.7969px;">Backend → Keycloak → decision</td><td style="height: 29.7969px;">+ централизованная политика  
+ ABAC / RBAC / rules  
- сложность  
- задержка</td></tr></tbody></table>

Каждая роль может быть переключена в композитный режим (объединение других ролей). Но использовать аккуратно, можно запутаться.

Роли по умолчанию

<table border="1" id="bkmrk-%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BD%D0%B0%D1%8F" style="width: 100%;"><colgroup><col style="width: 10.9654%;"></col><col style="width: 12.9917%;"></col><col style="width: 13.704%;"></col><col style="width: 62.339%;"></col></colgroup><thead><tr><td>Название</td><td>Композитная</td><td>Только в master realm</td><td>Назначение</td></tr></thead><tbody><tr><td>admin</td><td>Да</td><td>Да</td><td>Административные права: управление пользователями, клиентами, ролями и конфигурацией реалма</td></tr><tr><td>create-realm</td><td>Нет</td><td>Да</td><td>Создание новых realms через Admin Console или REST API.</td></tr><tr><td>default-roles-master</td><td>Да</td><td>Нет</td><td>набор ролей, назначаемых по умолчанию всем новым пользователям master realm.   
Включает offline\_access, uma\_authorization и другие (можно посмотреть внутри composite).</td></tr><tr><td>offline-access</td><td>Нет</td><td>Нет</td><td>дает возможность получать offline refresh tokens - живут дольше, не требуют активной сессии пользователя.</td></tr><tr><td>uma\_authorization</td><td>Нет</td><td>Нет</td><td>позволяет использовать User-Managed Access (UMA) - механизм, при котором пользователь может делегировать доступ к своим ресурсам другим пользователям (используется при ресурсно-ориентированном доступе).</td></tr></tbody></table>

**Область видимости ролей**

В текущей версии с настройками ролей есть неявная особенность. Один из вариантов добавления scope через dedicated scopes. Перейдем в Clients -&gt; &lt;client name&gt; -&gt; Client scopes

[![image.png](http://bobrobotirk.ru/uploads/images/gallery/2026-05/scaled-1680-/Zjximage.png)](http://bobrobotirk.ru/uploads/images/gallery/2026-05/Zjximage.png)

Scope clientforsimpletest-dedicated называется так, поскольку клиент называется clientforsimpletest. Перейдем в этот scope, вкладку Scope.

[![image.png](http://bobrobotirk.ru/uploads/images/gallery/2026-05/scaled-1680-/nWBimage.png)](http://bobrobotirk.ru/uploads/images/gallery/2026-05/nWBimage.png)

И там есть переключатель Full scope allowed. Он по умолчанию включен, но если его отключить - появляется возможность настройки видимых ролей в рамках клиента. Это дополнительный фильтр. То есть, возможно одному клиенту отправить один набор ролей пользователя, другому клиенту - другой набор. Пример:

<div drawio-diagram="287"><img src="http://bobrobotirk.ru/uploads/images/drawio/2026-05/drawing-1-1779023372.png" alt=""/></div>

Это именно фильтр для конкретного клиента.