Membuat peran dengan API

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

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

Tentang setelan izin

Izin peran ditetapkan pada URI API pengelolaan (bukan URI UI pengelolaan). Misalnya, jika Anda ingin menetapkan izin PUT, GET, dan/atau DELETE pada entitas developer aplikasi di organisasi Edge, Anda harus 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 dari jalur saat menentukan izin, karena izin dicakup untuk organisasi tertentu, seperti yang ditunjukkan 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 produk 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.

Izin yang Anda tetapkan 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 API List API Proxies, tetapi tidak dapat menggunakan Create an API Proxy API.
  • Tentukan apa saja yang dapat dilihat dan dilakukan pengguna dalam peran kustom di UI pengelolaan. Misalnya, akses hanya baca ke proxy API akan menonaktifkan akses ke tombol +API Proxy dan Delete di halaman Proxy API.

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

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

Sintaksis dan prioritas

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

PUT juga berfungsi sebagai izin POST.

Anda dapat menggabungkan izin umum dengan izin yang lebih terperinci pada resource. Setelan yang lebih terperinci diutamakan jika ada izin yang tumpang tindih. Misalnya, asumsikan hal berikut izin disetel di "developeradmin" peran:

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

Artinya, admin developer dapat:

  • Membuat developer, tetapi tidak memperbarui developer tertentu atau sub-entitas apa pun (karena izin GET yang lebih spesifik di jalur tersebut).
  • Dapatkan developer atau sub-entitas, tetapi tidak dapatkan daftar semua developer.

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

Buat peran kustom baru bernama "development"

Buat peran 'pengembangan' agar developer dapat 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 pengembangan

Izin yang dapat disetel pada seluruh kelompok artefak Edge (seperti semua /apps, /apis, /apiproducts, dan sebagainya) serta pada setiap artefak (seperti aplikasi tertentu, API proxy, 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 pada API memungkinkan developer 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 '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" } ] }'

Menambahkan izin ke peran pengujian

GET memungkinkan pengguna untuk 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 melihat konten API yang mereka uji. Namun, pengguna dalam peran ini tidak akan dapat membuat, mengubah, mengimpor, mengekspor, men-deploy, dan men-undeploy 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 diatur ke mengizinkan pengguna untuk 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 &lt;ms-IP&gt; adalah alamat IP atau nama DNS dari Edge Management Server.

Menambahkan pengguna ke peran pengujian

Untuk menyediakan 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

Meniru identitas pengguna dan membuat permintaan ke API Layanan 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, sebagai peran 'testing' tidak mengizinkan pengguna membuat Google Cloud Platform.

$ 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 pengembangan

Sekarang sediakan pengguna dengan fitur 'pengembangan' peran.

$ 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

Impersonate pengguna dan ulangi permintaan ke Platform API 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