Saltar al contenido
Documentación de Aura Home

Implemente SSO, puente SAML, SSL y HTTPS

Esta guía muestra a los equipos de los portales de clientes cómo conectar la identidad empresarial y asegurar el transporte al integrar Aura Home con el SDK del lado del cliente.

Aura Home valida tokens OIDC/JWT. Los clientes que usan SAML deben crear un puente entre el inicio de sesión SAML y un token OIDC/JWT antes de transmitir la identidad al SDK.

Resumen de la implementación

PortalEl usuario inicia sesión en el portal del cliente.
IdPEl proveedor empresarial emite la identidad o la traslada mediante un puente.
SDKgetToken devuelve un token OIDC/JWT.
RuntimeAura Home recibe el token mediante la mensajería del navegador.
BackendSe validan el emisor, la audiencia, la firma y el vencimiento.

Requisitos previos

  • El portal del cliente ya se sirve por HTTPS.
  • La URL del runtime de Aura Home usa HTTPS y es accesible desde el navegador del cliente.
  • El proveedor de identidad del cliente puede emitir tokens OIDC/JWT directamente o trasladar sesiones SAML a tokens OIDC/JWT mediante un puente.
  • Cadisa y el cliente acordaron el emisor OIDC, el client ID, el origen permitido del runtime y el origen permitido del portal principal.

1. Configure el SSO del portal

El portal del cliente debe autenticar al usuario antes de abrir Aura Home. Luego, el SDK proporciona un token OIDC/JWT de corta duración mediante auth.getToken. Los tokens no deben colocarse en cadenas de consulta, atributos HTML, variables CSS, ejemplos de almacenamiento local ni registros.

import { AuraHome } from "@aura-home/sdk";

const aura = AuraHome.init({
  container: "#aura-home",
  baseUrl: "https://aura.customer-domain.com/",
  allowedOrigin: "https://aura.customer-domain.com",
  sdkHost: "portal.customer-domain.com",
  auth: {
    mode: "oidc",
    getToken: async () => {
      const session = await customerPortal.getCurrentSession();
      return session.idToken;
    }
  },
  sections: {
    chat: true,
    profile: true,
    navbar: false,
    footer: false
  }
});

Requisitos del token

RequisitoPropósito
issDebe coincidir con el emisor configurado para el runtime de Aura Home.
audDebe coincidir con el client ID o la audiencia esperados.
subIdentificador estable del usuario proveniente del proveedor de identidad del cliente.
emailRecomendado para la visualización del usuario y los flujos de soporte al cliente.
expObligatorio para poder rechazar los tokens vencidos.

2. Implemente un puente SAML

Si el cliente usa SAML, mantenga la aserción SAML sin procesar dentro de la capa de identidad del cliente. El IdP del cliente, el gateway de identidad o el backend deben intercambiar la sesión autenticada con SAML por un token OIDC/JWT que Aura Home pueda validar.

// The customer signs in with SAML through the enterprise IdP.
// The identity gateway exchanges that SAML session for an OIDC/JWT token.
// Aura Home receives the JWT/OIDC token, not the raw SAML assertion.

const samlSession = await enterpriseIdentity.requireSamlSession();

const oidcToken = await identityGateway.exchangeSamlForOidc({
  sessionId: samlSession.id,
  audience: "aura-home",
  requestedClaims: ["sub", "email", "name"]
});

AuraHome.init({
  container: "#aura-home",
  baseUrl: "https://aura.customer-domain.com/",
  allowedOrigin: "https://aura.customer-domain.com",
  auth: {
    mode: "oidc",
    getToken: async () => oidcToken.idToken
  }
});

Lista de verificación del puente SAML

  • No envíe aserciones SAML al iframe del navegador.
  • Use un backend o un gateway de identidad para intercambiar el estado SAML por un token OIDC/JWT.
  • Configure la validación del backend de Aura Home para el emisor y la audiencia del puente.
  • Mantenga una vida útil corta para los tokens y renuévelos mediante la capa de identidad del portal.

3. Prepare los certificados SSL

Los certificados SSL/TLS se configuran en la capa de hosting, CDN, balanceador de carga o proxy inverso del cliente. El Aura Home SDK no instala ni renueva certificados.

# Customer DNS example
portal.customer-domain.com  A      203.0.113.10
aura.customer-domain.com    CNAME  customer-aura-runtime.example.net
assets.customer-domain.com  CNAME  customer-cdn.example.net

# Certificate coverage
portal.customer-domain.com
aura.customer-domain.com
assets.customer-domain.com

# Validation checks
curl -I https://portal.customer-domain.com
curl -I https://aura.customer-domain.com
openssl s_client -connect aura.customer-domain.com:443 \
  -servername aura.customer-domain.com

Requisitos de los certificados

  • Use certificados de confianza para los navegadores estándar.
  • Cubra el dominio del portal, el dominio del runtime de Aura Home y los dominios de los recursos alojados.
  • Habilite la renovación automática antes del vencimiento del certificado.
  • Sirva la cadena de certificados completa desde el borde.

4. Use HTTPS en toda la ruta de integración

Las integraciones de producción deben usar HTTPS para la página anfitriona, el paquete del SDK, el runtime de Aura Home, las llamadas de identidad, las URL de hojas de estilo, los recursos de imagen y las conexiones a la API. El contenido mixto puede hacer que los navegadores bloqueen la integración o impidan que se complete la autenticación.

<div id="aura-home"></div>

<script type="module">
  import { AuraHome } from "@aura-home/sdk";

  AuraHome.init({
    container: "#aura-home",
    baseUrl: "https://aura.customer-domain.com/",
    allowedOrigin: "https://aura.customer-domain.com",
    sdkHost: "portal.customer-domain.com"
  });
</script>

Ejemplo de Content Security Policy

Content-Security-Policy:
  default-src 'self';
  script-src 'self' https://cdn.customer-domain.com;
  frame-src https://aura.customer-domain.com;
  connect-src 'self' https://aura.customer-domain.com https://idp.customer-domain.com;
  style-src 'self' https://assets.customer-domain.com;

5. Validación del lanzamiento

VerificaciónResultado esperado
Abra baseUrl en una pestaña del navegadorEl runtime de Aura Home se carga por HTTPS.
Abra la página del portal del clienteEl navegador no muestra advertencias de contenido mixto.
Llame a auth.getTokenSe devuelve un token OIDC/JWT de corta duración.
Inspeccione los claims del tokenEl emisor y la audiencia coinciden con la configuración del runtime de Aura Home.
Integre Aura HomeEl iframe se carga y el SDK emite ready o loaded.
Revise los registrosNo se registran tokens sin procesar, aserciones SAML, contraseñas ni secretos.

Solución de problemas

SíntomaCausa probableSolución
El iframe está bloqueadoEl origen del portal no está permitido o la CSP es demasiado estricta.Permita el runtime de Aura Home en frame-src y confirme los orígenes principales aprobados.
La autenticación falla con un error 401Token faltante, vencido o no válido.Renueve el token y confirme el emisor, la audiencia, el vencimiento y la firma.
El inicio de sesión SAML funciona, pero Aura Home aparece como anónimoNo se creó el puente de SAML a OIDC/JWT para el SDK.Intercambie la sesión SAML por un token OIDC/JWT y devuélvalo desde getToken.
El navegador informa contenido mixtoUn recurso o endpoint se carga por HTTP.Migre a HTTPS todas las URL del SDK, del runtime, de la API, de las hojas de estilo y de identidad.
Aparece una advertencia de certificadoFalta un SAN, el certificado venció o la cadena está incompleta.Vuelva a emitir o renueve el certificado y sirva la cadena completa desde el borde.