Membuat peran dengan API

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Topik ini membahas cara membuat peran khusus dan menetapkan peran kepada pengguna melalui Management API. Kami juga menunjukkan cara menguji penetapan peran melalui API. (Untuk ringkasan peran khusus, lihat Membuat peran khusus di UI.)

Tentang setelan izin

Izin peran ditetapkan pada URI API pengelolaan (bukan URI UI pengelolaan). Misalnya, jika ingin menetapkan izin PUT, GET, dan/atau DELETE pada entitas developer aplikasi di organisasi Edge, Anda perlu menetapkan izin pada resource /developers, karena jalur API pengelolaan untuk developer adalah https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (Anda tidak perlu menyertakan bagian organisasi jalur saat menetapkan izin, karena izin sudah tercakup dalam organisasi tertentu, seperti yang diilustrasikan oleh panggilan API pengelolaan dalam topik ini.)

Anda juga dapat menetapkan izin pada entitas tertentu. Contoh:

  • Jika Anda ingin menetapkan izin pada satu developer, tetapkan izin tersebut di /developers/steve@example.com
  • Untuk produk API tertentu, seperti free-api-product, tetapkan parameter tersebut di /apiproducts/free-api-product
  • Untuk peta nilai kunci dalam lingkungan tertentu, Anda perlu menetapkan izin pada sesuatu seperti /environments/test/keyvaluemaps/fooMap, atau /environments/test/keyvaluemaps/* untuk semua peta nilai kunci dalam lingkungan pengujian.

Izin yang Anda setel menggunakan API:

  • Izinkan pengguna dalam peran khusus untuk melakukan panggilan API pengelolaan sesuai dengan izin mereka. Misalnya, jika peran mengizinkan akses hanya baca ke semua proxy API, pengguna dalam peran tersebut dapat menggunakan List API Proxies API, tetapi tidak dapat menggunakan Create an API Proxy API.
  • Tentukan apa yang dapat dilihat dan dilakukan oleh pengguna dalam peran khusus di UI pengelolaan. Misalnya, akses hanya baca ke proxy API akan menonaktifkan akses ke tombol +API Proxy dan Delete pada halaman Proxy API.

Untuk melihat resource dan jalur yang izinnya dapat Anda tetapkan, lihat referensi Management API di berbagai URL resource.

Lihat Peran pengguna API untuk informasi referensi lengkap tentang pengelolaan peran.

Sintaksis dan prioritas

Anda dapat menggunakan karakter pengganti tanda bintang (*) untuk menunjukkan "semuanya setelah" di pengaturan izin. Akan tetapi, jika Anda menyetel izin hanya pada resource induk (misalnya pada /developers) tanpa menetapkan izin yang lebih spesifik (misalnya /developers/*), izin berlaku untuk semua dari /developers dan setelahnya.

PUT juga berfungsi sebagai POST dalam izin.

Anda dapat menggabungkan resource umum dengan izin yang lebih terperinci. Setelan yang lebih terperinci akan diutamakan jika ada izin yang tumpang-tindih. Misalnya, anggaplah izin berikut ditetapkan pada peran "developeradmin":

  • PUT di /developers
  • DAPATKAN di /developers/*

Hal ini berarti developeradmin dapat:

  • Buat developer, tetapi jangan memperbarui developer tertentu atau sub-entitas apa pun (karena izin GET yang lebih spesifik di jalur tersebut).
  • Mendapatkan developer atau sub-entitas, tetapi tidak mendapatkan daftar semua developer.

Lihat Referensi izin untuk mengetahui daftar lengkap izin yang dapat Anda tetapkan dengan API.

Buat peran khusus baru bernama "development"

Buat peran 'pengembangan' agar developer dapat melihat, membuat, dan mengupdate proxy 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" } ] }'

Menambahkan izin ke peran pengembangan

Izin yang dapat ditetapkan pada seluruh grup artefak Edge (seperti semua /apps, /apis, /apiproducts, dan sebagainya) serta pada artefak individual (seperti aplikasi tertentu, proxy API, atau produk API) adalah GET, PUT, dan DELETE.

GET memungkinkan pengguna melihat API apa pun, termasuk file konfigurasi proxy API, kebijakan terkait, JavaScript, file XSLT, dan sebagainya. Izin PUT di API memungkinkan developer untuk membuat, mengubah, mengimpor, mengekspor, men-deploy, dan membatalkan deployment proxy API.

Atribut jalur menentukan artefak tempat Anda menetapkan izin. Misalnya, /applications, /apps, /apiproducts, /developers, atau /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" ]}'

Buat peran: pengujian

Buat peran 'pengujian' agar engineer kualitas dapat melihat proxy API dan kontennya (termasuk, misalnya, kebijakan).

$ 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" } ] }'

Tambahkan izin ke peran pengujian

GET memungkinkan pengguna melihat API apa pun, termasuk file konfigurasinya, serta kebijakan terkait, JavaScript, file XSLT, dan sebagainya. Dengan menambahkan izin ini ke peran 'pengujian', kami memungkinkan engineer kualitas untuk melihat konten API yang mereka uji. Namun, pengguna dengan peran ini tidak akan dapat membuat, mengubah, mengimpor, mengekspor, men-deploy, dan membatalkan deployment proxy 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" ]}'

Untuk penginstalan Edge lokal, rangkaian izin minimum yang harus disetel agar pengguna dapat login ke UI Edge adalah:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

Gunakan perintah cURL berikut untuk menetapkan izin ini:

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"]
   }
  ]
}'

dengan <ms-IP> adalah alamat IP atau nama DNS Server Edge Management.

Tambahkan pengguna ke peran pengujian

Untuk memberikan peran pengguna kepada pengguna:

$ 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"} ] }'

Melihat API sebagai pengguna

Tiru identitas pengguna dan ajukan permintaan ke Layanan API untuk melihat proxy API. Pengguna harus dapat melihat API, beserta kontennya.
$ 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

Membuat API sebagai pengguna dalam peran pengujian

Meniru identitas pengguna dan membuat permintaan ke Layanan API untuk membuat proxy API. Permintaan akan ditolak oleh Layanan API, karena peran 'pengujian' tidak mengizinkan pengguna membuat 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"}'

Tambahkan pengguna ke peran pengembangan

Sekarang tetapkan peran 'pengembangan' kepada pengguna.

$ 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"} ] }'

Membuat API sebagai pengguna dalam peran pengembangan

Meniru identitas pengguna dan mengulangi permintaan ke Platform API untuk membuat proxy API. Permintaan akan berhasil, karena peran 'pengembangan' mengizinkan pengguna untuk membuat 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"}'

Mendapatkan peran pengguna untuk pengguna

Sebagai administrator organisasi, Anda dapat memeriksa daftar peran pengguna untuk seorang pengguna (di seluruh organisasi) kapan saja:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles