Ikhtisar
Muhajir Studio dapat berperan sebagai OpenID Connect (OIDC) login provider untuk aplikasi pihak ketiga. Aplikasi terdaftar mengarahkan pengguna ke Muhajir Studio untuk sign in, Muhajir Studio menangani authentication, email verification, consent, dan token issuance, lalu aplikasi dapat memakai bearer access token yang diterima untuk memanggil external API Muhajir Studio.
URL Layanan Produksi
Gunakan URL layanan produksi berikut saat berintegrasi dengan Muhajir Studio:
| Service | Base URL | Digunakan untuk |
|---|---|---|
| API | https://api.muhajirstudio.com/ | OIDC endpoints, token exchange, public metadata, dan /api/external/*. |
| Main web | https://login.muhajirstudio.com/ | Login, signup, email verification, dan consent pages. |
| Admin web | https://admin.muhajirstudio.com/ | Application registration dan management di web-admin. |
Untuk integrasi sandbox atau staging, gunakan service URLs ekuivalen yang diberikan oleh kontak Muhajir Studio Anda.
Yang Disediakan Login Provider
Peran Login Provider
Aplikasi pihak ketiga memulai login dengan mengarahkan browser ke OIDC authorization endpoint Muhajir Studio:
GET /api/auth/oauth2/authorize
OIDC provider Muhajir Studio mewajibkan Authorization Code Flow with PKCE. Authorization request harus memakai response_type=code, code_challenge, dan code_challenge_method=S256. Plain code challenge tidak diterima.
Jika pengguna belum sign in, Muhajir Studio mengarahkan pengguna ke UI login web-main. Jika pengguna sudah sign in tetapi email belum terverifikasi, Muhajir Studio mengarahkan pengguna ke /verify-email sebelum authorization selesai. Parameter OIDC asli dipertahankan melalui login, signup, verification, dan halaman email-verified sehingga authorization request dapat dilanjutkan dengan aman.
Peran API Provider
Setelah aplikasi menerima authorization code, aplikasi menukar code tersebut di:
POST /api/auth/oauth2/token
Token response dapat berisi access_token, id_token, refresh_token opsional, expires_in, token_type, dan scope. External API call memakai access token sebagai bearer token.
Stable third-party current-user endpoint adalah:
GET /api/external/me
Endpoint ini membutuhkan OIDC bearer access token dan scope openid. Field opsional hanya dikembalikan saat access token memiliki scope yang sesuai:
| Scope | Menambahkan |
|---|---|
openid | sub |
profile | name, picture |
email | email, emailVerified |
permissions | permissions |
Client yang Dikelola Admin
Aplikasi didaftarkan oleh admin Muhajir Studio di web-admin. Client yang dibuat admin adalah Public PKCE clients:
- Aplikasi menerima public
client_id. - Tidak ada
client_secretyang diterbitkan. - Aplikasi harus memakai Authorization Code Flow with PKCE.
- Admin mengatur
allowedWebOriginsdanredirectPaths; Muhajir Studio menurunkan OAuthredirectUrisyang tepat dari setiap kombinasi origin/path. - Admin memilih scope yang diizinkan untuk aplikasi. Muhajir Studio menerapkan scope set yang dikonfigurasi pada aplikasi terdaftar selama authorization.
Gambaran Alur Integrasi
1. Admin Setup
Admin mendaftarkan aplikasi pihak ketiga di web-admin:
- Isi client name dan description opsional untuk consent screen yang terlihat oleh pengguna.
- Tambahkan satu atau lebih allowed web origins, misalnya
https://app.example.com. - Tambahkan satu atau lebih redirect paths, misalnya
/auth/callback. - Opsional, tambahkan post-verification redirect path, misalnya
/welcome. - Pilih OIDC scopes yang diizinkan.
- Bagikan
client_idyang dibuat ke developer aplikasi.
Muhajir Studio menurunkan full redirect URIs dari origins dan paths yang dikonfigurasi. Misalnya, https://app.example.com ditambah /auth/callback menjadi https://app.example.com/auth/callback.
2. User Login
Aplikasi mengarahkan pengguna ke /api/auth/oauth2/authorize dengan client_id, redirect_uri terdaftar yang tepat, parameter PKCE, serta nilai state/nonce. Muhajir Studio menangani langkah yang terlihat oleh pengguna:
- Sign in atau sign up melalui
web-main. - Verifikasi email jika diperlukan.
- Review consent screen dengan application name, logo, description, dan scope descriptions yang terdaftar.
- Approve atau deny access.
Consent approval dinonaktifkan jika Muhajir Studio tidak dapat memuat registered application metadata untuk request tersebut.
3. Developer Callback dan API Access
Setelah approval, Muhajir Studio redirect kembali ke redirect_uri aplikasi yang tepat dengan authorization code dan state asli. Aplikasi kemudian:
- Memverifikasi
state. - Menukar
codedancode_verifierdi/api/auth/oauth2/token. - Memvalidasi
id_tokenjika dipakai untuk local sign-in. - Memanggil
/api/external/medenganAuthorization: Bearer access_tokenuntuk mengambil scope-filtered Muhajir Studio user profile.
Lanjutkan ke Halaman Berikutnya
- Gunakan Public PKCE Login Quickstart untuk integrasi tercepat yang berjalan.
- Gunakan Mendaftarkan Aplikasi Pihak Ketiga saat mengatur konfigurasi aplikasi di
web-admin. - Gunakan OIDC Endpoints untuk detail endpoint tingkat protokol.
- Gunakan Current User API untuk kontrak response
/api/external/me.