Referens för SSO-konfiguration
Allt som går att konfigurera för enkel inloggning, på ett ställe. Värdena
ligger i sso_connections-raderna i global.db (serverövergripande av
design) och redigeras via Inställningar → Server → Enkel inloggning
eller sso.*-RPC-operationerna. Den sparade raden är den enda källan till
sanning — det finns ingen väg via miljövariablerna CC_SAML_* /
CC_OIDC_* (en anslutning som kan komma in från två håll är en som
inställningsskärmen kan säga emot).
Anslutningsfält
Avsnitt med rubriken “Anslutningsfält”| Fält | Gäller | Standard | Betydelse |
|---|---|---|---|
enabled |
båda | av | inloggningar får använda den här anslutningen |
idpMetadataXml |
SAML | — | IdP:ns EntityDescriptor-XML (krävs för att aktivera) |
spEntityId |
SAML | <origin>/saml |
vårt entity ID, fäst när origin varierar |
emailAttribute |
SAML | email |
attributet som bär e-postadressen; ett NameID i e-postform är reserven |
displayNameAttribute |
SAML | displayName |
attributet för visningsnamn |
groupsAttribute |
SAML | groups |
attributet för gruppnamn |
clockSkewSeconds |
SAML | 90 | tillåten klockskevning vid livstidsvalidering |
allowIdpInitiated |
SAML | av | acceptera oombedda Responses (utan InResponseTo) |
wantResponseSigned |
SAML | av | kräv en signatur på Response-roten (assertion-signaturer krävs alltid) |
issuer |
OIDC | — | utfärdarens bas-URL (krävs för att aktivera) |
clientId |
OIDC | — | publik klient-ID (krävs för att aktivera) |
clientSecret |
OIDC | — | endast konfidentiella klienter; lagras i hemlighetsfilen med 0600, aldrig i databasen — endast skrivbar över RPC (sso.getConfig rapporterar clientSecretPresent) |
groupsClaim |
OIDC | groups |
claimet som bär gruppnamn |
defaultRole |
båda | member |
rollen när ingen grupp mappar — aldrig owner |
groupRoleMap |
båda | {} |
grupp → roll; ägarmappningar avvisas vid sparande |
autoMember |
båda | på | lägg automatiskt till användare i varje arbetsyta vid första inloggningen |
allowJit |
båda | på | provisionera okända användare vid inloggning |
Processkonfiguration
Avsnitt med rubriken “Processkonfiguration”SSO-anslutningar seedas inte från miljön. En kvarvarande processflagga handlar om överlämningen till webbläsaren, inte om anslutningsraden:
| Variabel / flagga | Betydelse |
|---|---|
--web-client-url / CC_SERVER_WEB_CLIENT_URL |
origin som SSO-callbackarna studsar webbläsaren till (inloggningsuppgiften färdas i URL-fragmentet). Om den inte är satt hålls överlämningen inom samma origin. |
Själva utfärdar-URL:en måste vara https (http accepteras bara för
loopback-utfärdarna localhost, 127.0.0.1 och ::1).
HTTP-slutpunkter
Avsnitt med rubriken “HTTP-slutpunkter”| Slutpunkt | Autentisering | Syfte |
|---|---|---|
GET /saml/login?relay=… |
ingen (omdirigering) | startar SP-initierad inloggning; relay=desktop lämnar över till appen, relay=web-popup postMessage:ar till fliken som väntar på anslutning (som deklarerar sin client_origin, vilket bara godtas när origin-tillåtelselistan litar på den) |
POST /saml/acs |
ingen (IdP-POST) | assertion-konsumenten — verifierar, provisionerar, utfärdar |
GET /saml/metadata |
ingen | vår SP EntityDescriptor |
GET /oidc/login?relay=… / GET /oidc/callback |
ingen | OIDC-rundturen; relay=desktop lämnar över till appen, relay=web-popup till fliken som väntar på anslutning (samma client_origin-konvention) |
GET /auth/providers |
ingen, CORS * |
proben från anslutningsskärmen: erbjudna SSO-anslutningar (id/kind/label) + pairingEnabled |
/scim/v2/Users… |
Bearer (SCIM-token) | Users create/get/list+filter/PUT/PATCH/DELETE |
/scim/v2/Groups |
Bearer | endast läsning; grupp-push svarar 501 av design |
/scim/v2/ServiceProviderConfig |
Bearer | kapabilitetsdokument |
RPC-operationer
Avsnitt med rubriken “RPC-operationer”Alla sso.*-operationer gäller hela servern och är förbehållna
serverägaren (installationens operatör, ServerAuthority.serverOwner).
Att äga en arbetsyta räcker inte; enbart parkoppling ger dem aldrig.
| Operation | Syfte |
|---|---|
sso.getConfig |
den sparade anslutningen för en typ |
sso.saveConfig |
validerar, sparar och tillämpar direkt |
sso.status |
flaggor för aktiverad/konfigurerad, om SCIM-token finns, kanoniskt origin |
sso.testConnection |
testar en anslutning utan webbläsarrundturen (SAML: metadata-tolkning + AuthnRequest-bygge; OIDC: utfärdarens discovery), med valfria osparade värden från skärmen |
sso.spMetadata |
genererar SP EntityDescriptor för ett origin |
sso.setPairingEnabled |
tillåter/förbjuder manuell parkoppling (inbjudningskoder, parkopplingsnycklar); att vägra stänga av den medan ingen fungerande SSO-anslutning finns skyddar mot utelåsning |
sso.sessionPolicy |
läser installationens maxålder och inaktivitetstimeout för enhetsuppgifter (minuter; 0 = inte satt) |
sso.setSessionPolicy |
sätter de gränserna; tillämpas vid enhetskontrollen, annonseras inte till klienter |
sso.scimRegenerateToken |
genererar + returnerar SCIM-bearer-token (en gång) |
Felkoder vid validering
Avsnitt med rubriken “Felkoder vid validering”Fel i cc_saml_verify_response bär en stabil kod:
| Kod | Betydelse |
|---|---|
signature |
saknad/ej betrodd/manipulerad signatur, eller en otillåten algoritm/transform |
expired |
utanför NotBefore/NotOnOrAfter (bortom skevningen) |
audience |
audience-begränsningen namnger inte oss |
destination |
svarets destination är inte vår ACS |
request_match |
InResponseTo matchar ingen väntande begäran, eller är oombett medan det inte är tillåtet |
issuer |
utfärdaren är inte den konfigurerade IdP:n |
recipient |
subject-confirmation-mottagaren är inte vår ACS |
malformed |
fel på XML-/schemanivå |
status |
statusen som IdP:n rapporterade var inte Success |
invalid / internal |
allt annat / fel i sömmen |
Databasytor
Avsnitt med rubriken “Databasytor”sso_connections(global.db) — en rad per typ, GEMENSAM FÖR ALLA ARBETSYTOR AV DESIGN.users.sso_subject+users.sso_issuer— fästningen av leverantörens subject, unik per(issuer, subject)via ett partiellt index.users.deactivated_at— stämpeln för SCIM-inaktivering.- SCIM-bearer-token och OIDC-klienthemligheten ligger i hemlighetsfilen med 0600, aldrig i databasen.