KamoCRM

Accedi con Google, Microsoft, Apple, LinkedIn, Facebook e GitHub - il modulo di federazione (ID1.1)

FeatureSecurityService
Shipped
15 novembre 2026 alle ore 02:41 UTC
Author
Kamo
Commit
c75df92

federation/: una parte dipendente da OIDC (PKCE S256 + nonce + stato) per Google / Microsoft / Apple / LinkedIn, e adattatori OAuth2 per GitHub (/utente + primario Verified /user/emails) e Facebook (/me + appsecret_proof), dietro uno L'interfaccia ProviderAdapter. id_tokens viene controllata rispetto al JWKS di ciascun provider (cached, recupero anticipato su un bambino sconosciuto al massimo una volta al minuto), emittente, audience/azp, expiry/iat e nonce; l'emittente di Microsoft è controllato contro Il token ha la propria chiave tid e identità sull'emittente del tenant + oid, mai sulla sua email. Il segreto client di Apple è un ES256 JWT firmato dal .p8 del registro (150 giorni, cached); il suo nome arriva una sola volta, come appleUser. Registrazioni di avvio/collegamento/iscrizione live in Redis (FEDST/FEDLK/FEDSU/FEDLS), uso singolo, spesi sulla strada e ripristinati con il loro TTL rimanente (e il comprovato identità) per colpa che non è del membro - mai dopo un legame sbagliato, Un codice rifiutato o un token falsificato. Collegamento: ricerca per (emittente, oggetto, connection_key); una risposta esistente NOT_LINKED e richiede una prova - password + il secondo fattore dell'account, o un codice all'email ACCOUNT (5 tentativi, 3 invii); LINK da una sessione connessa Ogni connessione/disconnessione invia l'e-mail dell'account e scrive il codice IDENTITY_LINKED / IDENTITY_UNLINKED. Un'identità collegata viene passata alla password A valle del percorso (FederatedSignInCompleter -> gate degli account, regole host/picker, regole di accesso, SignInCompletionService) più la politica dell'organizzazione (provider consentito MFA richiesto ma non iscritto = rifiutato qui). Non addebitato alla scala di blocco; invece, budget per callback/link per IP. I client provengono da PlatformOAuthClientResolver per i tipi *_SIGNIN - un'organizzazione La propria app solo sul proprio dominio verificato - e sono offerti solo a Config_json.signinStatus ENABLED (CONFIGURATO = solo piattaforma org). Nessuno è Configurato, quindi nulla di visibile cambia.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing