- Enviado
- 15 de noviembre de 2026 a las 2:41 UTC
- Autor
- Kamo
- Commit
- c75df92
federation/: una parte de confianza de OIDC (PKCE S256 + nonce + estado) para Google / Microsoft / Apple / LinkedIn, y adaptadores OAuth2 para GitHub (/usuario + principal verified /user/emails) y Facebook (/me + appsecret_proof), detrás de uno Interfaz ProviderAdapter. id_tokens se comprueban con el JWKS de cada proveedor (caché, recuperación temprana en un niño desconocido como máximo una vez por minuto), emisor, audience/azp, expiry/iat y nonce; el emisor de Microsoft se comprueba contra el El token tiene su propia clave de tiempo e identidades en el emisor del inquilino + oid, nunca en su correo electrónico. El secreto de cliente de Apple es un JWT ES256 firmado desde el registro .p8 (150 días, Caché); su nombre llega una vez, como appleUser. Registros de inicio/enlace/registro en vivo en Redis (FEDST/FEDLK/FEDSU/FEDLS), de un solo uso, y restaurado con su TTL restante (y el tiempo de vida probado) identidad) por una culpa que no es del miembro - nunca después de un enlace incorrecto, Un código rechazado o un token falsificado. Enlace: búsqueda por (emisor, asunto, connection_key); un correo electrónico existente responde NOT_LINKED y exige una prueba - contraseña + el segundo factor de la cuenta, o un Código al correo electrónico de CUENTA (5 intentos, 3 envíos); LINK desde una sesión iniciada Cada conexión / desconexión envía el correo electrónico de la cuenta y escribe IDENTITY_LINKED / IDENTITY_UNLINKED. Una identidad vinculada se entrega a la contraseña (FederatedSignInCompleter -> puertas de cuenta, reglas de host/picker, SignInCompletionService) más la política de la organización (proveedor permitido MFA requerido pero no inscrito = rechazado aquí). No se cobra a la escalera de bloqueo; en su lugar, se cobra el presupuesto por devolución de llamada/vínculo por IP. Los clientes provienen de PlatformOAuthClientResolver para los tipos *_SIGNIN: Su propia aplicación solo en su propio dominio verificado - y se ofrecen solo en Config_json.signinStatus ENABLED (CONFIGURED = solo para plataforma org). Ninguno es Configurado, por lo que nada visible cambia.
