Ролевая модель в WSO2 API Manager
Блоги
Навигационные полоски
Продукт для управления API предприятия от компании WSO2 функционально является самым продвинутым по сравнению с аналогами. В этой небольшой статье я хотел бы остановиться более подробно на ролевой модели WSO2 API Manager.
Ролевая модель WSO2 API Manager, как и всех продуктов вендора, строится на ролях и наборах разрешений (permission). Управление ролями, разрешениями и пользователями происходит в панели управления Carbon. Если мы используем отдельный WSO2 Identity Server, то всё управление этими сущностями строится через него. В данной статье описан именно этот случай.
Наборы разрешений отличаются между продуктами. В WSO2 Identity Server определён общий набор разрешений, одинаковый для всех продуктов WSO2.
Для данной статьи в WSO2 Identity Server были созданы 5 пользователей с различным набором ролей и разрешений:
Пользователи с префиксом api-* используются для создания, публикации и доступа в магазин API. Пользователи с префиксом phone-* служат для вызовов различных методов API. Роли для последних двух пользователей создаются прямо в WSO2 Identity Server и не нуждаются в привязке набора разрешений - эти роли будут служить для разграничения пользователей к методам API. Роли первым трём пользователям назначаются в панеле управления WSO2 API Manager, так как они характерны только для этого продукта.
После того, как нужные пользователи и роли созданы в WSO2 Identity Server мы переходим в панель управления WSO2 API Manager. Через некоторое время, необходимое для синхронизации, пользователи и роли появятся там.
Обратите внимание на то, что все пользователи read-only - это означает, что их редактирование возможно только в WSO2 Identity Server. Пользователям с префиксом api* выданы разные роли, предопределённые в продукте:
- Internal/creator
- Internal/publisher
- Internal/subscriber
Таким образом, api-subscriber может залогиниться только в магазин API, а в Publisher его не пустят. Наоборот, в магазин API не пустят api-creator и api-publisher - их роли позволяют получить доступ только в Publisher. Так работает RBAC (Role Based Access Control) для панелей управления и редактирования API.
Если рассмотреть аспект доступа к API, то к нему можно ограничить доступ как на уровне всего API, так и на уровне отдельных его методов.
Разграничение по ролям для отдельных методов делается на последнем шаге создания API. На этом шаге можно определить набор объектов Scope, в каждом из которых определить через запятую список ролей. Далее эти объекты можно назначить каждому методу:
Залогинившись пользователем с определённой ролью (в данном случае это либо PhoneVerifyWriter, либо PhoneVerifyReader) мы можем сгенерировать токен для определённого Scope и вызвать соответствующий метод API:
При попытке, используя этот токен, вызвать метод, к которому нет доступа мы получим:
<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
<ams:code>900910</ams:code>
<ams:message>The access token does not allow you to access the requested resource</ams:message>
<ams:description>Access failure for API: /phoneverify/1.0, version: 1.0 status: (900910) - The access token does not allow you to access the requested resource</ams:description>
</ams:fault>
В качестве резюме я могу сказать, что ролевая модель в WSO2 API Manager достаточно гибкая и позволяет разграничивать доступ на разных уровнях.
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.