Authentication
Sebelum dapat melakukan pertukaran data dari layanan SATUSEHAT, perlu dilakukan proses autentikasi terlebih dahulu. SATUSEHAT menggunakan autentikasi mengikuti standar protokol OAuth 2 dengan tipe pemberian akses (grant type) adalah client credentials. Istilah autentikasi sendiri sebenarnya kurang tepat, karena protokol OAuth lebih kepada otorisasi/izin (authorization), yang didesain dengan tujuan agar memudahkan pemberian akses ke suatu resource atau data ke pihak lainnya berdasarkan tipe akses dan cakupan layanan yang diperbolehkan, baik dalam sistem yang manual, semi-otomatis, atau otomatis total.
Metode autentikasi layanan SATUSEHAT dapat dilakukan melalui FHIR OAuth API dengan endpoint utama sebagai berikut:
Endpoint
OAuth Base URL (Development) | https://api-satusehat-dev.dto.kemkes.go.id/oauth2/v1 |
---|---|
OAuth Base URL (Staging) | https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1 |
OAuth Base URL (Production) | https://api-satusehat.kemkes.go.id/oauth2/v1 |
Proses Mendapatkan Token
Method | POST |
Target URL | {{oauth_base_url}}/accesstoken?grant_type=client_credentials |
Header | Content-Type: application/x-www-form-urlencoded |
Body (urlencoded) | client_id: <nilai_client_id> |
Berikut langkah-langkah untuk mendapatkan access token agar dapat melakukan pertukaran data dengan layanan SATUSEHAT:
Silakan melakukan pengajuan untuk mendapatkan client ID dan client secret dari tim DTO dengan mengirimkan email dengan subyek [Permintaan Client ID dan client secret] ke ihs@dto.kemkes.go.id dengan format:
- Nama
- Nama insitusi
Setelah dapat, isikan data tersebut sebagai payload untuk target API berikut:
{{oauth_base_url}}/accesstoken?grant_type=client_credentials
Isikan data terkait request autentikasi sebagai body request dengan tipe konten (content-type):
application/x-www-form-urlencoded
, lalu tambahkan parameter serta isi nilai client_id dan client_secret dengan nilai yang sudah didapatkan saat pengajuan tadi.Bila proses autentikasi berhasil, maka akan didapatkan response yang berisi access token, beserta informasi terkait rentang waktu access token tersebut dianggap valid.
Berikut contoh hasil response-nya:
{ "refresh_token_expires_in": "0", "api_product_list": "[ihsv1]", "api_product_list_json": [ "ihsv1" ], "organization_name": "ihs-1-339301", "developer.email": "rscm@test.com", "token_type": "BearerToken", "issued_at": "1656035748867", "client_id": "6564BDpuLsOqw7EWgTGkSNnAGX12k1EKHz6NSRlfq46HqAGN", "access_token": "RgQ5I5SWefv2Ka6oIaPKXNGCQSLo", "application_name": "d6a8cb98-3008-4871-b86d-5a750b9f03e3", "scope": "", "expires_in": "3599", "refresh_count": "0", "status": "approved" }
Dari hasil response proses autentikasi tersebut nilai properti yang perlu diperhatikan adalah properti:
- token_type, tipe token yang perlu ada saat pertukaran data, berisi BearerToken yang berarti menggunakan otorisasi Bearer token
- access_token, nilai ini adalah token yang akan terus dipakai saat melakukan pertukaran data
- expires_in, menunjukan masa aktif access_token dalam detik, saat ini mempunyai masa aktif 1 jam (3600 detik)
Contoh autentikasi menggunakan cURL:
curl --insecure --location --request POST "https://api-satusehat-dev.dto.kemkes.go.id/oauth2/v1/accesstoken?grant_type=client_credentials" --header "Content-Type: application/x-www-form-urlencoded" --data-urlencode "client_id=<nilai_client_id>" --data-urlencode "client_secret=<nilai_client_secret>"
<< Tahapan Integrasi | Halaman Utama | Registrasi Struktur Organisasi >> |
---|