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
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.
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:
Testing dengan postman tanpa penggunaan authorization header
Sekian penjelasan saya untuk kali ini,
Terimakasih.
No comments:
Post a Comment