Konfigurasi SSO
Konfigurasi SSO
Panduan ini ditujukan untuk admin IT yang menghubungkan penyedia identitas (IdP) perusahaan ke InterMIND. Setelah konfigurasi, anggota masuk dari halaman login biasa: Sign in with SSO → email kerja → IdP Anda → kembali ke InterMIND.
Tersedia pada: paket Business dan Enterprise Dikonfigurasi oleh: pemilik atau admin tim Protokol: OpenID Connect (OIDC). Login SAML 2.0 sedang dikembangkan — konfigurasi SAML disimpan tetapi belum dapat digunakan untuk masuk.
Prasyarat
- Domain terverifikasi — verifikasi domain email Anda melalui catatan DNS TXT terlebih dahulu (lihat Manajemen Domain). Login SSO hanya menerima akun yang domain emailnya telah diverifikasi oleh tim Anda; inilah batas tenant.
- IdP yang mendukung OIDC dengan discovery — harus menyajikan
/.well-known/openid-configurationdi bawah Issuer URL. Okta, Microsoft Entra ID, dan Google semuanya mendukungnya.
Yang perlu didaftarkan di IdP Anda
Buat OIDC Web Application di IdP Anda dengan:
| Pengaturan | Nilai |
|---|---|
| Redirect URI (callback) | https://intermind.com/api/auth/sso/callback — juga ditampilkan di kartu SSO setelah Anda memilih OIDC |
| Grant type | Authorization Code (PKCE S256 digunakan secara otomatis) |
| Scopes | openid email profile |
ID token yang diterbitkan IdP Anda harus menyertakan email pengguna, dan domain email tersebut harus salah satu dari domain yang telah Anda verifikasi — jika tidak, login akan ditolak.
Kemudian isi kartu SSO pada halaman Integrations:
| Bidang | Yang harus ditempel |
|---|---|
| Display Name | Label apa pun yang akan dikenali anggota Anda |
| Issuer URL | Issuer IdP Anda — URL yang menyajikan /.well-known/openid-configuration |
| Authorization URL | authorization_endpoint dari dokumen discovery tersebut |
| Client ID / Client Secret | Dari aplikasi yang Anda daftarkan |
Client secret dienkripsi saat disimpan dan tidak pernah dikembalikan ke peramban setelah penyimpanan.
Okta
- Konsol admin → Applications → Create App Integration → metode login OIDC, jenis aplikasi Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - Tetapkan pengguna atau grup yang harus memiliki akses
- Salin Client ID dan Client Secret
- Di InterMIND: Issuer URL = URL organisasi Okta Anda (mis.
https://acme.okta.com, atau issuer authorization server Anda sepertihttps://acme.okta.com/oauth2/defaultjika Anda menggunakannya); Authorization URL =authorization_endpointdari<issuer>/.well-known/openid-configuration
Microsoft Entra ID (Azure AD)
- Entra admin center → App registrations → New registration
- Platform Web, redirect URI
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret — segera salin Value dari secret tersebut
- Client ID = Application (client) ID pada halaman Overview
- Pastikan ID token membawa email pengguna: Token configuration → Add optional claim → ID → email
- Di InterMIND: Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0; Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
Tidak perlu pendaftaran aplikasi. Pada kartu SSO, pilih jenis penyedia Google Workspace dan simpan — anggota pada domain terverifikasi Anda masuk dengan akun Google mereka dan otomatis bergabung dengan tim Anda. (Google juga dapat dihubungkan sebagai penyedia OIDC generik dengan issuer https://accounts.google.com jika Anda lebih memilih kredensial klien eksplisit.)
Uji koneksi
- Buka halaman login di jendela privat/incognito
- Klik Sign in with SSO dan masukkan email kerja pada domain terverifikasi Anda
- Anda diarahkan ke IdP Anda; setelah autentikasi, Anda kembali ke InterMIND dalam keadaan masuk
- Login tercatat di audit log tim (dapat diekspor dari halaman Users) sebagai
auth.logindengan metodesso
Pemecahan masalah
| Gejala | Penyebab |
|---|---|
| "SSO is not configured" setelah memasukkan email | Tidak ada konfigurasi SSO aktif yang cocok dengan domain email tersebut — periksa apakah domain sudah terverifikasi dan kartu SSO telah disimpan |
SSO login is not available: plan | Paket tim tidak lagi mencakup SSO |
SSO login is not available: domain-not-verified | Domain masih menunggu verifikasi DNS |
SSO login is not available: config-incomplete | Client ID atau Client Secret hilang — simpan ulang kartu SSO |
SSO login is not available: type-unsupported | Konfigurasi yang tersimpan adalah SAML — login SAML belum tersedia |
SSO IdP discovery failed | Issuer URL salah atau tidak menyajikan /.well-known/openid-configuration |
| "login session expired, start again" | Lebih dari 5 menit berlalu antara memulai login dan callback IdP |
| Login ditolak setelah IdP mengarahkan kembali | IdP mengembalikan email di luar domain terverifikasi Anda, atau tidak ada klaim email sama sekali (Entra: tambahkan klaim email opsional) |
Properti keamanan
Untuk kuesioner keamanan: alur SSO adalah Authorization Code dengan PKCE (S256), state, dan nonce; tanda tangan ID token divalidasi terhadap JWKS IdP, beserta issuer dan audience; IdP hanya berwenang untuk domain yang diverifikasi melalui DNS — assertion untuk email lain mana pun tidak akan menghasilkan sesi; client secret OIDC dienkripsi saat disimpan; setiap login SSO masuk ke audit log tim. Gerbang paket, domain, dan konfigurasi diberlakukan di sisi server baik pada awal login maupun pada callback.