Tovább a tartalomhoz

SSO-konfigurációs referencia

Az egyszeri bejelentkezés minden beállítható eleme egy helyen. Az értékek a global.db sso_connections soraiban élnek (tervezés szerint szerver szintűek), és a Beállítások → Szerver → Egyszeri bejelentkezés felületen vagy az sso.* RPC-műveletekkel szerkeszthetők. A mentett sor az egyetlen igazságforrás — nincs CC_SAML_* / CC_OIDC_* környezeti útvonal (egy kapcsolat, amely két helyről érkezhetne, olyan, amellyel a beállítások képernyő ellentmondhat).

Mező Érvényes erre Alapértelmezés Jelentés
enabled mindkettő ki a bejelentkezések használhatják ezt a kapcsolatot
idpMetadataXml SAML — az IdP EntityDescriptor XML-je (az engedélyezéshez kötelező)
spEntityId SAML <origin>/saml a saját entitásazonosítónk, rögzítve, amikor az origin változik
emailAttribute SAML email az e-mail-címet hordozó attribútum; e-mail alakú NameID a tartalék
displayNameAttribute SAML displayName a megjelenítendő nevet hordozó attribútum
groupsAttribute SAML groups a csoportneveket hordozó attribútum
clockSkewSeconds SAML 90 az élettartam-ellenőrzés megengedett óraeltérése
allowIdpInitiated SAML ki kéretlen válaszok elfogadása (nincs InResponseTo)
wantResponseSigned SAML ki a válasz gyökérelemének aláírásának megkövetelése (az állítás aláírása mindig kötelező)
issuer OIDC — a kibocsátó alap URL-je (az engedélyezéshez kötelező)
clientId OIDC — nyilvános kliens azonosítója (az engedélyezéshez kötelező)
clientSecret OIDC — csak bizalmas kliensekhez; a 0600 jogosultságú titkosfájlban tárolva, soha nem az adatbázisban — RPC-n keresztül csak írható (sso.getConfig a clientSecretPresent értéket jelenti)
groupsClaim OIDC groups a csoportneveket hordozó claim
defaultRole mindkettő member a szerep, ha egyetlen csoport sem képeződik le — soha nem owner
groupRoleMap mindkettő {} csoport → szerep; a tulajdonosi leképezéseket mentéskor elutasítjuk
autoMember mindkettő be a felhasználók automatikus hozzáadása minden munkaterülethez az első bejelentkezéskor
allowJit mindkettő be ismeretlen felhasználók provisionálása bejelentkezéskor

Az SSO-kapcsolatok nem a környezetből töltődnek fel. Egy megmaradt folyamatkapcsoló a böngészős átadásról szól, nem a kapcsolatsorról:

Változó / kapcsoló Jelentés
--web-client-url / CC_SERVER_WEB_CLIENT_URL az az origin, amelyre az SSO-visszahívások visszairányítják a böngészőt (a hitelesítő adat az URL-fragmentumban utazik). Beállítatlanul az átadás azonos originen marad.

Magának a kibocsátó URL-jének https-nek kell lennie (http csak visszacsatolási (loopback) kibocsátókhoz, a localhost, 127.0.0.1 és ::1 esetében fogadható el).

Végpont Hitelesítés Cél
GET /saml/login?relay=… nincs (átirányítás) SP által indított bejelentkezés indítása; a relay=desktop átadja az alkalmazásnak, a relay=web-popup postMessage-t küld a várakozó csatlakozási lapnak (amely megadja a saját client_origin értékét; ezt csak akkor vesszük figyelembe, ha az origin-engedélylista megbízik benne)
POST /saml/acs nincs (IdP POST) az állításfeldolgozó — ellenőriz, provisionál, kiállít
GET /saml/metadata nincs a saját SP EntityDescriptor-ünk
GET /oidc/login?relay=… / GET /oidc/callback nincs az OIDC-körforduló; a relay=desktop átadja az alkalmazásnak, a relay=web-popup a várakozó csatlakozási lapnak (ugyanaz a client_origin konvenció)
GET /auth/providers nincs, CORS * a csatlakozási képernyő próbája: a felkínált SSO-kapcsolatok (id/kind/label) + pairingEnabled
/scim/v2/Users… Bearer (SCIM-token) Users létrehozás/lekérés/lista+szűrés/PUT/PATCH/DELETE
/scim/v2/Groups Bearer csak olvasható; a csoportpush tervezés szerint 501-gyel válaszol
/scim/v2/ServiceProviderConfig Bearer képességdokumentum

Minden sso.* művelet szerverhatókörű, és a szerver tulajdonosa (a telepítés operátora, ServerAuthority.serverOwner) számára engedélyezett. A munkaterület tulajdonlása nem elég; a puszta párosítás soha nem adja meg ezeket.

Művelet Cél
sso.getConfig egy adott fajtához mentett kapcsolat
sso.saveConfig érvényesítés, mentés és élő alkalmazás
sso.status engedélyezett/beállított jelzők, a SCIM-token megléte, a kanonikus origin
sso.testConnection kapcsolat tesztelése a böngészős körforduló nélkül (SAML: metaadat-feldolgozás + AuthnRequest felépítése; OIDC: kibocsátófelfedezés), opcionális, még nem mentett képernyőértékekkel
sso.spMetadata az SP EntityDescriptor kibocsátása egy originhez
sso.setPairingEnabled a kézi párosítás engedélyezése/tiltása (meghívókódok, párosítási kulcsok); a letiltás megtagadása, amíg nem létezik működő SSO-kapcsolat, a kizárás ellen véd
sso.sessionPolicy a telepítés eszközhitelesítő adatának maximális élettartamának és tétlenségi időtúllépésének beolvasása (percben; 0 = nincs beállítva)
sso.setSessionPolicy e korlátok beállítása; az eszközellenőrzésnél érvényesülnek, a klienseknek nem hirdetjük őket
sso.scimRegenerateToken a SCIM bearer token előállítása + visszaadása (egyszer)

A cc_saml_verify_response hibái stabil kódot hordoznak:

Kód Jelentés
signature hiányzó/nem megbízható/módosított aláírás, vagy nem engedélyezett algoritmus/transzformáció
expired a NotBefore/NotOnOrAfter tartományon kívül (az eltérésen túl)
audience a célközönség-korlátozás nem minket nevez meg
destination a válasz célállomása nem a mi ACS-ünk
request_match az InResponseTo nem egyezik egy függőben lévő kéréssel, vagy kéretlen, miközben tilos
issuer a kibocsátó nem a beállított IdP
recipient az alany-megerősítés címzettje nem a mi ACS-ünk
malformed XML-/sémaszintű hiba
status az IdP által jelentett állapot nem Success volt
invalid / internal minden más / illesztési hiba
  • sso_connections (global.db) — fajtánként egy sor, TERVEZÉS SZERINT MUNKATERÜLETEKEN ÁTNYÚLÓ.
  • users.sso_subject + users.sso_issuer — a szolgáltatói alany rögzítése, (issuer, subject) szerint egyedi, részleges indexszel.
  • users.deactivated_at — a SCIM-deaktiválás bélyegzője.
  • A SCIM bearer token és az OIDC kliens titkos kulcsa a 0600 jogosultságú titkosfájlban él, soha nem az adatbázisban.