2 uygulama veya yazılım bileşenin belirli protocoller ile veri transferi sağlayan mekanizmalardır. Mobil cihazlardaki, hava durumu uygulamaları, haber sitelerindeki borsa uygulaması gibi benzeri uygulamalar API protokolleri ile anlık haberleşmektedir.
API olarak REST API kullanılır ve create, list, modify ve delete işlemleri gerçekleştirilir. REST API kullanabilmek için PVWA (Password Vault Web Access) sunucuya erişim olmalıdır. Harici bir lisans ihtiyacı bulunmamaktadır ve SDK’lar hazır bir halde gelmektedir. Bu sayede zaman ve efor gerektiren Operasyonel işlemleri otomatize etmek ve kısa sürede halletmek mümkündür.
REST API komutlarını çalıştırmak için RestFull Client uygulamamalarından PowerShell, C#, Perl, PHP, Pyhton, JAVA, Ruby, JavaScript, Dat.Net Core gibi proğramlama ve scripting diller kullanılabilir. HTTPS sorgusu yapabilme ve dönen cevapları işleyebilme dil için yeterli bir özellik olacaktır. REST API komutlarını test etme ve sorgu sonuçlarını görebilmek için Postman ve Swagger UI tools yardımımıza yetişmektedir.
Chrome uzantısı veya client olarak kullanabileceğimiz, RestFull Client olarakta tanımlanan Rest API test aracıdır. Bu araç ile kod yazmadan API komutlarımızı test edebilir, sorgular sonuucunda dönen parametreleri görüntüleyebiliriz. Bu test toolu ile text, Javascript, JSON, HTML, XML formatları kullanılmasına ragmen Cyberark için JSON formatı kullanılmaktadır.
Postman application üzerinden gerçekleştireceğimiz testlerde kolaylık oluşturması açısından, api test library yayınlanmıştır. Erişim sağlamak için documenter postman arşivlerini kullanabiliriz. Bu library aracılığı ile tüm api komutlarını kolaylıkla test edebilir ve kod çıktılarını üretebiliriz.
PVWA (Password Vault Web Access) sunucumuzda sdk’ların hazır geldiği bu modül ile doğrudan api testlerimizi gerçekleştirebilir ve erişilebilirliğini denetleyebiliriz.
Swagger UI arayüzüne erişmek için herhangi bir harici kurulum veya lisans ihtiyacımız bulunmamaktadır. https://{Pvwa_URL}/PasswordVault/Swagger şeklinde erişim sağlıyabiliriz. Dikkat etmemiz gereken nokta ise, bu kısımda gerçekleştireceğimiz testlerde web arayüzüne login olduğumuz kullanıcı ile parametreleri çağıracağından testleri bu şekilde gerçekleştirmeliyiz. Ayrıca Testleri gerçekleştireceğimiz kullanıcının web access erişimi olmalıdır (Değiştirilmediyse, Default olarak gelmektedir.)
Bilindiği üzere bir işlem gerçekleştirmeden önce bir kullanıcı belirlenmeli ve kullanıcının bu işlemi yapabilmesi için gerekli yetkilerin olması gereklidir. Web arayüzünde bu kullanıcı ile doğrudan username ve password ile login olunup işlemlerimize başlayabiliriz. Ancak API kullanımı için yardımımıza Authorization token yetişmektedir. Username ve password kullanılarak bir token üretildikten sonra diğer tüm işlemler için bu token kullanılabilir.
Bu token için geçerlilik süresi PVWA timeout süresi (default olarak 5dk gelmektedir) ile aynıdır. Yeni bir token üretildiği takdirde bir önceki token geçersiz olacaktır.
Postman üzerinden gerçekleştirdiğimiz testler sonucunda bunu kod çıktısına dönüştürebiliriz. Uygulamamızın sağ tarafında bulunan code butonunu tıklayarak code snippet kısmını açıp, buradan desteklenen dillerde code çıktısı üretmemiz mümkündür.
Bu işlem sayesinde script veya application için hazır kodları alabilir ve bu parametreleri işleyerek dilediğimiz gibi otomatize işlemlerimizi gerçekleştirebiliriz.
Powershell ile script yazıp CyberArk ortamını otomatize etmemiz mümkün. Bunun için ilk olarak kullanacağımız user için authentication sağlamamız gerekmektedir. Postman kod çıktısını kullanarak rahatlıkla bu adımları tamamlayabilir veya invoke-RestMethod tanımını manuel olarak gerçekleştirebiliriz.
Bu işlemden sonra Cyberark Authorization token çıktısı dönecektir. Bu token tek kullanımlık olup geçerlilik süresi PVWA timeout süresi ile aynıdır.
Ardından response token değeri ile pending account list talebinde bulunabiliriz (farklı işlemlerde gerçekleştirebiliriz).
Login işleminde aldığımız token değerini $response değişkeni içerisinde yeni api sorgumuz için kullanarak scripti otomatize etmiş oluruz ve bu sayede yeni $response değerimiz pending account list olur. Artık yapmamız gereken listeyi nasıl görmek istiyorsak o yönde kodlarımıza devam etmektir(Csv, txt veya mail olarak gönderilebilir. Yada doğrudan çıktı ekranında görüntülenebilir).
-