API ile rol oluşturma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu konuda, özel rollerin nasıl oluşturulacağı ve Management API aracılığıyla kullanıcılara nasıl rol atanacağı ele alınmaktadır. Ayrıca, rol atamalarının API aracılığıyla nasıl test edileceği de gösterilmektedir. (Özel rollere genel bir bakış için Kullanıcı arayüzünde özel roller oluşturma konusuna bakın.)

İzin ayarı hakkında

Rol izinleri, yönetim API URI'larında ayarlanır (yönetim kullanıcı arayüzü URI'lerinde değil). Örneğin, Edge kuruluşunuzdaki uygulama geliştirici varlıklarında PUT, GET ve/veya DELETE izinlerini ayarlamak isterseniz geliştiriciler için yönetim API yolu https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers olduğundan /developers kaynağında izinleri ayarlarsınız. (Bu konudaki Management API çağrıları gösterildiği gibi izinler belirli bir kuruluşu kapsadığından izinleri tanımlarken yolun kuruluş kısmını dahil etmenize gerek yoktur.)

Belirli varlıklar için de izinler ayarlayabilirsiniz. Örneğin:

  • Tek bir geliştirici için izinleri belirlemek istiyorsanız /developers/steve@example.com üzerinde ayarlayın.
  • free-api-product gibi belirli bir API ürünü için bu ürünleri /apiproducts/free-api-product üzerinde ayarlayın
  • Belirli bir ortamdaki anahtar/değer eşlemeleri için test ortamındaki tüm anahtar/değer eşlemeleri için /environments/test/keyvaluemaps/fooMap veya /environments/test/keyvaluemaps/* gibi bir izni ayarlarsınız.

API'yi kullanarak belirlediğiniz izinler:

  • Özel bir roldeki kullanıcıların, izinlerine göre management API çağrıları yapmasına izin verin. Örneğin, bir rol tüm API proxy'lerine salt okuma erişimine izin veriyorsa bu roldeki bir kullanıcı List API Proxies API'yi kullanabilir ancak Create an API Proxy API'yi kullanamaz.
  • Özel bir role sahip kullanıcıların yönetim kullanıcı arayüzünde neler görebileceğini ve yapabileceğini belirleyin. Örneğin, API proxy'lerine salt okuma erişimi, API Proxy'leri sayfasındaki +API Proxy ve Sil düğmelerine erişimi devre dışı bırakır.

İzinleri ayarlayabileceğiniz kaynakları ve yolları görmek için farklı kaynak URL'lerindeki management API referansını inceleyin.

Rol yönetimiyle ilgili tüm referans bilgileri için UserRoles API'ye göz atın.

Söz dizimi ve öncelik

Bir izin ayarında "sonrasında her şey" olduğunu belirtmek için yıldız joker karakterini (*) kullanabilirsiniz. Ancak daha spesifik izinler (/developers/* gibi) ayarlamadan yalnızca üst kaynakta (örneğin /developers üzerinde) izinleri ayarlarsanız bu izin, /developers ve sonraki her şey için geçerli olur.

PUT, izinlerde POST işlevi de görür.

Kaynaklar için genel izinlerle daha ayrıntılı izinleri birlikte kullanabilirsiniz. İzin çakışması olduğunda daha ayrıntılı ayarlar öncelikli olur. Örneğin, aşağıdaki izinlerin "geliştirici yöneticisi" rolünde ayarlandığını varsayalım:

  • /developers üzerinde PUT
  • /developers/* üzerinde GET

Bu, geliştirici yöneticisinin şunları yapabileceği anlamına gelir:

  • Geliştirici oluşturun ancak belirli geliştiricileri veya alt varlıkları güncellemeyin (ilgili yolda daha ayrıntılı GET izni olduğu için).
  • Herhangi bir geliştirici veya alt varlık alın ancak tüm geliştiricilerin listesini almayın.

API ile ayarlayabileceğiniz izinlerin tam listesi için İzinler referansı bölümüne bakın.

"Geliştirme" adlı yeni bir özel rol oluşturun

Geliştiricilerin API proxy'lerini görüntülemesini, oluşturmasını ve güncellemesini sağlamak için bir "geliştirme" rolü oluşturun.

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

Geliştirme rolüne izin ekleme

Bir grup Edge yapısında (tüm /apps, /apis, /apiproducts vb.) ve bağımsız yapılarda (ör. belirli bir uygulama, API proxy'si veya API ürünü) ayarlanabilen izinler GET, PUT ve DELETE iznidir.

GET, kullanıcıların API proxy yapılandırma dosyaları, ilişkili politikalar, JavaScript, XSLT dosyaları vb. tüm API'leri görüntüleyebilmesini sağlar. API'lerdeki PUT izni, geliştiricilerin API proxy'leri oluşturmasını, bunlarda değişiklik yapmasını, içe veya dışa aktarmasını, dağıtmasını ve dağıtımını kaldırmasını sağlar.

path özelliği, izinleri ayarladığınız yapıyı belirtir. Örneğin, /applications, /apps, /apiproducts, /developers veya /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" ]}'

Rol oluşturma: test etme

Kalite mühendislerinin API proxy'lerini ve içeriklerini (örneğin politikalar dahil) görüntülemelerini sağlamak için bir "test" rolü oluşturun.

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

Test rolüne izin ekleyin

GET, kullanıcıların yapılandırma dosyaları, ilişkili politikalar, JavaScript, XSLT dosyaları vb. dahil tüm API'leri görüntülemelerine olanak tanır. Bu izni "test" rolüne ekleyerek kalite mühendislerinin test ettikleri API'lerin içeriğini görüntüleyebilmelerini sağlarız. Bununla birlikte, bu roldeki kullanıcılar API proxy'leri oluşturamaz, değiştiremez, içe aktaramaz, dışa aktaramaz, dağıtamaz ve bunların dağıtımını kaldıramaz.

$ 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'in şirket içinde kurulumunda kullanıcının Edge kullanıcı arayüzüne giriş yapmasına olanak tanımak için ayarlanması gereken minimum izin grubu şöyledir:

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

Bu izinleri ayarlamak için aşağıdaki cURL komutunu kullanın:

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

Burada <ms-IP>, Uç Yönetim Sunucusu'nun IP adresi veya DNS adıdır.

Test rolüne kullanıcı ekleyin

Kullanıcı rolüne sahip bir kullanıcının temel hazırlığını yapmak için:

$ 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'leri kullanıcı olarak görüntüle

Kullanıcının kimliğine bürün ve API proxy'lerini görüntülemek için API Hizmetleri'ne istekte bulunun. Kullanıcı, API'leri içerikleriyle birlikte görüntüleyebiliyor olmalıdır.
$ 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

Test rolündeki kullanıcı olarak API oluştur

Kullanıcının kimliğine bürünme ve API proxy'si oluşturmak için API Hizmetleri'nden istekte bulunma. "Test" rolü, kullanıcının API oluşturmasına izin vermediğinden istek, API Hizmetleri tarafından reddedilir.

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

Kullanıcıyı geliştirme rolüne ekle

Şimdi kullanıcıya "geliştirme" rolünü verin.

$ 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'yi geliştirme rolündeki kullanıcı olarak oluşturma

Kullanıcının kimliğine bürünün ve API proxy'si oluşturmak için API Platformu'na isteği tekrarlayın. "Geliştirme" rolü kullanıcının API oluşturmasına izin verdiğinden, istek başarılı olur.

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

Bir kullanıcı için kullanıcı rolleri alma

Kuruluş yöneticisi olarak, bir kullanıcıya (tüm kuruluşlardaki) yönelik kullanıcı rollerinin listesini istediğiniz zaman kontrol edebilirsiniz:

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