Создание ролей с помощью API

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В этом разделе обсуждается, как создавать настраиваемые роли и назначать роли пользователям через API управления. Мы также покажем, как тестировать назначения ролей через API. (Обзор настраиваемых ролей см. в разделе Создание настраиваемых ролей в пользовательском интерфейсе .)

О настройке разрешений

Разрешения ролей устанавливаются для URI 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 списка прокси API , но не API создания прокси API .
  • Определите, что пользователи с настраиваемой ролью могут видеть и делать в пользовательском интерфейсе управления. Например, доступ только для чтения к прокси-серверам API отключает доступ к кнопкам +Прокси-сервер API и Удалить на странице Прокси-серверы API.

Чтобы увидеть ресурсы и пути, для которых вы можете установить разрешения, просмотрите справочник API управления по различным URL-адресам ресурсов.

См. API ролей пользователей для получения полной справочной информации по управлению ролями.

Синтаксис и приоритет

Вы можете использовать подстановочный знак звездочки (*), чтобы указать «все после» в настройках разрешений. Однако если вы устанавливаете разрешения только для родительского ресурса (например, /developers) без установки каких-либо более конкретных разрешений (например, /developers/*), разрешение применяется ко всему, начиная с /developers и далее.

PUT также служит POST в разрешениях.

Вы можете сочетать общие и более детальные разрешения для ресурсов. Более детальные настройки имеют приоритет при перекрытии разрешений. Например, предположим, что для роли «developeradmin» установлены следующие разрешения:

  • ПОСТАВИТЬ в /разработчики
  • ПОЛУЧИТЕ /разработчики/*

Это означает, что администратор разработчика может:

  • Создайте разработчика, но не обновляйте каких-либо конкретных разработчиков или какие-либо подобъекты (из-за более конкретного разрешения GET на этом пути).
  • Получите любого разработчика или подразделение, но не получите список всех разработчиков.

Полный список разрешений, которые можно установить с помощью API, см. в справочнике по разрешениям.

Создайте новую пользовательскую роль под названием «разработка».

Создайте роль «разработчика», чтобы позволить разработчикам просматривать, создавать и обновлять прокси-серверы 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 (например, для всех /apps, /apis, /apiproducts и т. д.), а также для отдельных артефактов (например, конкретного приложения, прокси-сервера API или продукта API). являются GET, PUT и DELETE.

GET позволяет пользователям просматривать любые API, включая файлы конфигурации прокси API, связанные политики, JavaScript, файлы XSLT и т. д. Разрешение PUT для API позволяет разработчикам создавать, изменять, импортировать, экспортировать, развертывать и отменять развертывание прокси API.

Атрибут пути указывает артефакт, для которого вы устанавливаете разрешения. Например, /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-имя пограничного сервера управления.

Добавить пользователя в роль тестирования

Чтобы предоставить пользователю роль пользователя:

$ 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. Запрос будет успешным, поскольку роль «разработка» позволяет пользователю создавать 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