Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Bu konuda, yönetim API'si aracılığıyla özel rollerin nasıl oluşturulacağı ve kullanıcılara rollerin nasıl atanacağı açıklanmaktadır. Ayrıca, API aracılığıyla rol atamalarının nasıl test edileceğini de gösteriyoruz. (Özel rollerin genel görünümü için Kullanıcı arayüzünde özel roller oluşturma başlıklı makaleyi inceleyin.)
İzin ayarı hakkında
Rol izinleri, yönetim API'si URI'lerinde (yönetim kullanıcı arayüzü URI'lerinde değil) ayarlanır. Örneğin, Edge kuruluşunuzdaki uygulama geliştirici varlıklarında PUT, GET ve/veya DELETE izinleri ayarlamak istiyorsanız /developers kaynağında izinleri ayarlarsınız. Çünkü geliştiriciler için yönetim API'si yolu https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers'dir.
(Bu konudaki Management API çağrılarının gösterdiği gibi, izinler belirli bir kuruluşla sınırlandırıldığından izinleri tanımlarken yolun kuruluş bölümünü eklemeniz gerekmez.)
Ayrıca, belirli öğeler için izinler de ayarlayabilirsiniz. Örneğin:
- İzinleri tek bir geliştirici için ayarlamak istiyorsanız
/developers/steve@example.comüzerinde ayarlayın. - free-api-product gibi belirli bir API ürünü için bunları
/apiproducts/free-api-productüzerinde ayarlayın. - Belirli bir ortamdaki anahtar/değer eşlemesi için
/environments/test/keyvaluemaps/fooMapgibi bir öğede veya test ortamındaki tüm anahtar/değer eşlemeleri için/environments/test/keyvaluemaps/*öğesinde izin ayarlarsınız.
API'yi kullanarak ayarladığınız izinler:
- Özel roldeki kullanıcıların, izinlerine göre Yönetim API'si ç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ı API Proxy'lerini Listeleme API'sini kullanabilir ancak API Proxy'si Oluşturma API'sini kullanamaz.
- Özel roldeki 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.
İzin ayarlayabileceğiniz kaynakları ve yolları görmek için farklı kaynak URL'lerindeki Yönetim API'si referansına göz atın.
Rol yönetimiyle ilgili eksiksiz referans bilgileri için Kullanıcı rolleri API'sine bakın.
Söz dizimi ve öncelik
İzin ayarında "sonrası" anlamına gelmesi için yıldız işareti joker karakterini (*) kullanabilirsiniz. Ancak daha spesifik izinler (ör. /developers/*) ayarlamadan yalnızca bir üst kaynakta (ör. /developers) izin ayarlarsanız izin, /developers'tan itibaren her şey için geçerli olur.
PUT, izinlerde POST olarak da kullanılır.
Kaynaklarda genel izinleri daha ayrıntılı izinlerle karıştırabilirsiniz. İzinlerin çakıştığı durumlarda daha ayrıntılı ayarlar öncelikli olur. Örneğin, "developeradmin" rolünde aşağıdaki izinlerin ayarlandığını varsayalım:
- /developers üzerinde PUT
- GET on /developers/*
Bu durumda geliştirici yöneticisi:
- Bir geliştirici oluşturun ancak belirli geliştiricileri veya alt öğeleri güncellemeyin (çünkü bu yolda daha spesifik bir GET izni vardır).
- Tüm geliştiricilerin listesini değil, herhangi bir geliştiriciyi veya alt öğeyi alabilirsiniz.
API ile ayarlayabileceğiniz izinlerin tam listesi için İzin referansı'na bakın.
"development" adlı yeni bir özel rol oluşturun.
Geliştiricilerin API proxy'lerini görüntülemesine, oluşturmasına ve güncellemesine olanak tanımak için "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 Edge yapay nesne grubunun tamamında (ör. /apps, /apis, /apiproducts vb.) ve tek tek yapay nesnelerde (ör. belirli bir uygulama, API proxy'si veya API ürünü) ayarlanabilen izinler GET, PUT ve DELETE'tir.
GET, kullanıcıların API proxy yapılandırma dosyaları, ilişkili politikalar, JavaScript, XSLT dosyaları vb. dahil olmak üzere tüm API'leri görüntülemesine olanak tanır. API'lerdeki PUT izni, geliştiricilerin API proxy'lerini oluşturmasına, değiştirmesine, içe ve dışa aktarmasına, dağıtmasına ve dağıtımını kaldırmasına olanak tanır.
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
Kalite mühendislerinin API proxy'lerini ve içeriklerini (ör. politikalar) görüntülemesini sağlamak için "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 ekleme
GET, kullanıcıların yapılandırma dosyaları da dahil olmak üzere tüm API'leri ve ilişkili politikaları, JavaScript'i, XSLT dosyalarını vb. görüntülemesine olanak tanır. Bu izni "test" rolüne ekleyerek kalite mühendislerinin test ettikleri API'lerin içeriklerini görüntülemesini sağlıyoruz. Ancak bu roldeki kullanıcılar API proxy'leri oluşturamaz, değiştiremez, içe aktaramaz, dışa aktaramaz, dağıtamaz ve dağıtımı geri alamaz.
$ 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çi kurulumunda, kullanıcının Edge kullanıcı arayüzüne giriş yapmasına izin vermek için ayarlanması gereken minimum izin grubu şunlardır:
{"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> Edge Management Server'ın IP adresi veya DNS adıdır.
Kullanıcıyı test rolüne ekleme
Bir kullanıcıya kullanıcı rolü sağlamak 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üleme
Kullanıcının kimliğine bürünerek API proxy'lerini görüntülemek için API Hizmetleri'ne istekte bulunun. Kullanıcı, API'leri ve içeriklerini görüntüleyebilmelidir.$ 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 bir kullanıcı olarak API oluşturma
Kullanıcının kimliğine bürünerek API proxy'si oluşturmak için API Hizmetleri'ne istekte bulunun. "Testing" 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 ekleme
Şimdi kullanıcıya "geliştirme" rolünü sağlayın.
$ 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"} ] }'
Geliştirme rolündeki kullanıcı olarak API oluşturma
Kullanıcının kimliğine bürünün ve API proxy'si oluşturmak için API Platform'a 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ının kullanıcı rollerini alma
Kuruluş yöneticisi olarak, bir kullanıcının tüm kuruluşlardaki 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