Gå til innholdet

Referanse for SSO-konfigurasjon

Alt som kan konfigureres for enkel pålogging, på ett sted. Verdiene ligger i radene i sso_connections i global.db (serveromfattende med vilje), og redigeres via Innstillinger → Server → Enkel pålogging eller RPC-operasjonene sso.*. Den lagrede raden er den eneste sannhetskilden — det finnes ingen miljøvariabelvei inn via CC_SAML_* / CC_OIDC_* (en tilkobling som kan komme fra to steder, er en tilkobling innstillingsskjermen kan være uenig i).

Felt Gjelder for Standard Betydning
enabled begge av innlogginger kan bruke denne tilkoblingen
idpMetadataXml SAML — IdP-ens EntityDescriptor-XML (må være satt for å kunne slås på)
spEntityId SAML <origin>/saml vår entitets-ID, festet når origin varierer
emailAttribute SAML email attributtet som bærer e-postadressen; en NameID formet som en e-postadresse er reservevalget
displayNameAttribute SAML displayName attributt for visningsnavn
groupsAttribute SAML groups attributt for gruppenavn
clockSkewSeconds SAML 90 tillatt skjevhet i levetidsvalideringen
allowIdpInitiated SAML av godta uoppfordrede Responses (uten InResponseTo)
wantResponseSigned SAML av krev signatur på Response-roten (signaturer på assertions kreves alltid)
issuer OIDC — utstederens basis-URL (må være satt for å kunne slås på)
clientId OIDC — ID for offentlig klient (må være satt for å kunne slås på)
clientSecret OIDC — bare konfidensielle klienter; lagres i hemmelighetsfilen med 0600-rettigheter, aldri i databasen — skrivbar kun over RPC (sso.getConfig rapporterer clientSecretPresent)
groupsClaim OIDC groups claim som bærer gruppenavn
defaultRole begge member rolle når ingen gruppe mapper — aldri owner
groupRoleMap begge {} gruppe → rolle; owner-mappinger avvises ved lagring
autoMember begge på legg brukere automatisk til i alle arbeidsområder ved første innlogging
allowJit begge på provisjoner ukjente brukere ved innlogging

SSO-tilkoblinger blir ikke sådd fra miljøet. Ett gjenstående prosessflagg handler om overleveringen til nettleseren, ikke om tilkoblingsraden:

Variabel / flagg Betydning
--web-client-url / CC_SERVER_WEB_CLIENT_URL origin som SSO-callbacker sender nettleseren tilbake til (legitimasjonen følger URL-fragmentet). Hvis den ikke er satt, holder overleveringen seg på samme origin.

Selve utsteder-URL-en må være https (http godtas bare for loopback-utstedere som localhost, 127.0.0.1 og ::1).

Endepunkt Autentisering Formål
GET /saml/login?relay=… ingen (omdirigering) start en SP-initiert innlogging; relay=desktop overlater til appen, relay=web-popup sender en postMessage til koble-fanen som venter (den oppgir sin client_origin, som bare godtas når origin-tillatelseslisten stoler på den)
POST /saml/acs ingen (IdP-POST) assertion-forbrukeren — verifiserer, provisjonerer, utsteder
GET /saml/metadata ingen vår SP-EntityDescriptor
GET /oidc/login?relay=… / GET /oidc/callback ingen OIDC-rundturen; relay=desktop overlater til appen, relay=web-popup til koble-fanen som venter (samme client_origin-konvensjon)
GET /auth/providers ingen, CORS * sonden i koble-skjermen: tilbudte SSO-tilkoblinger (id/kind/label) + pairingEnabled
/scim/v2/Users… Bearer (SCIM-token) Users create/get/list+filter/PUT/PATCH/DELETE
/scim/v2/Groups Bearer skrivebeskyttet; gruppepush svarer 501 med vilje
/scim/v2/ServiceProviderConfig Bearer kapabilitetsdokument

Alle sso.*-operasjoner er serveromfattende og forbeholdt servereieren (operatøren av installasjonen, ServerAuthority.serverOwner). Det er ikke nok å eie et arbeidsområde; paring alene gir dem aldri tilgang.

Operasjon Formål
sso.getConfig den lagrede tilkoblingen for en type
sso.saveConfig valider, lagre og bruk umiddelbart
sso.status flagg for aktivert/konfigurert, om SCIM-tokenet finnes, kanonisk origin
sso.testConnection test en tilkobling uten nettleserrundturen (SAML: tolking av metadata + bygging av AuthnRequest; OIDC: utsteder-oppdagelse), med valgfrie verdier fra skjermen som ikke er lagret
sso.spMetadata generer SP-EntityDescriptor for en origin
sso.setPairingEnabled tillat/forby manuell paring (invitasjonskoder, paringsnøkler); å nekte å slå det av mens ingen fungerende SSO-tilkobling finnes, verner mot utestenging
sso.sessionPolicy les installasjonens maksalder og inaktivitetsgrense for enhetslegitimasjon (minutter; 0 = ikke satt)
sso.setSessionPolicy sett disse grensene; håndheves ved enhetssjekken, annonseres ikke til klienter
sso.scimRegenerateToken generer og returner SCIM-bearer-tokenet (én gang)

Feil i cc_saml_verify_response har en stabil kode:

Kode Betydning
signature manglende, utroverdig eller endret signatur, eller en algoritme/transformasjon som ikke er tillatt
expired utenfor NotBefore/NotOnOrAfter (ut over skjevheten)
audience audience-restriksjonen nevner ikke oss
destination responsens destination er ikke vår ACS
request_match InResponseTo samsvarer ikke med en ventende forespørsel, eller er uoppfordret mens det ikke er tillatt
issuer utstederen er ikke den konfigurerte IdP-en
recipient mottakeren i subject-confirmation er ikke vår ACS
malformed feil på XML-/skjemanivå
status statusen IdP-en rapporterte, var ikke Success
invalid / internal alt annet / feil ved skjøten
  • sso_connections (global.db) — én rad per type, PÅ TVERS AV ARBEIDSOMRÅDER MED VILJE.
  • users.sso_subject + users.sso_issuer — festingen av leverandørsubjectet, unik per (issuer, subject) via en delvis indeks.
  • users.deactivated_at — SCIM-tidsstempelet for deaktivering.
  • SCIM-bearer-tokenet og OIDC-klienthemmeligheten ligger i hemmelighetsfilen med 0600-rettigheter, aldri i databasen.