Langkau ke kandungan

Rujukan konfigurasi SSO

Semua yang boleh dikonfigurasikan tentang daftar masuk tunggal, di satu tempat. Nilai disimpan dalam baris sso_connections bagi global.db (berskop pelayan mengikut reka bentuk), diedit melalui Tetapan → Pelayan → Daftar masuk tunggal atau operasi RPC sso.*. Baris yang disimpan ialah satu-satunya sumber kebenaran — tiada laluan persekitaran CC_SAML_* / CC_OIDC_* (sambungan yang boleh tiba dari dua tempat ialah sambungan yang skrin tetapan boleh bercanggah dengannya).

Medan Terpakai pada Lalai Maksud
enabled kedua-duanya mati log masuk boleh menggunakan sambungan ini
idpMetadataXml SAML — XML EntityDescriptor IdP (diperlukan untuk mendayakan)
spEntityId SAML <origin>/saml ID entiti kami, disematkan apabila asalan berbeza
emailAttribute SAML email atribut yang membawa e-mel; NameID berbentuk e-mel ialah sandaran
displayNameAttribute SAML displayName atribut nama paparan
groupsAttribute SAML groups atribut nama kumpulan
clockSkewSeconds SAML 90 elaun sisihan pengesahan jangka hayat
allowIdpInitiated SAML mati terima Jawapan tidak diminta (tiada InResponseTo)
wantResponseSigned SAML mati wajibkan tandatangan pada akar Jawapan (tandatangan penegasan sentiasa diperlukan)
issuer OIDC — URL asas penerbit (diperlukan untuk mendayakan)
clientId OIDC — id klien awam (diperlukan untuk mendayakan)
clientSecret OIDC — klien sulit sahaja; disimpan dalam fail rahsia 0600, tidak pernah dalam pangkalan data — tulis sahaja melalui RPC (sso.getConfig melaporkan clientSecretPresent)
groupsClaim OIDC groups tuntutan yang membawa nama kumpulan
defaultRole kedua-duanya member peranan apabila tiada kumpulan dipetakan — tidak pernah owner
groupRoleMap kedua-duanya {} kumpulan → peranan; pemetaan pemilik ditolak semasa menyimpan
autoMember kedua-duanya hidup tambah pengguna secara automatik ke setiap ruang kerja pada log masuk pertama
allowJit kedua-duanya hidup peruntukkan pengguna tidak diketahui semasa log masuk

Sambungan SSO tidak disemai daripada persekitaran. Satu baki flag proses adalah tentang penyerahan penyemak imbas, bukan baris sambungan:

Pemboleh ubah / flag Maksud
--web-client-url / CC_SERVER_WEB_CLIENT_URL asalan panggil balik SSO memantulkan penyemak imbas ke (kelayakan menunggang dalam serpihan URL). Tidak ditetapkan mengekalkan penyerahan pada asalan yang sama.

URL penerbit itu sendiri mestilah https (http diterima untuk penerbit loopback localhost, 127.0.0.1 dan ::1 sahaja).

Titik akhir Pengesahan Tujuan
GET /saml/login?relay=… tiada (ubah hala) mulakan log masuk yang dimulakan SP; relay=desktop menyerahkan kepada apl, relay=web-popup postMessage kepada tab sambungan yang menunggu (yang mengisytiharkan client_originnya, dihormati hanya apabila senarai asalan yang dibenarkan mempercayainya)
POST /saml/acs tiada (POST IdP) konsumer penegasan — mengesahkan, memperuntukkan, menjana
GET /saml/metadata tiada EntityDescriptor SP kami
GET /oidc/login?relay=… / GET /oidc/callback tiada perjalanan pergi-balik OIDC; relay=desktop menyerahkan kepada apl, relay=web-popup kepada tab sambungan yang menunggu (konvensyen client_origin yang sama)
GET /auth/providers tiada, CORS * kuar skrin sambungan: sambungan SSO yang ditawarkan (id/kind/label) + pairingEnabled
/scim/v2/Users… Bearer (token SCIM) Pengguna: cipta/dapat/senarai+tapis/PUT/PATCH/DELETE
/scim/v2/Groups Bearer baca sahaja; tolakan kumpulan menjawab 501 mengikut reka bentuk
/scim/v2/ServiceProviderConfig Bearer dokumen keupayaan

Semua operasi sso.* berskop pelayan dan digerbangkan kepada pemilik pelayan (operator pemasangan itu, ServerAuthority.serverOwner). Memiliki ruang kerja tidak cukup; pasangan sahaja tidak pernah memberikan operasi itu.

Operasi Tujuan
sso.getConfig sambungan yang disimpan bagi sesuatu jenis
sso.saveConfig sahkan, kekalkan dan gunakan secara langsung
sso.status flag didayakan/dikonfigurasikan, kehadiran token SCIM, asalan kanonik
sso.testConnection uji sambungan tanpa perjalanan pergi-balik penyemak imbas (SAML: penghuraian metadata + binaan AuthnRequest; OIDC: penemuan penerbit), dengan nilai pada skrin yang belum disimpan secara pilihan
sso.spMetadata keluarkan EntityDescriptor SP untuk sesuatu asalan
sso.setPairingEnabled benarkan/larang pasangan manual (kod jemputan, kunci pasangan); enggan mematikannya selagi tiada sambungan SSO yang berfungsi melindungi daripada terkunci di luar
sso.sessionPolicy baca umur maksimum kelayakan peranti dan tamat masa melahu pemasangan itu (minit; 0 = tidak ditetapkan)
sso.setSessionPolicy tetapkan had tersebut; dikuatkuasakan pada semakan peranti, tidak dihebahkan kepada klien
sso.scimRegenerateToken jana + kembalikan token pembawa SCIM (sekali)

Kegagalan cc_saml_verify_response membawa kod yang stabil:

Kod Maksud
signature tandatangan hilang/tidak dipercayai/diubah suai, atau algoritma/transformasi yang tidak dibenarkan
expired di luar NotBefore/NotOnOrAfter (melebihi sisihan)
audience sekatan audiens tidak menamakan kami
destination destinasi jawapan bukan ACS kami
request_match InResponseTo tidak sepadan dengan permintaan yang belum selesai, atau tidak diminta semasa dilarang
issuer penerbit bukan IdP yang dikonfigurasikan
recipient penerima pengesahan subjek bukan ACS kami
malformed kegagalan pada aras XML/skema
status status yang dilaporkan IdP bukan Success
invalid / internal apa-apa yang lain / kegagalan sempadan
  • sso_connections (global.db) — satu baris bagi setiap jenis, MERENTAS RUANG KERJA MENGIKUT REKA BENTUK.
  • users.sso_subject + users.sso_issuer — sematan subjek penyedia, unik bagi setiap (issuer, subject) melalui indeks separa.
  • users.deactivated_at — cap nyahaktifan SCIM.
  • Token pembawa SCIM dan rahsia klien OIDC disimpan dalam fail rahsia 0600, tidak pernah dalam pangkalan data.