Membuat peran dengan API

Anda 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 mengetahui ringkasan peran khusus, lihat Membuat peran khusus di UI.)

Tentang setelan izin

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

Anda juga dapat menetapkan izin pada entity tertentu. Misalnya:

  • 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 izin tersebut di /apiproducts/free-api-product
  • Untuk peta nilai kunci di lingkungan tertentu, Anda akan menetapkan izin pada sesuatu seperti /environments/test/keyvaluemaps/fooMap, atau /environments/test/keyvaluemaps/* untuk semua peta nilai kunci di lingkungan pengujian lingkungan.

Izin yang Anda tetapkan menggunakan API:

  • Mengizinkan pengguna dalam peran khusus untuk melakukan panggilan management API 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.
  • Menentukan apa yang dapat dilihat dan dilakukan pengguna dalam peran khusus di UI pengelolaan. Misalnya, akses hanya baca ke proxy API akan menonaktifkan akses ke tombol +API Proxy dan Delete di halaman API Proxies.

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

Lihat User roles API untuk informasi referensi lengkap tentang pengelolaan peran.

Sintaksis dan prioritas

Anda dapat menggunakan karakter pengganti tanda bintang (*) untuk menunjukkan "semua hal setelah" dalam setelan izin. Namun, jika Anda hanya menetapkan izin pada resource induk (seperti pada /developers) tanpa menetapkan izin yang lebih spesifik (seperti /developers/*), izin tersebut akan berlaku untuk semua hal dari /developers dan setelahnya.

PUT juga berfungsi sebagai POST dalam izin.

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

  • PUT di /developers
  • GET di /developers/*

Artinya, developeradmin dapat:

  • Membuat developer, tetapi tidak dapat memperbarui developer tertentu atau sub-entity apa pun (karena izin GET yang lebih spesifik pada jalur tersebut).
  • Mendapatkan developer atau sub-entity apa pun, tetapi tidak mendapatkan daftar semua developer.

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

Membuat peran khusus baru bernama "development"

Buat peran 'development' untuk memungkinkan developer melihat, membuat, dan memperbarui 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 development

Izin yang dapat ditetapkan pada seluruh grup artefak Edge (seperti semua /apps, /apis, /apiproducts, dan sebagainya) serta pada artefak individual (seperti aplikasi, proxy API atau produk API tertentu) 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 pada 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" ]}'

Membuat peran: pengujian

Buat peran 'testing' untuk memungkinkan teknisi kualitas 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" } ] }'

Menambahkan 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 'testing', kami memungkinkan teknisi kualitas melihat konten API yang mereka uji. Namun, pengguna dalam 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, kumpulan izin minimum yang harus ditetapkan 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 Edge Management Server.

Menambahkan pengguna ke peran pengujian

Untuk menyediakan pengguna dengan peran 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 buat permintaan ke API Services 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

Tiru identitas pengguna dan buat permintaan ke API Services untuk membuat proxy API. Permintaan akan ditolak oleh API Services, karena peran 'testing' 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"}'

Menambahkan pengguna ke peran development

Sekarang, sediakan peran 'development' untuk 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 development

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

Mendapatkan peran pengguna untuk pengguna

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

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