Autenticacion

Auris soporta multiples metodos de autenticacion para adaptarse a las necesidades de seguridad de tu aplicacion.

Metodos disponibles

Email + Contrasena

Autenticacion tradicional con verificacion de email

Social Login

Google, GitHub, Microsoft, Apple

SSO Enterprise

SAML 2.0 y OpenID Connect

Passkeys

WebAuthn/FIDO2 biometrico

MFA

TOTP y codigos de respaldo

Magic Links

Acceso sin contrasena por email

Email + Contrasena

El metodo mas comun. Incluye:

  • Verificacion de email obligatoria
  • Validacion de fortaleza de contrasena
  • Recuperacion de contrasena segura
  • Proteccion contra fuerza bruta

Configuracion

// Dashboard: Configuracion → Autenticacion

// Opciones disponibles:
{
  "emailPassword": {
    "enabled": true,
    "requireEmailVerification": true,
    "passwordPolicy": {
      "minLength": 8,
      "requireUppercase": true,
      "requireLowercase": true,
      "requireNumbers": true,
      "requireSpecialChars": false
    }
  }
}

Social Login

Permite a los usuarios autenticarse con sus cuentas existentes.

Proveedores soportados

  • Google - OAuth 2.0
  • GitHub - OAuth 2.0
  • Microsoft - Azure AD / Microsoft Account
  • Apple - Sign in with Apple

Configurar Google

  1. Ve a Google Cloud Console
  2. Crea un proyecto o selecciona uno existente
  3. Ve a APIs & Services → Credentials
  4. Crea un OAuth 2.0 Client ID
  5. Agrega los URIs de redireccion autorizados:
    https://api.aurisid.com/social/google/callback
  6. Copia el Client ID y Client Secret
  7. En el dashboard de Auris, ve a Social Providers → Google
  8. Pega las credenciales y activa el proveedor

Configurar GitHub

  1. Ve a GitHub Developer Settings
  2. Crea una nueva OAuth App
  3. Configura la Authorization callback URL:
    https://api.aurisid.com/social/github/callback
  4. Copia el Client ID y genera un Client Secret
  5. Configura en el dashboard de Auris

SSO Enterprise

Para clientes empresariales que requieren integracion con su Identity Provider.

SAML 2.0

// Configuracion de conexion SAML
{
  "name": "Okta SSO",
  "protocol": "saml",
  "domain": "empresa.com",
  "samlConfig": {
    "entryPoint": "https://empresa.okta.com/app/xxxxx/sso/saml",
    "issuer": "https://api.aurisid.com",
    "cert": "-----BEGIN CERTIFICATE-----\nMIIC...\n-----END CERTIFICATE-----"
  }
}

OpenID Connect

// Configuracion de conexion OIDC
{
  "name": "Azure AD",
  "protocol": "oidc",
  "domain": "empresa.com",
  "oidcConfig": {
    "issuer": "https://login.microsoftonline.com/{tenant}/v2.0",
    "clientId": "xxxxx",
    "clientSecret": "xxxxx",
    "scopes": ["openid", "profile", "email"]
  }
}

Passkeys (WebAuthn)

Autenticacion biometrica sin contrasenas usando el estandar FIDO2.

Beneficios

  • Sin contrasenas que recordar
  • Resistente a phishing
  • Autenticacion rapida con huella o Face ID
  • Cumple con requisitos de seguridad enterprise

Implementacion

import { useAuth } from '@auris/react';

function PasskeySetup() {
  const { user, registerPasskey } = useAuth();

  const handleSetup = async () => {
    try {
      await registerPasskey({
        deviceName: 'Mi MacBook',
      });
      alert('Passkey registrado!');
    } catch (error) {
      console.error('Error:', error);
    }
  };

  return (
    <button onClick={handleSetup}>
      Agregar Passkey
    </button>
  );
}

Multi-Factor Authentication (MFA)

Agrega una capa extra de seguridad requiriendo un segundo factor.

TOTP (Time-based One-Time Password)

Compatible con Google Authenticator, Authy, 1Password, etc.

Activar MFA para un usuario

import { useAuth } from '@auris/react';

function MfaSetup() {
  const { setupMfa, verifyMfa } = useAuth();
  const [qrCode, setQrCode] = useState('');
  const [code, setCode] = useState('');

  const handleSetup = async () => {
    const { qrCodeUri, secret } = await setupMfa();
    setQrCode(qrCodeUri);
  };

  const handleVerify = async () => {
    try {
      const { backupCodes } = await verifyMfa(code);
      // Mostrar codigos de respaldo al usuario
      console.log('Codigos de respaldo:', backupCodes);
    } catch (error) {
      console.error('Codigo invalido');
    }
  };

  return (
    <div>
      {!qrCode ? (
        <button onClick={handleSetup}>Configurar MFA</button>
      ) : (
        <div>
          <img src={qrCode} alt="QR Code" />
          <input
            type="text"
            value={code}
            onChange={(e) => setCode(e.target.value)}
            placeholder="Codigo de 6 digitos"
          />
          <button onClick={handleVerify}>Verificar</button>
        </div>
      )}
    </div>
  );
}

Codigos de respaldo

Cuando un usuario activa MFA, se generan automaticamente codigos de respaldo de un solo uso. Estos permiten acceder a la cuenta si pierde acceso al dispositivo de autenticacion.

Magic Links

Permite a los usuarios iniciar sesion con un enlace enviado a su email.

import { useMagicLink } from '@auris/react';

function MagicLinkLogin() {
  const { sendMagicLink, isLoading } = useMagicLink();
  const [email, setEmail] = useState('');
  const [sent, setSent] = useState(false);

  const handleSend = async () => {
    await sendMagicLink(email);
    setSent(true);
  };

  if (sent) {
    return <p>Revisa tu email para el enlace de acceso.</p>;
  }

  return (
    <div>
      <input
        type="email"
        value={email}
        onChange={(e) => setEmail(e.target.value)}
        placeholder="tu@email.com"
      />
      <button onClick={handleSend} disabled={isLoading}>
        Enviar Magic Link
      </button>
    </div>
  );
}

Seguridad adicional

Rate Limiting

Proteccion automatica contra ataques de fuerza bruta:

  • 5 intentos fallidos → bloqueo de 1 minuto
  • 10 intentos fallidos → bloqueo de 5 minutos
  • 20 intentos fallidos → bloqueo de 1 hora

Deteccion de dispositivos

Alertas automaticas cuando se detecta un inicio de sesion desde un nuevo dispositivo o ubicacion.