API ile rol oluşturma

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/fooMap gibi 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