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