Lewati ke konten utama

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:

ServiceBase URLDigunakan untuk
APIhttps://api.muhajirstudio.com/OIDC endpoints, token exchange, public metadata, dan /api/external/*.
Main webhttps://login.muhajirstudio.com/Login, signup, email verification, dan consent pages.
Admin webhttps://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:

ScopeMenambahkan
openidsub
profilename, picture
emailemail, emailVerified
permissionspermissions

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_secret yang diterbitkan.
  • Aplikasi harus memakai Authorization Code Flow with PKCE.
  • Admin mengatur allowedWebOrigins dan redirectPaths; Muhajir Studio menurunkan OAuth redirectUris yang 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:

  1. Isi client name dan description opsional untuk consent screen yang terlihat oleh pengguna.
  2. Tambahkan satu atau lebih allowed web origins, misalnya https://app.example.com.
  3. Tambahkan satu atau lebih redirect paths, misalnya /auth/callback.
  4. Opsional, tambahkan post-verification redirect path, misalnya /welcome.
  5. Pilih OIDC scopes yang diizinkan.
  6. Bagikan client_id yang 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:

  1. Sign in atau sign up melalui web-main.
  2. Verifikasi email jika diperlukan.
  3. Review consent screen dengan application name, logo, description, dan scope descriptions yang terdaftar.
  4. 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:

  1. Memverifikasi state.
  2. Menukar code dan code_verifier di /api/auth/oauth2/token.
  3. Memvalidasi id_token jika dipakai untuk local sign-in.
  4. Memanggil /api/external/me dengan Authorization: Bearer access_token untuk mengambil scope-filtered Muhajir Studio user profile.

Lanjutkan ke Halaman Berikutnya