Atar el ecosistema a un IdP de terceros no era una opción arquitectónica.
“Cada componente nuevo cableado contra un IdP externo multiplica dependencia: claims no controlados, ciclo de release ajeno, política de identidad heredada. Para un ecosistema multi-componente B2B la autenticación es pieza estructural, no un proveedor más.”
Dependencia operativa
Cambios de SLA, política o lifecycle del IdP externo se propagan al instante a N componentes del ecosistema. Cero margen de decisión.
Claims ajenos
Los <code>claims</code> del JWT los define el IdP — no el ecosistema. <code>tenant_id</code> y <code>tenant_slug</code> quedan como custom claims frágiles.
Política de identidad
Quién es un usuario válido, qué factores se exigen y cuándo se revoca una sesión lo define el vendor. El ecosistema hereda esas reglas sin participar de su diseño.
1Qué hace BMonkey.
BMonkey resuelve la autenticación del ecosistema: verifica quién es el sujeto que entra y emite un JWT canónico. La autorización (roles, permisos, qué puede hacer ese sujeto) sigue siendo de cada componente — BMonkey no se mete ahí. Frontera dura.
AuthN centralizada
Un solo lugar donde se verifica credenciales del usuario. Cada componente del ecosistema delega esa verificación.
- OAuth 2.0 + OpenID Connect estándar
- JWT firmado RS256 con JWKS expuesto
- PKCE obligatorio en authorization code flow
AuthZ por componente
Cada producto BJungle define sus propios roles, permisos y políticas multi-tenant. BMonkey no opina sobre eso.
- RBAC interno por componente
- Políticas multi-tenant locales
- Audit de acciones en cada producto
Claims canónicos
Todo JWT incluye <code>tenant_id</code> y <code>tenant_slug</code> del ecosistema BJungle. Los componentes filtran RLS sobre ese claim.
- <code>sub</code> · UUID inmutable del usuario
- <code>tenant_id</code> · scope organizacional
- <code>email_verified</code> · estado de la cuenta
2CORE propio, no proveedor más.
Auth0, Cognito y Keycloak son IdPs sólidos para una app aislada. Para un ecosistema multi-componente B2B, atar la autenticación a un vendor externo significa heredar su lifecycle, su política y su forma de modelar identidad. Acá el modelo lo decide el ecosistema.
Control
Claims canónicos propios
<code>tenant_id</code> y <code>tenant_slug</code> son ciudadanos de primera clase, no custom claims frágiles atados al UI del IdP externo.
Independencia
Lifecycle del ecosistema
Versiones, breaking changes y deprecaciones del CORE las decide el ecosistema BJungle, no un calendario de releases ajeno.
Evolución
Capabilities alineadas
V2 (SAML bridge) y V3 (audit on-chain vía BLion · step-up contextual) incorporan capabilities que un IdP genérico no prioriza. El roadmap responde al ecosistema.
Multi-component
Un client_id por componente
BRhino, BLeopard, BGorilla, BPanther… cada componente tiene su client_id propio. La topología del ecosistema se modela en BMonkey, no en una consola externa.
3Estándar abierto, no SDK propietario.
BMonkey expone OIDC discovery + JWKS. Cualquier componente del ecosistema que entienda OpenID Connect consume el CORE sin SDK propietario. Cuando un componente nuevo entra al ecosistema, autentica contra BMonkey desde día 1.
Discovery
OIDC discovery URL
Endpoint público con metadata del IdP: endpoints, scopes soportados, algoritmos de firma. Cliente OIDC estándar lo consume sin código custom.
Firma
JWKS · JWT RS256
Keys públicas expuestas vía JWKS. Verificación de tokens local en cada componente. Sin round-trip a BMonkey por request.
Flow
Authorization Code + PKCE
Flow estándar OAuth 2.0 con PKCE obligatorio. SPA, mobile y backend usan el mismo patrón seguro por defecto.
4Un CORE · N componentes · M tenants.
Cada tenant B2B del ecosistema (banco, cooperativa, caja, aseguradora) tiene su tenant en BMonkey. Cada componente BJungle es un client_id distinto. Un único CORE sirve a N componentes y M tenants con aislamiento por tenant_id.
tenant_id del sujeto. Sobre ese claim filtra RLS, valida policies y resuelve scope. Cero código de tenant-routing en cada componente.5Cuatro líneas duras que separan B2B de B2C.
BMonkey es CORE del ecosistema B2B y vive en bjungle.net como pieza arquitectónica. Lo que era OnlyOne queda diferido a NewCo B2C en sitio separado. La separación no es de UX — es de estrategia.
BMonkey · CORE B2B
Pieza estructural del ecosistema BJungle (Capa 01). Cada tenant del ecosistema (banco, cooperativa, caja, aseguradora) tiene aislamiento por tenant_id. Vive en bjungle.net.
OnlyOne · Producto B2C
Wallet de identidad consumer-facing del usuario final. Se reactiva cuando se levante NewCo. Vivirá en sitio separado — no en bjungle.net.
Sin narrativas mezcladas
BMonkey no habla de wallet personal, identidad portable del consumidor ni SSI. Esa línea es exclusivamente de la conversación B2C de NewCo.
Sin colisión técnica
BMonkey emite JWT corporativos. OnlyOne emitirá Verifiable Credentials W3C consumer-facing. Estándares distintos, audiencias distintas.
6V1 → V2 → V3 sin fechas duras.
OAuth 2.0 + OpenID Connect core. Multi-tenant nativo. JWT RS256 con JWKS expuesto. Claims canónicos del ecosistema (tenant_id + tenant_slug). Punto de entrada para todos los componentes del ecosistema B2B.
MFA configurable por tenant. SSO empresarial vía SAML bridge para tenants con AD/Entra ID. Soporte de IdPs federados (Google Workspace, Azure AD) cuando el tenant del ecosistema lo exija.
Eventos críticos de AuthN (login admin, token revocation, cambio de credencial) sellados on-chain vía BLion. Step-up auth contextual basado en señal de riesgo del componente.
7Lo que más nos preguntan.
¿BMonkey reemplaza a Auth0 / Cognito / Keycloak en mi institución?
¿Se contrata BMonkey aparte?
¿Cumple con LPDP / GDPR?
¿Federación contra Azure AD / Google Workspace?
¿Y la autorización (roles, permisos)?
¿Qué pasa con la decisión OnlyOne previa?
8El ecosistema usa BMonkey para autenticar.
El ecosistema BJungle usa BMonkey para autenticar a todos sus usuarios. La autorización vive en cada componente. El JWT canónico viaja sellado entre componentes — y en V3, los eventos AuthN críticos también van a blockchain.
BMonkey es pieza estructural del ecosistema, no producto standalone.
BMonkey no se contrata por separado ni se demuestra como producto individual — se entiende mirando la arquitectura del ecosistema completo.

