Endpoints SSO
Berikut adalah referensi lengkap URL endpoints yang disediakan oleh Server Backend SSO untuk melakukan integrasi otentikasi.
- Base URL (Production):
https://be.sso.msdp.web.id/api/auth - Base URL (Lokal):
http://localhost:5001/api/auth
1. Authorization Endpoint
Endpoint ini menampilkan halaman login SSO untuk meminta otorisasi dari pengguna.
- URL:
GET /oauth2/authorize - Query Parameters:
Parameter Tipe Wajib Keterangan response_typestringYa Harus diisi dengan code.client_idstringYa Client ID aplikasi Anda yang terdaftar. redirect_uristringYa URL Callback yang terdaftar. statestringYa String acak unik untuk keamanan CSRF. scopestringTidak Ruang lingkup data (misal: openid profile email).code_challengestringOpsional Hash PKCE untuk proteksi authorization code (direkomendasikan). code_challenge_methodstringOpsional Metode hash PKCE, harus diisi dengan S256(jika menggunakan PKCE).
2. Token Endpoint
Endpoint ini diakses secara internal oleh server aplikasi klien (backend) untuk menukar kode otorisasi menjadi token akses.
URL:
POST /oauth2/tokenContent-Type:
application/x-www-form-urlencoded(Wajib)Body Parameters:
Parameter Tipe Wajib Keterangan grant_typestringYa Harus diisi dengan authorization_code.codestringYa Kode otorisasi yang didapatkan dari callback. client_idstringYa Client ID aplikasi Anda. client_secretstringYa Client Secret aplikasi Anda. redirect_uristringYa URL Callback yang terdaftar. code_verifierstringOpsional String verifier PKCE asli (wajib jika menyertakan code_challengedi langkah pertama).Response Sukses (200 OK):
json{ "access_token": "ey...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "ref_...", "id_token": "ey..." }
3. User Info Endpoint
Endpoint ini diakses secara internal untuk mengambil profil data pengguna yang sedang login berdasarkan token akses yang dilampirkan pada header otorisasi.
URL:
GET /oauth2/userinfoHeaders:
Authorization: Bearer ACCESS_TOKEN_ANDA
Response Sukses (200 OK):
json{ "id": "user-uuid-1234", "name": "Muhammad Zain", "email": "zain@gmail.com", "emailVerified": true }
