Otentikasi dan Otorisasi OAuth

Otentikasi dan Otorisasi OAuth2019-01-08T07:12:45+00:00

Contoh Proses OAuth di API Accurate Online

Berikut contoh langkah-langkah otentikasi dan otorisasi OAuth di sistem API Accurate Online (AOL).

Pastikan aplikasi telah terdaftar. Sebagai contoh, berikut adalah informasi aplikasi yang telah terdaftar :

Nama Aplikasi
Demo Example
Platform
Website
URL Website
https://example.com
URL OAuth Callback
https://example.com/aol-oauth-callback
API Key
42f12a10-08df-4b91-b1e4-c4465d686072
OAuth Secret
e133410eb632596255adfbe5a49990fe
Signature Secret
268a1a7fbd0002ccf353d336982a11fe

Arahkan URL browser ke https://accurate.id/oauth/authorize dengan rincian sebagai berikut :

URLhttps://accurate.id/oauth/authorize
MethodHTML
Parameter
client_id42f12a10-08df-4b91-b1e4-c4465d686072
response_typetoken
redirect_urihttps://example.com/aol-oauth-callback
scopeitem_view item_save sales_invoice_view

Web browser akan menampilkan Halaman Otorisasi, tekan tombol Beri Akses untuk melanjutkan.

Web browser kemudian akan diarahkan ke https://example.com/aol-oauth-callback#access_token=e8446369-bd56-4731-acea-c0a9e0cc46fa&token_type=bearer&user=%7Bname=John%20Doe,%20email=john@example.com%7D. Pastikan aplikasi di halaman tersebut dapat membaca dan menyimpan akses token yang ada di alamat URL, yang pada contoh ini adalah e8446369-bd56-4731-acea-c0a9e0cc46fa.

Proses OAuth telah selesai dan sudah didapatkan akses token yang dapat digunakan untuk membaca database Accurate Online lewat API.

Alternatif menggunakan OAuth Grant Type Authorization Code

Pada contoh di atas proses OAuth digunakan dengan metode Grant Type Implicit. Sebagai alternatif, sistem API Accurate Online juga bisa menggunakan metode OAuth Grant Type Authorization Code.

Berikut adalah hal yang perlu diperhatikan jika menggunakna metode ini :

  • Metode ini hanya tersedia jika aplikasi didaftarkan dengan platform Website
  • Dengan metodie ini, aplikasi dapat melakukan refresh Akses Token, yaitu memperpanjang masa berlaku Akses Token yang sudah expired tanpa harus mengulang seluruh proses OAuth
  • Secara keamanan metode ini lebih aman karena Akses Token tidak diberikan lewat web browser namun menggunakan HTTP POST yang dikomunikasikan langsung antara server aplikasi dengan server Accurate Online
  • Metode ini akan menggunakan OAuth Secret yang didapatkan saat pendaftaran aplikasi di https://accurate.id/developer. Untuk mencegah OAuth Secret dari aplikasi terbaca oleh pihak lain, pastikan aplikasi hanya dapat diakses oleh pihak yang berhak dan terinstall pada perangkat yang terjamin keamanannya.

Berikut adalah langkah-langkah dengan menggunakan metode Grant Type Authorization Code :

Arahkan URL browser ke https://accurate.id/oauth/authorize dengan rincian sebagai berikut

URLhttps://accurate.id/oauth/authorize
MethodHTML
Parameter
client_id42f12a10-08df-4b91-b1e4-c4465d686072
response_typecode
redirect_urihttps://example.com/aol-oauth-callback
scopeitem_view item_save sales_invoice_view

Web browser akan menampilkan Halaman Otorisasi, tekan tombol Beri Akses untuk melanjutkan.

Web browser kemudian akan diarahkan ke https://example.com/aol-oauth-callback?code=2S8F64jJTOJi1vuCxG8G. Pastikan aplikasi di halaman tersebut dapat membaca dan menyimpan akses token yang ada di alamat URL, yang pada contoh ini adalah 2S8F64jJTOJi1vuCxG8G.

Selanjutnya lakukan HTTP POST ke https://accurate.id/oauth/token dengan rincian sebagai berikut

URLhttps://accurate.id/oauth/token
MethodHTTP POST
Header
AuthorizationBasic NDJmMTJhMTAtMDhkZi00YjkxLWIxZTQtYzQ0NjVkNjg2MDcyOmUxMzM0MTBlYjYzMjU5NjI1NWFkZmJlNWE0OTk5MGZl
Request Body
code2S8F64jJTOJi1vuCxG8G
grant_typeauthorization_code
redirect_urihttps://example.com/aol-oauth-callback

Nilai NDJmMTJhMTAtMDhkZi00YjkxLWIxZTQtYzQ0NjVkNjg2MDcyOmUxMzM0MTBlYjYzMjU5NjI1NWFkZmJlNWE0OTk5MGZl adalah hasil Base64 Encode dari 42f12a10-08df-4b91-b1e4-c4465d686072:e133410eb6 32596255adfbe5a49990fe.

Metode menambahkan informasi Authorization di Header seperti ini adalah metode HTTP Basic Authentication dengan API Key sebagai user dan OAuth Secret sebagai password.

Hasil dari HTTP POST ini adalah sebagai berikut :

{
  "access_token": "a83278c3-6018-4374-9f12-4c5b6a09ab16",
  "token_type": "bearer",
  "refresh_token": "5f32ef57-a3ba-4c6d-a763-c83c67350c73",
  "scope": "item_view item_save sales_invoice_view",
  "user": {
    "name": "John Doe",
    "email": "john@example.com"
   }
}

Sampai tahap ini proses OAuth telah selesai dan sudah didapatkan Akses Token a83278c3-6018-4374- 9f12-4c5b6a09ab16 yang dapat digunakan untuk membaca database Accurate Online lewat API.