De desconocido a confiable.
AUTH4US es la capa de identidad y acceso de la familia 4US: OpenID Connect, passkeys, step-up, sesiones, federación y SCIM en un runtime Go con consola de operación.
- Grants
- code, client_credentials, refresh, deviceVerificado en CI de integración
- PKCE
- S256 (plain deshabilitado)Verificado en el producto
- Firma
- ES256 sobre P-256Verificado en el producto
- Aprovisionamiento
- SCIM 2.0Verificado multi-nodo
El viaje de una identidad, en ocho etapas.
Cada etapa es un comportamiento real del runtime, con su estado verificable.
La aplicación descubre al emisor.
Discovery publica los endpoints y JWKS las llaves públicas. Nada de rutas escritas a mano.
Descubrir
- GET
/.well-known/openid-configuration - response_types
["code"] - pkce
["S256"] - firma
["ES256"]
Una plataforma, sin piezas de adorno.
Métodos de entrada, decisiones de riesgo, sesiones y empresa. Pruébalo: todo responde con datos sintéticos.
Métodos de entrada
Esperando la confirmación de la passkey
Componentes reales de @auth4us/ui-react. Passkeys
Riesgo determinista
Reglas con puntos fijos. Mismas señales, misma decisión.
25 puntos
allow< 15review15–29step_up30–59block60–99revoke≥ 100
Sesiones revocables
- PortátilAMR
pwd, otp, AAL2Esta sesión - TeléfonoAMR
pwd, AAL1 - Equipo compartidoAMR
pwd, AAL1
Multi-nodo, con AMR/AAL y CSRF.
Verificado multi-nodoEmpresa
Federación OIDC y SAML por tenant.
Requiere configuraciónEl dominio verificado elige la conexión.
Verificado multi-nodoSCIM 2.0 con tokens ligados al tenant.
Verificado multi-nodoResolución de tenant que falla cerrado.
Verificado en CI de integración
Para quien integra: estándares, discovery y nada de secretos en el navegador.
Descubre los endpoints, usa PKCE y deja la política en el emisor. Los ejemplos usan valores sintéticos.
/connect/authorize- Autorización (code + PKCE)
/connect/token- Intercambio y refresh
/connect/userinfo- Claims con Bearer
/connect/introspect- Introspección (HTTP Basic)
/connect/revocation- Revocación (HTTP Basic)
/connect/deviceauthorization- Device code
/connect/endsession- Cierre con redirect exacto
import { createAuth4US } from "@auth4us/core";
const client = createAuth4US({
issuer: "https://auth.example.com",
clientId: "portal-demo",
redirectUri: "https://portal.example.com/auth/callback",
scopes: ["openid", "profile", "email"],
});
await client.login({ method: "passkey" });
await client.handleCallback(window.location.href);
// La política la decide el emisor; el cliente solo pregunta.
client.hasPermission("users.read");Cliente público: código de autorización + PKCE. Sin secreto de cliente en el navegador.
import { Auth4USProvider, RequireAuth, PermissionGate } from "@auth4us/react";
export function Root() {
return (
<Auth4USProvider config={config}>
<RequireAuth>
<PermissionGate permission="users.read" fallback={<SinAcceso />}>
<Directorio />
</PermissionGate>
</RequireAuth>
</Auth4USProvider>
);
}@auth4us/react no importa el paquete visual: usa tu propia interfaz si prefieres.
GET /connect/authorize?response_type=code
&client_id=portal-demo
&redirect_uri=https%3A%2F%2Fportal.example.com%2Fauth%2Fcallback
&scope=openid%20profile%20email
&code_challenge=<S256 del verificador>
&code_challenge_method=S256
&state=<aleatorio>
Host: auth.example.comresponse_type solo admite code; el método plain de PKCE está deshabilitado.
# Descubre los endpoints en lugar de escribirlos a mano
curl -s https://auth.example.com/.well-known/openid-configuration
# Llaves públicas para verificar firmas ES256
curl -s https://auth.example.com/.well-known/jwks.jsonDiscovery y JWKS son públicos. JWKS se sirve con Cache-Control: public, max-age=300.
Las aplicaciones arriba. La confianza, debajo.
Diseñado como la capa de identidad del ecosistema 4US, con presets visuales del SDK para que cada producto conserve su marca.





