Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этой статье рассказывается, как создавать специальные роли и назначать их пользователям с помощью API управления. Также мы расскажем, как тестировать назначения ролей с помощью API. (Общую информацию о специальных ролях можно найти в разделе Создание специальных ролей в интерфейсе.)
Настройки разрешений
Разрешения для ролей задаются в URI Management API (не в URI интерфейса управления). Например, если вы хотите задать разрешения PUT, GET и/или DELETE для объектов разработчиков приложений в организации Edge, вам нужно задать разрешения для ресурса /developers, поскольку путь API управления для разработчиков – https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers.
(При определении разрешений не нужно указывать часть пути, относящуюся к организации, поскольку разрешения относятся к определенной организации, как показано в вызовах API управления в этом разделе.)
Вы также можете задать разрешения для определенных объектов. Пример:
- Если вы хотите задать разрешения для одного разработчика, сделайте это в разделе
/developers/steve@example.com - Для определенного продукта API, например free-api-product, задайте их в
/apiproducts/free-api-product. - Для сопоставления пар "ключ-значение" в определенной среде нужно задать разрешение для объекта
/environments/test/keyvaluemaps/fooMapили/environments/test/keyvaluemaps/*для всех сопоставлений пар "ключ-значение" в тестовой среде.
Разрешения, заданные с помощью API:
- Разрешить пользователям с определенной ролью выполнять вызовы API управления в соответствии с их разрешениями. Например, если роль предоставляет доступ только на чтение ко всем прокси API, пользователь с этой ролью может использовать API List API Proxies, но не API Create an API Proxy.
- Определите, что пользователи с определенной ролью могут видеть и делать в интерфейсе управления. Например, доступ только для чтения к прокси-серверам API отключает доступ к кнопкам "+API Proxy" и "Удалить" на странице "Прокси-серверы API".
Чтобы посмотреть ресурсы и пути, для которых можно задать разрешения, изучите документацию по API управления, перейдя по URL разных ресурсов.
Полная справочная информация об управлении ролями приведена в API ролей пользователей.
Синтаксис и приоритет
В настройках разрешений можно использовать подстановочный знак "*", чтобы указать "все, что идет после". Однако если вы зададите разрешения только для родительского ресурса (например, /developers), не указав более точные разрешения (например, /developers/*), разрешение будет применяться ко всему, что находится в каталоге /developers и ниже.
В разрешениях PUT также используется как POST.
Вы можете сочетать общие и более точные разрешения для ресурсов. Если разрешения пересекаются, приоритет имеют более точные настройки. Например, предположим, что для роли developeradmin заданы следующие разрешения:
- PUT на /developers
- GET на /developers/*
Это означает, что администратор разработчика может:
- Создать разработчика, но не обновлять никаких разработчиков или дочерних объектов (из-за более конкретного разрешения GET для этого пути).
- Получать данные о любом разработчике или дочерней компании, но не получать список всех разработчиков.
Полный список разрешений, которые можно задать с помощью API, приведен в справочнике по разрешениям.
Создать специальную роль с названием "development"
Создайте роль "Разработка", чтобы разработчики могли просматривать, создавать и обновлять прокси API.
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'
Как добавить разрешения для роли разработчика
Для группы артефактов Edge (например, всех приложений, API или продуктов API) и отдельных артефактов (например, определенного приложения, прокси API или продукта API) можно задать разрешения GET, PUT и DELETE.
GET позволяет пользователям просматривать любые API, в том числе файлы конфигурации прокси-сервера API, связанные правила, JavaScript, файлы XSLT и т. д. Разрешение PUT для API позволяет разработчикам создавать, изменять, импортировать, экспортировать, развертывать и отменять развертывание прокси API.
Атрибут path указывает на артефакт, для которого вы задаете разрешения. Например, /applications, /apps, /apiproducts, /developers или /reports.
curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'
Создание роли: тестирование
Создайте роль тестировщика, чтобы инженеры по качеству могли просматривать прокси API и их содержимое (например, правила).
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'
Как добавить разрешения для роли тестировщика
GET позволяет пользователям просматривать любые API, включая файлы конфигурации, а также связанные правила, файлы JavaScript, XSLT и т. д. Добавив это разрешение к роли "Тестирование", мы даем инженерам по качеству возможность просматривать содержимое тестируемых ими API. Однако пользователи с этой ролью не смогут создавать, изменять, импортировать, экспортировать, развертывать и отменять развертывание прокси API.
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'
Для локальной установки Edge минимальный набор разрешений, необходимых для входа пользователя в интерфейс Edge, включает:
{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}Чтобы задать эти разрешения, используйте следующую команду cURL:
curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions \
-d '{
"resourcePermission" : [
{
"path" : "/",
"permissions" : [ "get" ]
},
{
"path" : "/*",
"permissions" : []
},
{
"path" : "/environments",
"permissions" : [ "get" ]
},
{
"path" : "/userroles",
"permissions" : [ "get"]
}
]
}'где <ms-IP> – это IP-адрес или DNS-имя сервера управления Edge.
Как добавить пользователя в роль тестировщика
Чтобы назначить пользователю роль:
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'
Как посмотреть API в качестве пользователя
Выполните олицетворение пользователя и отправьте запрос к сервисам API, чтобы посмотреть прокси API. Пользователь должен иметь возможность просматривать API и их содержимое.$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies
Создание API в роли тестировщика
Выполнить олицетворение пользователя и отправить запрос к сервисам API, чтобы создать прокси-сервер API. Сервисы API отклонят запрос, поскольку роль "тестирование" не позволяет пользователю создавать API.
$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'
Как добавить пользователя в роль разработчика
Теперь назначьте пользователю роль "Разработка".
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'
Создание API в роли разработчика
Выполнить запрос к платформе API от имени пользователя, чтобы создать прокси-сервер API. Запрос будет выполнен успешно, поскольку роль development позволяет пользователю создавать API.
$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'
Как получить роли пользователя
Как администратор организации, вы можете в любое время посмотреть список ролей пользователя (во всех организациях):
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles