GKONE · GK One Identity

Empresa
Proyecto para cliente
Fechas
2021 – Presente (En progreso)
Lugar
Jamaica
Categoría
Cliente

Resumen

GKONE es la plataforma bancaria productiva de un banco jamaiquino. Desde 2021 entrego features en su app mobile, sus web apps, sus microservicios y su identidad, primero via The Bridge Social y después en forma directa con Accentio Studios, cuando el banco decidió retenerme. Mi pieza más grande es GK One Identity (GKID): la capa OAuth 2.1 / OpenID Connect propia del banco, delante de Microsoft Entra External ID. Da a cada app de GK One y a cada partner aprobado una sola cuenta de cliente, single sign-on, consentimiento y permisos revocables. Construí su front web en React, sus pantallas de administración, su servidor de autorización en .NET 10 y sus puertas de entrada en mobile: el login con Entra ID y el launcher de apps de GK ID.

Puntos clave

  • Login web de GKID224 de los 229 commits del repo; 20 pasos de autenticación, 96 archivos de test unitario con 1.122 casos (Vitest + Testing Library) y 6 specs e2e con Playwright

    Construí el login web de GKID en Next.js 15 (App Router) + React 19 + TypeScript, con Zustand, react-hook-form y Zod sobre las APIs de autenticación nativa de Microsoft Entra: sign-in, sign-up, reset de contraseña, OTP por email, consentimiento, selector de cuentas, SSO silencioso y transferencia de sesión desde la app mobile. Lo migré de una SPA en Vite a Next.js.

  • Tokens fuera del navegadorNingún token en el storage del navegador; una sola imagen Docker promovida de Dev a Prod, con Azure App Configuration cargado al arrancar

    Saqué todos los tokens del navegador: 13 route handlers de Next.js funcionan como backend-for-frontend, la sesión vive en una cookie HttpOnly __Host- y los chequeos de mismo origen y Fetch Metadata bloquean las peticiones cross-site.

  • Portal de cuenta self-service4 páginas de cuenta, desplegadas con Azure Pipelines (Dev, QA, UAT, Prod), Docker y SonarQube

    Construí en React el portal de cuenta self-service: el cliente ve las apps que conectó, las revoca, cierra sesiones por navegador o en todas partes y consulta sus dispositivos registrados.

  • Sección GK Identity del adminEl equipo del banco registra una app de partner nueva desde un solo wizard; escribí las 5.272 líneas de la sección

    Construí la sección GK Identity del portal administrativo del banco en Next.js + React + MUI: un wizard que crea la app de Entra y su service principal en 6 etapas y reintenta desde la que falló, generación y revocación de client secrets, scopes, política de consentimiento, single sign-on por app y recursos de API.

  • Admin del contenido de la appCerca de 6.700 líneas construidas de punta a punta; autor principal del portal, con cerca del 60% de su código

    Construí las pantallas del admin que manejan la home de la app mobile: ítems del menú de servicios y promociones por tenant, con copia o movimiento entre tenants y desactivación y borrado masivos.

  • Servidor de autorización OAuth 2.13 controllers con 56 endpoints (OAuth2, administración de Entra, conflictos de identidad), 108 archivos de test xUnit con 1.346 casos y 155 de los 156 commits del código OAuth

    Escribí el servidor de autorización de GK One Identity en .NET 10 (/oauth2/v1): authorization code con PKCE S256, rotación de refresh tokens con detección de reuso, JWKS RS256 con rotación de llaves, discovery, userinfo, introspection, resource indicators (RFC 8707) y logout iniciado por el cliente. Lo endurecí con 8 políticas de rate limit y con refresh y session tokens guardados como hashes SHA-256.

  • Launcher de GK ID completoUna feature entregada en la app Flutter, el IAM en .NET y el login en Next.js

    Construí de punta a punta el launcher de apps de GK ID: la app Flutter emite un código de transferencia de sesión de un solo uso, el IAM lo canjea y el login web abre la app de destino con la sesión iniciada, sin un segundo login.

  • Migración de B2C a EntraMigración de identidad completa en mobile, web e integraciones de partners

    Migré la identidad de clientes de Azure AD B2C a Microsoft Entra External ID en la app Flutter, las web apps del banco y las integraciones de terceros: cada cuenta se mueve en su siguiente inicio de sesión con validación JWKS, y un endpoint batch mueve el resto.

  • Resolución de conflictos de identidadDetección, unión, pantallas de admin y flujo mobile construidos de punta a punta

    Construí la resolución de conflictos de identidad: el sistema detecta clientes duplicados y pasa cada caso por aprobación maker-checker en el portal administrativo. Un orquestador de merge con chequeos previos, un snapshot en Cosmos DB y rollback ejecuta la unión aprobada desde una cola de Azure Service Bus y expulsa las sesiones viejas.

  • Documentación con Diátaxis26 documentos, 62 de 62 commits

    Documenté GK One Identity en 26 documentos organizados con Diátaxis: tutoriales, guías how-to, referencia y explicación.

  • Login con Entra ID en FlutterMás de 1.600 commits desde 2021; escribí completo el módulo de Entra ID (51 archivos), el 82% de la Home V2 y el 75% de la gestión de cuenta

    Construí en la app Flutter el login y el registro con Microsoft Entra ID (activación de biometría, login social detrás de un feature flag, detección de root y jailbreak) y la mayor parte de la Home V2, la gestión de cuenta, la recarga de teléfono y el historial de transacciones, más cambios de API en los microservicios core, remittance y wallet.

Stack

  • React
  • Next.js
  • TypeScript
  • Zustand
  • React Hook Form
  • Zod
  • Tailwind
  • MUI
  • Vitest
  • Playwright
  • .NET 10
  • C#
  • OAuth 2.1
  • OpenID Connect
  • PKCE
  • Microsoft Entra External ID
  • Azure AD B2C
  • MassTransit
  • Azure Service Bus
  • Cosmos DB
  • SQL Server
  • Azure API Management
  • Azure App Configuration
  • Azure Pipelines
  • Docker
  • Flutter
  • Firebase
  • Fastlane
PREPARADO PARA
  • Lectores de pantalla
  • Agentes LLM
  • Parsers ATS
  • Responsivo
  • Carga rápida
alvaro-bash --project gkone --locale esEXIT 0v1.0.0· — · São Paulo · Brasil
ABRIR TERMINAL