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 Google Cloud Management 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 Edge Anda organisasi, 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 dari jalur saat menetapkan izin, karena izin akses hanya mencakup organisasi tertentu, karena API pengelolaan memanggil dalam topik ini illustrate.)

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, setel atribut tersebut di /apiproducts/free-api-product
  • Untuk peta nilai kunci di lingkungan tertentu, Anda perlu menetapkan izin pada hal seperti /environments/test/keyvaluemaps/fooMap, atau /environments/test/keyvaluemaps/* untuk semua peta nilai kunci dalam pengujian lingkungan fleksibel App Engine.

Izin yang Anda setel menggunakan API:

  • Izinkan pengguna dalam peran khusus untuk membuat API pengelolaan panggilan sesuai dengan izin mereka. Misalnya, jika suatu peran mengizinkan akses hanya baca untuk semua proxy API, pengguna dalam peran tersebut dapat menggunakan List API Proxies API, tetapi tidak Buat API Proxy API.
  • Tentukan apa yang dapat dilihat dan dilakukan pengguna dalam peran khusus di UI pengelolaan. Misalnya, akses hanya baca ke proxy API menonaktifkan akses ke tombol Hapus dan Proxy API pada API Halaman proxy.

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

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

Sintaksis dan prioritas

Anda dapat menggunakan karakter pengganti tanda bintang (*) untuk menunjukkan "semuanya setelah" di pengaturan izin. Namun, jika Anda menyetel izin hanya pada resource induk (seperti di /developers) tanpa mengatur izin akses yang lebih spesifik (seperti /developers/*), izin ini berlaku untuk semua hal dari {i> /developers<i} dan sesudahnya.

PUT juga berfungsi sebagai izin POST.

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

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

Artinya, admin developer dapat:

  • Membuat pengembang, tetapi tidak memperbarui pengembang 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 melihat daftar lengkap izin yang dapat Anda setel dengan API.

Buat peran khusus baru bernama "pengembangan"

Buat 'pengembangan' guna 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 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 untuk melihat API apa pun, termasuk file konfigurasi proxy API, yang terkait kebijakan, 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

Membuat 'pengujian' peran untuk memungkinkan engineer 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 untuk melihat API apa pun, termasuk file konfigurasinya, serta kebijakan terkait, JavaScript, file XSLT, dan sebagainya. Dengan menambahkan izin ini ke 'pengujian' ini, kami memungkinkan engineer kualitas untuk melihat konten API yang pengujian. 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, 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"}'

Tambahkan 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

Meniru identitas pengguna dan mengulangi permintaan ke Platform API untuk membuat proxy API. Tujuan permintaan akan berhasil, karena peran 'pengembangan' 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 seorang pengguna (di semua organisasi) kapan saja:

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