Referensi konfigurasi SSO
Semua hal yang dapat dikonfigurasi pada masuk tunggal, di satu tempat. Nilainya
berada di baris sso_connections pada global.db (memang dirancang untuk
seluruh server), diedit melalui Pengaturan → Server → Single sign-on atau
operasi RPC sso.*. Baris yang tersimpan adalah satu-satunya sumber kebenaran —
tidak ada jalur environment CC_SAML_* / CC_OIDC_* (koneksi yang dapat
berasal dari dua tempat adalah koneksi yang bisa saja bertentangan dengan layar
pengaturan).
Bidang koneksi
Bagian berjudul “Bidang koneksi”| Bidang | Berlaku untuk | Bawaan | Arti |
|---|---|---|---|
enabled |
keduanya | nonaktif | login dapat memakai koneksi ini |
idpMetadataXml |
SAML | — | XML EntityDescriptor milik IdP (wajib untuk mengaktifkan) |
spEntityId |
SAML | <origin>/saml |
entity ID kami, dipatok saat origin-nya bervariasi |
emailAttribute |
SAML | email |
atribut pembawa email; NameID berbentuk email adalah cadangannya |
displayNameAttribute |
SAML | displayName |
atribut nama tampilan |
groupsAttribute |
SAML | groups |
atribut nama grup |
clockSkewSeconds |
SAML | 90 | toleransi pergeseran untuk validasi masa berlaku |
allowIdpInitiated |
SAML | nonaktif | terima Response yang tidak diminta (tanpa InResponseTo) |
wantResponseSigned |
SAML | nonaktif | wajibkan tanda tangan di akar Response (tanda tangan asertion selalu diwajibkan) |
issuer |
OIDC | — | URL dasar issuer (wajib untuk mengaktifkan) |
clientId |
OIDC | — | id klien publik (wajib untuk mengaktifkan) |
clientSecret |
OIDC | — | hanya untuk klien rahasia; disimpan di berkas rahasia bermode 0600, tidak pernah di basis data — hanya-tulis melalui RPC (sso.getConfig melaporkan clientSecretPresent) |
groupsClaim |
OIDC | groups |
claim pembawa nama grup |
defaultRole |
keduanya | member |
peran saat tidak ada grup yang dipetakan — tidak pernah owner |
groupRoleMap |
keduanya | {} |
grup → peran; pemetaan pemilik ditolak saat disimpan |
autoMember |
keduanya | aktif | tambahkan pengguna secara otomatis ke setiap ruang kerja saat login pertama |
allowJit |
keduanya | aktif | sediakan pengguna tak dikenal saat login |
Konfigurasi proses
Bagian berjudul “Konfigurasi proses”Koneksi SSO tidak diisi dari environment. Satu flag proses yang tersisa berkaitan dengan penyerahan ke browser, bukan baris koneksinya:
| Variabel / flag | Arti |
|---|---|
--web-client-url / CC_SERVER_WEB_CLIENT_URL |
origin yang menjadi pantulan browser oleh callback SSO (kredensial menumpang pada fragmen URL). Tanpa nilai, penyerahannya tetap se-origin. |
URL issuer itu sendiri harus https (http hanya diterima untuk issuer
loopback localhost, 127.0.0.1, dan ::1).
Endpoint HTTP
Bagian berjudul “Endpoint HTTP”| Endpoint | Auth | Tujuan |
|---|---|---|
GET /saml/login?relay=… |
tidak ada (pengalihan) | mulai login yang diprakarsai SP; relay=desktop menyerahkan ke aplikasi, relay=web-popup mengirim postMessage ke tab koneksi yang menunggu (yang menyatakan client_origin-nya, dihormati hanya ketika daftar-izin origin mempercayainya) |
POST /saml/acs |
tidak ada (POST dari IdP) | konsumer asertion — memverifikasi, menyediakan, menerbitkan |
GET /saml/metadata |
tidak ada | EntityDescriptor SP kami |
GET /oidc/login?relay=… / GET /oidc/callback |
tidak ada | perjalanan bolak-balik OIDC; relay=desktop menyerahkan ke aplikasi, relay=web-popup ke tab koneksi yang menunggu (konvensi client_origin yang sama) |
GET /auth/providers |
tidak ada, CORS * |
probe layar koneksi: koneksi SSO yang ditawarkan (id/kind/label) + pairingEnabled |
/scim/v2/Users… |
Bearer (token SCIM) | Users create/get/list+filter/PUT/PATCH/DELETE |
/scim/v2/Groups |
Bearer | hanya-baca; push grup menjawab 501 secara desain |
/scim/v2/ServiceProviderConfig |
Bearer | dokumen kapabilitas |
Operasi RPC
Bagian berjudul “Operasi RPC”Semua operasi sso.* berskala server dan dibatasi hanya untuk pemilik
server (operator instalasi, ServerAuthority.serverOwner). Memiliki sebuah
ruang kerja saja tidak cukup; sekadar melakukan pemasangan pun tidak pernah
memberikannya.
| Operasi | Tujuan |
|---|---|
sso.getConfig |
koneksi tersimpan untuk suatu jenis |
sso.saveConfig |
validasi, simpan, dan terapkan langsung |
sso.status |
flag aktif/terkonfigurasi, keberadaan token SCIM, origin kanonis |
sso.testConnection |
uji koneksi tanpa perjalanan bolak-balik browser (SAML: parse metadata + bangun AuthnRequest; OIDC: penemuan issuer), dengan nilai di layar yang belum disimpan sebagai opsi |
sso.spMetadata |
terbitkan EntityDescriptor SP untuk sebuah origin |
sso.setPairingEnabled |
izinkan/larang pemasangan manual (kode undangan, kunci pemasangan); menolak menonaktifkannya selama belum ada koneksi SSO yang berfungsi mencegah pengguna terkunci di luar |
sso.sessionPolicy |
baca usia maksimum dan batas waktu menganggur kredensial perangkat instalasi (menit; 0 = tidak disetel) |
sso.setSessionPolicy |
setel batas tersebut; ditegakkan saat pemeriksaan perangkat, tidak diumumkan ke klien |
sso.scimRegenerateToken |
buat + kembalikan token bearer SCIM (sekali saja) |
Kode error validasi
Bagian berjudul “Kode error validasi”Kegagalan cc_saml_verify_response membawa kode yang stabil:
| Kode | Arti |
|---|---|
signature |
tanda tangan hilang/tidak tepercaya/dirusak, atau algoritme/transformasi yang tidak diizinkan |
expired |
di luar NotBefore/NotOnOrAfter (melampaui pergeseran) |
audience |
pembatasan audiens tidak menyebut kami |
destination |
tujuan respons bukan ACS kami |
request_match |
InResponseTo tidak cocok dengan permintaan yang tertunda, atau tidak diminta padahal tidak diizinkan |
issuer |
issuer bukan IdP yang dikonfigurasi |
recipient |
penerima konfirmasi subjek bukan ACS kami |
malformed |
kegagalan pada tingkat XML/skema |
status |
status yang dilaporkan IdP bukan Success |
invalid / internal |
apa pun selain itu / kegagalan pada seam |
Permukaan basis data
Bagian berjudul “Permukaan basis data”sso_connections(global.db) — satu baris per jenis, LINTAS RUANG KERJA MEMANG DIRANCANG DEMIKIAN.users.sso_subject+users.sso_issuer— penyematan subjek penyedia, unik per(issuer, subject)melalui indeks parsial.users.deactivated_at— stempel penonaktifan SCIM.- Token bearer SCIM dan client secret OIDC berada di berkas rahasia bermode 0600, tidak pernah di basis data.