Showing posts with label OAG. Show all posts
Showing posts with label OAG. Show all posts

Sunday, July 1, 2018

Penggunaan KPS (Key Property Stores) Pada OAG

Halo lagi gaes, kembali lagi dengan saya Bimo A.K.A. Bear disini,
Jadi saya sudah menjelaskan mengenai bagaimana cara pendaftaran endpoint pada OAG yang menurut saya akan sangat membantu bagi orang-orang yang belum pernah mengetahui mengenai OAG, begitu juga dalam pembuatan OAuth 2 yang juga menurut saya akan sangat membantu juga bagi orang-orang yang ingin membuat OAuth 2, sekarang saya ingin menjelaskan salah satu fitur OAG yang tidak begitu krusial kayak OAuth 2, dan tidak akan terlalu membantu orang awam seperti pendaftaran endpoint, namun akan sangat membantu bila mengetahui fitur ini. Fitur ini adalah Key Property Stores.

Latar Belakang:

Pada projek saya ada satu fitur yang menjadi requirement namun fitur ini tidak begitu krusial, hal ini dikarenakan fitur key property stores ini bagaikan database, yaitu penyimpanan data menggunakan Apache Cassandra. Sebelum menggunakan fitur ini, projek saya menggunakan pembacaan file dimana data-data penting ditulis pada file tersebut. Fitur ini tidak begitu sulit untuk ditemukan dokumentasinya, namun bila dicari dengan kurang seksama akan cukup membingungkan karena OAG selalu menggunakan fitur Key Property Stores untuk menyimpan konfigurasi-konfigurasi namun tidak terlihat, sehingga pada saat pencarian dokumentasi akan terlempar-lempar kedalam konfigurasi-konfigurasi OAG yang bukanlah yang kita cari seperti pada OAuth 2.

Hal-hal yang dibutuhkan untuk menggunakan fitur ini:

1. OAG server dengan gateway yang up.
2. OAG Policy Studio telah terinstall.
3. Web browser atau Postman untuk melakukan pengetesan.

Tahap-tahap penggunaan:

1. Bukalah policy studio dan akses ke Server OAG anda.
2. Langsung ke pilihan subtree Key Property Stores lalu klik kanan pada pilihan tersebut.
3. Pilih pilihan Add KPS Collections berilah nama dari Collections ini isilah sisanya bila perlu (boleh dikosongin), Klik OK.


4. Klik kanan pada Collection yang tercipta lalu pilih, pilihan Add Table, berilah nama lalu isi bagian aliasnya, deskripsi boleh diisi bila perlu, klik OK.


5. Pada table yang tercipta, masuklah ke tab Structure, disini kita akan membuat kolom-kolom dari table yang kita buat, mari klik tombol Add, beri Nama dari kolom dan masukkan tipe datanya pada bagian Type, klik OK.


6. Lakukan step 5 sebanyak kolom yang dibutuhkan, bila sudah pilihlah kolom mana yang akan dijadikan Primary Key.


7. Klik tombol Deploy, lalu deploy perubahan. Setelah pendeployan selesai, masuk ke OAG Dashboard (https://serverOAG:portOAG), masuk ke tab Settings dan masuk ke tab Key Property Stores (Pastikan Gateway yang dipilih adalah Gateway yang kita deployin sebelumnya). Klik table yang baru saja kita buat, dan voila kita sudah masuk ke table tersebut.



8. Pada tombol Actions pada kanan atas dibawah pilihan Gateway kita dapat mengisi dan membuang isi table dengan menggunakan pilihan Delete ataupun New Entry. Mari kira isi table tersebut dengan data-data yang dibutuhkan.


9. Selamat tabel anda sudah siap digunakan, untuk pengetesan mari kita buat policy yang berisi filter Set Message yang berisikan content-typenya Text/Plain dan bodynya berisi "${kps.alias_dari_table[isi_kolom_dari_primary_key].nama_kolom_lain_yang_datanya_ingin_diambil}" sebagai contoh saya membuat sebagai berikut = "${kps.test["1"].nama}" dari data yang dimasukkan dapat dibaca sebagai ambil data nama dari table test dimana primary keynya adalah 1. Klik Finish.


10. Daftarkan policy tersebut ke suatu endpoint, deploy, dan terakhir mari kita test.

Dapat dilihat pada web browser tersebut hal yang ditunjukkan adalah data dari tabel nama yang primary keynya 1. 

KPS ini dapat digunakan untuk bermacam-macam, baik untuk mendaftarkan tps agar throttlingnya dinamis dapat dirubah-rubah tanpa menggunakan policy studio ataupun hal lainnya yang serba diharapkan dinamis.

Sekian penjelasan fitur dari saya, untuk perhatiannya saya ucapkan terimakasih.





Tutorial paling dasar dalam penggunaan OAG

Halo gaes, kembali lagi dengan saya Bimo A.K.A. Bear disini,
pada kesempatan ini saya ingin berbagi bagaimana cara penggunaan paling dasar dari OAG :D

Latar Belakang:

Dahulu saat saya baru pertama kali mengerjakan projek OAG, saya membutuhkan waktu yang cukup lama untuk memahami cara penggunaan dan kapabilitas OAG. Hal ini dikarenakan dokumentasi dari Oracle cukup sulit untuk dipahami dan kurang straight forward bagi developer yang perlu memahami cara penggunaannya dalam waktu yang cukup cepat. Selain itu blog-blog di nostra yang tentang OAG kebanyakan langsung lompat dalam pembuatan policy (apa yang akan dilakukan oleh OAG), bukan bagaimana dasar penggunaan OAG. Kesulitan saya ini ternyata dialami juga oleh pegawai lain yang juga harus menggunakan OAG pada projeknya, maka dari itu saya memutuskan untuk membuat tutorial paling dasar dalam penggunaan OAG, sehingga untuk semua orang yang membaca blog ini dapat langsung paham garis besar cara penggunaan OAG :)

Apasih OAG itu dan kenapa harus pakai OAG?

Kalau nyontek dari blog-blog OAG lain, didapatkan:

"Oracle API Gateway (OAG) adalah sebuah platform yang komprehensif untuk mengelola dan mengamankan web API." - Isnin David 2016 (Source)

Dari penjelasan bung Isnin diatas dapat diketahui bahwa OAG itu platform yang komprehensif, dan kenapa digunakan itu karena OAG dapat mengelola dan mengamankan web API. dan berdasarkan namanya OAG itu adalah sebuag gateway, jadi OAG juga merupakan pintu yang memberikan jalan untuk API yang ditembak dari luar mencapai Sistem kita :)

begini nih kalo penggambarannya:


Gambar hasil nyolong dari sini dan diedit pake MS Paint.

Tuh dari gambar itu kita tau jadi setiap orang luar (External Clients) kalau mau masuk ke Sistem kita harus lewat OAG, si OAG yang nantinya bakal nentuin apakah yang mereka kasih bisa diterima atau tidak di sistem kita.

Penggunaan paling dasar OAG

Seperti yang saya jelaskan sebelumnya, setiap orang luar (External Clients) kalau mau masuk ke Sistem kita harus lewat OAG. Agar orang tersebut dapat masuk ke sistem kita, maka mereka perlu mengetahui cara mengakses sistem kita, namun dikarenakan alasan keamanan orang luar tersebut pasti tidak boleh langsung mengakses sistem kita jadi dia hanya diberi akses untuk mengakses ke OAG dimana OAG dapat mengakses sistem kita sehingga seolah-olah orang luar tersebut langsung mengakses ke sistem kita.

"Simplenya sih, External Client akan mengakses endpoint OAG untuk mendapatkan apa yang dibutuhkannya" - Bimo (Bear) 2018

Hal-hal yang dibutuhkan:

1. Web Browser atau postman untuk pengetesan endpoint.

2. Server OAG dengan gateway yang sudah up.

3. Aplikasi OAG Policy Studio yang dapat digunakan untuk membuat dan merubah konfigurasi pada OAG.

Tata cara pembuatan endpoint OAG:

1. Pikirkanlah port dan path yang paling cocok untuk servis anda.

Sebagai contoh saya akan memakai OAG pada localhost (bila menggunakan server luar, masukan alamat server OAG tersebut), saya akan menggunakan port 3939 dan path /test sehingga alamat endpoint OAG saya adalah:

http://localhost:3939/test

2. Daftarkan port dan path tersebut pada OAG Policy Studio.

OAG Policy Studio merupakan aplikasi yang digunakan untuk mengatur apa yang akan dilakukan oleh OAG, sekarang bukalah aplikasi OAG Policy Studio.


Lalu klik tulisan Connect to Server... pada sebelah kiri window.


Bila sudah ada session untuk mengakses server OAG anda, maka dapat langsung memasukkan username dan password lalu mengklik tombol OK untuk mengakses OAG anda.

Bila belum memiliki session, dapat membuat session terlebih dahulu dengan mengklik tombol Add pada sebelah kanan textbox pengisian nama session, lalu masukkan host dan port server OAG anda pada isian Host dan Port pada bagian Connection Details, setelah itu isilah Username dan Password dari server OAG, jangan lupa untuk mengklik Save pada bagian Saved Sessions lalu klik OK untuk mengakses server OAG anda.


Di window yang baru muncul akan ditampilkan Group dan Gateway yang terdaftar dalam OAG anda, biasanya anda tidak diperlukan untuk membuat Group dan Gateway baru dalam projek anda karena sebagian besar pasti sudah dibuatkan terlebih dahulu. Pada gambar diatas sudah terdapat 2 Group dan masing-masing memiliki 1 Gateway, pilihlah Gateway yang akan anda gunakan (Untuk melakukan perubahan pada Gateway, status dari Gateway tersebut harus up).


Setelah memilih Gateway yang akan anda gunakan, akan muncul window pengisian Passphrase, biasanya bisa langsung klik OK, kecuali bila ada informasi penggunaan Passphrase baru diisi bagian Passphrasenya.


Pada window inilah kita akan melakukan semua konfigurasi dan perubahan policy untuk menentukan apa yang akan dilakukan OAG, untuk mendaftarkan endpoint kita perlu menentukan apa yang harus dilakukan pada saat pengaksesan endpoint tersebut. dan hal tersebut ditentukan oleh Policy yang akan kita daftarkan. Untuk membuat sebuah Policy dapat dilakukan dengan mengklik kanan Dropdown Policies. demi kerapihan mari kita buat container dari Policy tersebut, jadi pilihlah pilihan Add Container terlebih dahulu. Masukkan nama dari Container tersebut sebagai contoh saya memberikan nama "Test", klik kanan lagi pada container tersebut barulah kita pilih pilihan Add Policy dan beri nama "Test Policy".


Di Policy inilah kita akan menentukan apa yang akan dilakukan bila orang mengakses endpoint yang akan kita daftarkan, disini juga tempat yang biasa menjadi tutorial-tutorial OAG yang sudah ada di blog-blog nostratech. Disini saya akan memberikan filter (step yang akan dilakukan oleh endpoint) Set Message (cari di search box disebelah kiri, lalu drag and drop ke kotak biru ditengah).


Disini saya memberikan Content-Type "Text/Plain" dan memberikan Message Body dengan isi random. Klik Finish. Pada Filter Message yang tercipta klik kanan dan pilih Set as Start.


Setelah membuat Policy mari kita daftarkan endpoint anda, pertama masuk ke dropdown Listeners, lalu pada dropdown Oracle API Gateway klik kanan lalu pilih add HTTP Services, Servis ini akan saya beri nama "Test Services", masuk ke dropdown Test Services lalu pilihlah pilihan Ports.


Klik tombol Add disebelah kanan, pada window baru isi nama dengan nama port yang diinginkan, pada kasus ini saya memberikan nama "Test Port" lalu isi Port dengan Port yang diinginkan, disini saya beri "3939".


Setelah membuat port, sekarang kembali ke Dropdown Test Services lalu pilihlah pilihan Paths.


Pada menu ini pilihlah tombol Add dan pilihlah Relative Path. pada textbox paling atas masukkan path yang diinginkan, pada kasus ini adalah /test, lalu pilihlah policy yang dibuat pada pilihan Path Specific Policy, dan klik OK.


Setelah mendaftarkan endpoint, Pilihlah menu deploy dibagian kanan atas. klik deploy.

SELAMAT, ANDA SUDAH MEMBUAT FUNGSI PALING DASAR DARI OAG

3. Sekarang anda bisa mengetes dengan menggunakan browser berikut contohnya:


Kita sudah berhasil mendaftarkan endpoint "http://localhost:3939/test" pada OAG, sisanya adalah bagaimana kita menentukan apa yang akan endpoint tersebut lakukan, di test yang kita lakukan hanyalah memberikan tulisan random tapi dengan menggunakan filter-filter policy yang disediakan OAG, kita dapat menggunakan endpoint tersebut untuk bermacam-macam hal, berikut contoh-contoh penggunaan filter pada policy dan pendaftaran API yang sudah dibuat pada blog-blog nostra:

  1. Membuat Filter "IP Address" dan "Throttling" di OAG.
  2. Register WSDL SOAP API via Policy Studio di OAG.
  3. Register REST API di OAG.
  4. Convert REST to SOAP in OAG.
  5. Membuat OAuth2 Server dengan OAG.
  6. Membuat dan Mengakses OAuth2 protected content dengan OAG.

Sekian penjelasan dari saya, untuk perhatiannya saya ucapkan terimakasih.

Reference:
Pengalaman pribadi dari belajar otodidak mengenai teknologi yang sangat asing dan belum pernah saya pelajari sebelumnya.


Sunday, September 17, 2017

Membuat dan Mengakses OAuth2 protected content dengan OAG

Setelah penjelasan saya sebelumnya mengenai pembuatan OAuth2 Server, sekarang saya akan menjelaskan bagaimana cara pembuatan OAuth2 Protected Content, dan cara mengakses OAuth2 Protected Content dengan OAG.

Seperti sebelumnya untuk penjelasan kali ini saya akan menggunakan client credentials grant untuk mendapatkan access token karena lebih mudah dan simple untuk dijelaskan.

Untuk membuat OAuth2 protected content, kita dapat satu filter khusus yaitu Validate Access Token, bila mengikuti penjelasan saya sebelumnya dengan meng-import template, kita dapat melihat  policy yang terletak pada  Policies > OAuth 2.0 > Resource Service > Resource Service untuk melihat flow pembuatan OAuth2 protected content.

Pembuaan OAuth2 Protected Content

perlu diperhatikan dalam Validate Access Token kita perlu mengeset tempat penyimpanan access token, tempat penyimpanan access token ini harus sama dengan tempat penyimpanan access token pada access token grant yang memberikan access token (dalam hal ini tempat penyimpanan access token yang digunakan pada policy Client Credentials) dan harus menambahkan scope dari scope yang diberikan OAuth2 Authorization Server. untuk pengetesan dalam pengambilan OAuth2 Protected Content dengan command berikut:

curl -X POST \'{Protocol}://{host}:{port}{path}' \
  -H 'authorization: Bearer {access token yang didapat dari access token grant}'

tentu saja seperti sebelumnya path harus disesuaikan dengan path yang didaftarkan di OAG Policy Studio

Mengakses OAuth2 Protected Content dengan Postman


Sekarang kita akan mencoba mengakses OAuth2 protected Content, hal ini akan cukup sulit bila kita harus mengambil access token terlebih dahulu dengan meng-encode base64 client id dan secret, lalu menyimpan access token yang didapat untuk dimasukkan kedalam authorization header. OAG memberikan solusi agar semua hal tersebut dapat dilakukan oleh OAG tanpa campur tangan dari user.

Hal pertama yang harus dilakukan adalan dengan membuat client credentials profile, hal ini akan memudahkan kita agar tidak perlu lagi meng-encode base64 client id dan secret untuk mendapatkan access token. Client Credentials Profile ini terletak pada External Connections > Client Credentials > OAuth2, dalam pembuatannya kita akan memberikan nama pada profile ini dan menentukan authorization url dan juga token url. karena saya menggunakan template yang sudah di-import disini saya akan menggunakan API Gateway Profile. (Agar lebih mudah gunakan sertifikat yang benar untuk ssl pada protokol https atau buat listener baru dengan protokol http dan ganti URL client client credentials profile)

API Gateway Profile

Setelah membuat profile, klik tombol add pada tab OAuth2 Credentials, masukan nama kredensial, client id dan secret, ganti OAuth Flow Type ke Client Credentials, terakhir optional masukkan scope seperlunya, dan klik OK.

Sekarang kita akan membuat policy untuk mengakses OAuth2 Protected Content, dalam policy ini kita akan menggunakan 3 filter berikut:

1. Retrieve OAuth Client Access Token From Token Storage
Untuk mengecek apakah access token sudah ada atau masih hidup

2. Get OAuth Access Token
Untuk meminta access token baru dan menyimpannya di cache, token yang sudah expired akan langsung dibuang oleh cache

3. Connect to URL
Untuk meneruskan data ke OAuth2 Protected Content

pada ketiga filter tersebut kita harus mengganti isian client credentials profile dengan data client credentials profile yang baru saja kita buat. pada Retrieve OAuth Client Access Token, isian terletak pada  "Choose profile to be used for token request", pada Get OAuth Access Token pada "Optionally select a client credentials profile", dan pada Connect to URL pada "Choose a Client Credential Profile" pada tab Authentication.

Policy baru untuk mengakses OAuth2 Protected Content.

Daftarkan policy tersebut ke listener, lalu mari kita test dengan command:

curl -X POST \'{Protocol}://{host}:{port}{path}'

Testing dengan postman tanpa penggunaan authorization header

Sekian penjelasan saya untuk kali ini,

Terimakasih.

Membuat OAuth2 Server dengan OAG

Pada kesempatan ini saya ingin menjelaskan cara membuat OAuth2 dengan OAG, dapat diketahui dengan demikian OAG akan menjadi Authorization Server.

Pada OAG terbaru kali ini (11.1.2.1.4.0) membuat OAuth Server sangatlah mudah, yang pertama harus dilakukan adalah dengan meng-import pada OAG pada Policy Studio. template OAuth2 Server yang sudah disediakan dalam folder berikut:

"Your OAG Installation Folder/apigateway/samples/oauth/authzserver/config.xml"

File yang akan di import di OAG

Template ini menyediakan cache-cache untuk menyimpan kredensial OAuth, User yang diperlukan untuk mengakses OAuth Server, dan OAuth Acces Token Grant yang dapat digunakan. untuk meng-import template ini, diperlukan mengklik File > Import.

data-data yang di-import dari template


Untuk mengakses OAuth Server, user diperlukan mengakses oaghost:oauthport dengan protokol https, kali ini saya menggunakan localhost dengan port 8089 (default OAuth2 Port OAG) untuk mengakses OAuth Server.

OAuth2 Authorization Server

Dalam OAuth Authorization Server ini kita akan memasukkan credentials user dengan admin role yang telah didaftarkan, default dari template adalah dengan login name "regadmin" dan password "changeme" (untuk mengubah atau menambahkan user, dapat dilakukan dengan mengakses Users and Groups > Users pada OAG Policy Studio), setelah memasuki OAuth Server ini kita dapat mendaftarkan aplikasi ataupun meng-import konfigurasi aplikasi yang sudah ada, tentu saja aplikasi-aplikasi yang akan kita buat ini merupakan aplikasi yang akan mengakses OAuth Server kita (Client kita).  

Untuk membuat aplikasi dapat dimulai dari mengklik "new application" lalu memasukkan application name dan descriptionnya jika dibutuhkan, setelah selesai klik tombol "Create"

Pembuatan aplikasi baru

setelah itu masuk ke bagian "OAuth Credentials" lalu klik "New Client Id". pilihlah jenis client dari aplikasi ini baik itu confidential maupun public dan isilah data-data lainnya bila perlu lalu klik "Create"
Pembuatan OAuth2 Credentials

Pada saat ini akan muncul satu baris data yang berisi OAuth Credentials, simpanlah Client ID dan Secret yang tercipta (Untuk menampilkan Secret klik Show Secret), agar data aplikasi ini bisa diakses oleh aplikasi kita harus menambah scope, scope ini akan menentukan batasan-batasan yang dapat dilakukan aplikasi pada data yang dia dapat dari OAuth2, untuk saat ini saya menambahkan 2 scope yaitu resource.READ dan resource.WRITE.

Setelah membuat aplikasi, kita perlu untuk membuat OAuth2 Stores yang akan digunakan untuk menyimpan data access token dikala aplikasi yang kita daftarkan menghit OAuth2 yang kita buat untuk mendapatkan token, namun kali ini kita akan menggunakan hasil import dari template yaitu OAuth Access Token Store. (Saya akan menggunakan OAuth2 Stores dari sample yang kita import, dan OAuth2 Stores ini terletak di Libraries > OAuth2 Stores)

Pembuatan OAuth2 Stores


Terdapat berbagai macam metode penyimpanan baik itu pada cache KPS (KPS yang dibuat saat meng-import config OAuth2), menyimpan pada database, dan terakhir penyimpanan pada apache cassandra. Saya menggunakan apache cassandra agar kita tidak perlu repot memonitor data access token dan langsung tersimpan pada OAG.

Dengan menggunakan generated policies dari konfigurasi yang kita import, agar lebih mudah dipahami saya akan menggunakan client credentials grant karena lebih simple dan straight forward, dan saat ini kita sudah bisa melihat OAG menghasilkan Access Token, namun saya ingin menggunakan Authorization Header yang menggunakan encode BASE64 dari (Client ID:Secret) untuk mendapatkan token, sehingga saya mengubah policy dari Client Credentials untuk mengambil data dari Authorization Header. (Policy terletak di Policies > OAuth 2.0 > Client Credentials), jangan lupa mengecek tab Access Token untuk merubah data lama waktu hidup token, panjang token, dimana token akan disimpan, apakah akan memberikan refresh token, membuat scope token pada tab Access Token (Saya menggunakan default setting dimana token akan disimpan pada OAuth2 Stores yang dibuat/diimport diatas)

Pengubahan validasi aplikasi pada policy client credentials

Mari kita melakukan percobaan untuk mendapatkan access token dengan menggunakan curl dengan command sebagai berikut:

curl -X POST \'{protocol}://{host:port}{path}' \
  -H 'authorization: Basic {BASE64Encode(Client_id:Secret)}' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d grant_type=client_credentials

path disesuaikan dengan relative path yang didaftarkan di OAG policy studio

Pengambilan Access Token menggunakan Postman dengan command yang sama dengan diatas.

Sekian penjelasan mengenai OAuth2 Server dari saya.

Terimakasih.

Tuesday, June 14, 2016

Register WSDL SOAP API via Policy Studio di OAG

Setelah sebelumnya kita sudah berhasil membuat filter "IP Address" dan "Throttling" menggunakan policy healthcheck, sekarang kita akan coba mendaftarkan SOAP web service ke OAG dengan menggunakan policy studio.

Untuk lebih jelasnya simak dan ikuti langkah-langkah berikut:
  1. Buka console policy studio, secara default akan seperti gambar di bawah
  2. Persiapkan wsdl yang akan kita daftarkan ke dalam OAG. Kita bisa menggunakan global weather wsdl atau bisa menggunakan wsdl yang kita pernah miliki sendiri. Untuk global weather dapat dilihat di url berikut http://www.webservicex.com/globalweather.asmx?wsdl
  3. Kembali ke policy studio, plih Business Services --> Web Service Repository --> Web Services --> Register Web Service
  4. Akan muncul halaman Load WSDL, kemudian inputkan WSDL URL sesuai dengan url yang ada di langkah no 2, kemudian pilih Next
  5. Klik button Select All untuk memilih semua WSDL operations
  6. Klik Next pada langkah WS-Policy Options
  7. Pada langkah Deploy Policy, kita akan menentukan policy wsdl global weather akan di deploy ke path yang mana, pilih Default Services agar wsdl tersebut nanti diakses dari port 8080 
  8. Akan muncul halaman summary dari hasil deploy wsdl yang sudah kita lakukan sebelumnya
  9. Setelah proses deploy berhasil maka secara otomatis OAG akan men-generate beberapa komponen seperti berikut:
    • path policy location yang ada di Listener --> Oracle API Gateway --> Default Services --> path
    • Global weather Web Services yang ada di Business Service --> Web Service Repository --> Web Services --> GlobalWeather
    • Global weather policy yang ada di Policies --> Generated Policies --> Web Services.GlobalWeather --> /globalweather.asmx
  10. Langkah terakhir adalah deploy dengan cara klik F6 atau klik tombol pojok kanan atas
  11. Test untuk melihat hasil nya dengan cara http://ip:port/globalweather.asmx?wsdl
Akhirnya kita telah berhasil untuk mendaftarkan wsdl SOAP ke OAG, wsdl global weather juga sudah dapat diakses melalui OAG. Kita dapat menambahkan beberapa filter untuk memproteksi service tersebut sesui dengan kebutuhan. Contoh proteksi service sudah pernah kita bahas sebelumnya di link blog berikut http://blog.nostratech.com/2016/06/membuat-filter-ip-address-dan.html

Semoga informasi ini dapat bermanfaat :)

Terimakasih.

Referensi : https://www.youtube.com/watch?v=-lRIB9iV_ac

Membuat Filter "IP Address" dan "Throttling" di Oracle API Gateway (OAG)


Oracle API Gateway (OAG) adalah sebuah platform yang komprehensif untuk mengelola dan mengamankan web API. Dengan menggunakan OAG semua policy untuk web API dapat di pusatkan di OAG, sehingga security dari web API tidak perlu di definisikan di tiap-tiap web API.

 OAG mempunyai banyak fitur security seperti misalnya:
  1. Threat Protection
    Fitur threat protection berfungsi untuk memproteksi service dari berbagai ancaman seperti virus, bomb XML hingga SQL injection.
  2. OAG dapat melakukan authentikasi ke third-party aplikasi seperti LDAP, Oracle Access Manager, IBM Tivoli dsb.
  3. Transformation and Routing
    OAG dapat melakukan transformasi service dari REST ke SOAP atau dari format XML ke JSON. Fitur ini sangat membantu jika nantinya ada aplikasi yang membutuhkan suatu balikan berupa JSON sedangkan by-default balikan dari web service adalah XML.
  4. Monitoring dan Reporting
    Semua service atau web API dapat di kontrol dan di analisis secara real-time baik itu berupa request status sukses atau gagal.
     
Pada kesempatan kali ini kita akan coba membuat filter IP Filtering dan Throttling pada service healthcheck.
  • Dengan menggunakan IP Filtering, kita dapat melakukan batasan IP mana saja yang diperbolehkan mengakses OAG dan mana saja yang tidak.
  • Sedangkan Throttling adalah filter yang kita gunakan untuk membatasi total hit service dalam hitungan detik, menit, jam atau hari.
Untuk lebih jelasnya berikut langkah-langkah implementasinya.
  1. Pastikan nodemanager dan gateway yang ada di OAG dalam keadaan Active.
  2. Check service healthcheck, pastikan mendapatkan status OK 
  3. Buka policy studio kemudian pilih Policies --> Policy Library --> Health Check
  4. Search filter IP Address yang ada di list filter, kemudian drag ke kanvas policy.
     
  5. Double klik filter IP Address untuk melakukan konfigurasi IP Address dan Net Mask, pilih Deny Access untuk mencegah request datang dari IP tertentu dan kemudian finish.

  6.  Klik kanan IP Address kemudian pilih Set as Start agar filter tersebut dieksekusi pertama kali.
  7. Drag Success Path dari filter IP Address ke Set Message
  8. Deploy konfigurasi tersebut dengan memencet tombol deploy yang ada di pojok kanan atas atau tekan F6, kemudian finish.
  9. Test kembali service healthcheck (lihat langkah no 2)
  10. Buka web nodemanager https://ip:port atau dalam contoh disini adalah https://192.168.1.156:8090/ kemudian akan terlihat grafik orange pada kolom message failed.
  11. Klik grafik tersebut untuk melihat detail error nya. 
  12. scroll kebawah untuk melihat trace error

  13. Ulangi proses no 5 kemudian pilih Allow Access, dan test kembali service healthcheck.
  14. Setelah berhasil membuat filter IP Address sekarang kita akan menambahkan filter berikutnya yaitu throttling, kita akan coba batasi total hit per menit dari service healthcheck sebanyak 3x.

  15. Drag filter Throttling, kemudian lakukan konfigurasi filter throttling dengan mengisikan
    Allow : 3
    messages every : 1 minute(s)
    kemudian klik finish.

  16. Sisipkan filter Throttling di antara filter IP Address dan Set Message
  17. Deploy kembali policy tersebut (lihat langkah no 8)
  18. Hit service healthcheck lebih dari 3x kemudian liat kembali hasil nya di web nodemanager
  19. Terlihat dari gambar diatas bahwa service healthcheck di hit sebanyak 4x dimana 3 request pertama sukses kemudian request ke 4 ditolak oleh OAG karena adanya filter Throttling. 


Sekarang kita sudah berhasil membuat filter IP Address dan Throttling di OAG, semoga informasi ini dapat bermanfaat :)

Terimakasih.