Skip to Content

SSO Empresarial por Organización

El Single Sign-On (SSO) empresarial permite que cada organización en Auris delegue la autenticación a su propio proveedor de identidad corporativo. Cuando un usuario inicia sesión con una dirección de email perteneciente a un dominio verificado, Auris lo redirige automáticamente al IdP de su organización en lugar de mostrar el formulario estándar de usuario y contraseña. Tras una autenticación exitosa en el IdP, el usuario regresa a Auris y se vincula a una cuenta existente o se aprovisiona automáticamente mediante la creación de usuario justo a tiempo (JIT).

Esta funcionalidad está diseñada para productos SaaS B2B donde los clientes empresariales requieren que sus empleados se autentiquen exclusivamente a través de credenciales gestionadas por la empresa.


Protocolos Soportados

Auris soporta dos protocolos SSO, ambos implementados a través de la funcionalidad de broker de identidad de Keycloak:

SAML 2.0 — Security Assertion Markup Language. Utilizado por IdPs empresariales como Microsoft Azure AD (Entra ID), Okta, ADFS, Ping Identity y Shibboleth. SAML utiliza aserciones basadas en XML firmadas con certificados X.509.

OIDC (OpenID Connect) — Una capa de identidad moderna sobre OAuth 2.0. Utilizado por Google Workspace, Okta (como proveedor OIDC), Microsoft Azure AD (también soporta OIDC) y cualquier servidor de autorización OAuth 2.0 con un endpoint de descubrimiento OIDC.


Verificación de Dominio

Antes de que una conexión SSO pueda activarse, la organización debe demostrar la propiedad del dominio de email. Esto evita que una organización intercepte los inicios de sesión de un dominio que no le pertenece.

La verificación utiliza un registro DNS TXT:

  1. Auris genera un token de verificación único para el dominio.
  2. El administrador DNS de la organización crea un registro TXT: _auris-verify.domain.com con el token como valor.
  3. Un administrador hace clic en “Verificar” en la Consola (o llama a la API de verificación).
  4. Auris realiza una consulta DNS para el registro TXT y confirma que el token coincide.
POST/api/organizations/[orgId]/sso/domainsRequires: manage:sso_connections

Agrega un dominio para verificar en SSO. Devuelve el token de verificación que debe añadirse al DNS.

{ "domain": "acme.com" }

Respuesta:

{ "id": "dom_01HX...", "domain": "acme.com", "verificationToken": "auris-verify=a1b2c3d4e5f6...", "verificationMethod": "TXT", "status": "PENDING" }

Registro DNS a crear:

_auris-verify.acme.com TXT "auris-verify=a1b2c3d4e5f6..."
POST/api/organizations/[orgId]/sso/domains/[domainId]/checkRequires: manage:sso_connections

Dispara una verificación DNS. Devuelve el estado actualizado del dominio: PENDING, ACTIVE o FAILED.

La propagación DNS puede tardar hasta 48 horas, aunque la mayoría de los cambios se propagan en pocos minutos. Si la verificación falla inmediatamente después de agregar el registro, espera unos minutos e inténtalo de nuevo.


Configuración SAML 2.0

Obtener los metadatos del IdP

Del IdP de tu cliente, obtén uno de los siguientes:

  • Una URL de metadatos — una URL que sirve el XML de metadatos SAML del IdP (preferida, ya que auto-actualiza los certificados)
  • Un archivo XML de metadatos — una copia descargada de los metadatos

Los metadatos contienen el Entity ID, la URL de SSO y el certificado de firma.

Crear la conexión SSO

POST/api/organizations/[orgId]/sso/connectionsRequires: manage:sso_connections

Crea una nueva conexión SSO para la organización.

{ "type": "SAML", "name": "Acme Azure AD", "config": { "entityId": "https://sts.windows.net/tenant-id-here/", "ssoUrl": "https://login.microsoftonline.com/tenant-id/saml2", "certificate": "MIICIjANBgkq...", "signRequests": true, "nameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" } }

Campos de configuración SAML:

CampoRequeridoNotas
entityIdSíEl Entity ID del IdP de sus metadatos
ssoUrlSíLa URL del endpoint SSO SAML del IdP
certificateSíEl certificado de firma X.509 del IdP (codificado en PEM, sin encabezados)
signRequestsNoSi se deben firmar las solicitudes SAML salientes (por defecto: true)
nameIdFormatNoFormato NameID preferido. Por defecto emailAddress

Configurar el mapeo de atributos

Mapea los atributos de la aserción SAML a los campos de usuario de Auris:

{ "attributeMapping": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "firstName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "lastName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" } }

Proporcionar los metadatos SP de Auris al IdP

Después de crear la conexión, Auris genera los metadatos del Proveedor de Servicios (SP) que tu cliente debe registrar en su IdP:

  • SP Entity ID: https://auth.yourapp.com/saml/org-slug
  • ACS URL (Assertion Consumer Service): https://auth.yourapp.com/saml/org-slug/callback
  • URL de metadatos SP: https://auth.yourapp.com/saml/org-slug/metadata

Comparte la URL de metadatos SP con el administrador de TI de tu cliente. La mayoría de los IdPs empresariales aceptan una URL de metadatos directamente.

Activar la conexión

POST/api/organizations/[orgId]/sso/connections/[id]/activateRequires: manage:sso_connections

Activa la conexión SSO. La verificación del dominio debe estar completa antes de la activación.


Configuración OIDC

Obtener la configuración OIDC

Del proveedor OIDC del cliente, necesitas:

  • URL de descubrimiento (preferida): https://provider.example.com/.well-known/openid-configuration
  • O manualmente: Endpoint de autorización, Endpoint de token, JWKS URI, Client ID, Client Secret

Crear la conexión SSO

{ "type": "OIDC", "name": "Acme Google Workspace", "config": { "discoveryUrl": "https://accounts.google.com/.well-known/openid-configuration", "clientId": "123456789-abc.apps.googleusercontent.com", "clientSecret": "GOCSPX-...", "scopes": ["openid", "profile", "email"], "pkce": true } }

Campos de configuración OIDC:

CampoRequeridoNotas
discoveryUrlRecomendadoEndpoint de descubrimiento OIDC. Si se proporciona, los demás endpoints se infieren automáticamente
authorizationUrlSi no hay discoveryUrlEndpoint de autorización OAuth2
tokenUrlSi no hay discoveryUrlEndpoint de token OAuth2
jwksUrlSi no hay discoveryUrlEndpoint JWKS para verificación de tokens
clientIdSíEl client ID OAuth2 registrado en el IdP
clientSecretSíEl client secret OAuth2
scopesNoPor defecto ["openid", "profile", "email"]
pkceNoHabilita PKCE para el flujo OIDC (recomendado, por defecto: true)

Registrar la URI de redirección de Auris en el IdP

Proporciona esta URI de redirección al registrar la aplicación Auris en el IdP del cliente:

https://auth.yourapp.com/oidc/org-slug/callback

Activar la conexión

Igual que con SAML — la verificación del dominio debe completarse antes de la activación.


Flujo de Login SSO

Una vez que una conexión SSO está activa y un dominio verificado, el flujo de inicio de sesión cambia para los usuarios con direcciones de email coincidentes:

  1. El usuario introduce su email en la página de Login Alojado de Auris.
  2. Auris llama al endpoint de detección SSO:
POST/api/auth/sso/detect

Acepta una dirección de email y devuelve los detalles de la conexión SSO si existe una conexión activa para el dominio del email.

{ "email": "[email protected]" }

Respuesta cuando SSO está configurado:

{ "ssoRequired": true, "connectionType": "SAML", "organizationName": "Acme Corporation", "loginUrl": "/api/auth/sso/login/acme-azure-ad" }
  1. Auris redirige al usuario al IdP a través de:
GET/api/auth/sso/login/[alias]

Inicia el flujo SSO redirigiendo al usuario al IdP configurado.

  1. El usuario se autentica en su IdP corporativo.

  2. El IdP redirige de vuelta a Auris:

POST/api/auth/sso/callback

Recibe la aserción SAML o el código de autorización OIDC. Valida la respuesta, resuelve o crea el usuario de Auris, y emite los tokens de Auris.

  1. Auris emite su propio access token y refresh token. A partir de este punto, la sesión SSO es independiente — los tiempos de vida de los tokens de Auris se rigen por la configuración de Auris, no por la sesión del IdP.

Aprovisionamiento de Usuarios Justo a Tiempo (JIT)

Si un usuario se autentica correctamente en el IdP pero no tiene una cuenta de Auris existente, Auris crea una automáticamente durante el callback SSO. Esto se denomina aprovisionamiento justo a tiempo.

El aprovisionamiento JIT crea al usuario con:

  • Email, firstName y lastName de la respuesta del IdP o la aserción SAML
  • Membresía en la organización asociada a la conexión SSO
  • El rol predeterminado configurado para usuarios aprovisionados por JIT (configurable por conexión, por defecto MEMBER)

La cuenta del usuario persiste después del primer inicio de sesión — los inicios de sesión posteriores se resuelven en la misma cuenta.

El aprovisionamiento JIT crea usuarios con el rol MEMBER por defecto. Si tu aplicación requiere roles elevados para algunos usuarios, utiliza el aprovisionamiento SCIM además del SSO para pre-aprovisionar usuarios con los roles correctos antes de su primer inicio de sesión.


Múltiples Conexiones SSO por Organización

Una organización puede tener múltiples conexiones SSO activas — por ejemplo, SAML para una implementación de Azure AD y OIDC para un subconjunto de usuarios en Google Workspace.

El endpoint de detección SSO hace coincidir en base al dominio de email verificado. Si múltiples conexiones comparten el mismo dominio, la conexión activada más recientemente tiene prioridad. En la práctica, cada conexión SSO debe asociarse a dominios verificados distintos para evitar ambigüedades.


Gestión de Conexiones SSO

GET/api/organizations/[orgId]/sso/connectionsRequires: view:sso_connections

Lista todas las conexiones SSO de una organización.

GET/api/organizations/[orgId]/sso/connections/[id]Requires: view:sso_connections

Obtiene una conexión SSO específica con su estado actual y configuración.

PATCH/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connections

Actualiza una conexión SSO. Puedes actualizar los campos de configuración, el nombre o los mapeos de atributos sin desactivar la conexión.

POST/api/organizations/[orgId]/sso/connections/[id]/deactivateRequires: manage:sso_connections

Desactiva la conexión SSO. Los usuarios con dominios de email coincidentes ya no serán redirigidos al IdP. Vuelven a la autenticación estándar de Auris.

DELETE/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connections

Elimina permanentemente la conexión SSO. Las cuentas de usuario existentes creadas mediante aprovisionamiento JIT no se eliminan.


Guía en la Consola

La gestión del SSO está disponible en la página de detalle de la organización en la Consola de Administración, bajo la pestaña “Enterprise SSO”.

Agregar una conexión SAML:

  1. Navega a Consola de Administración → Organizaciones → [Nombre de la org] → Enterprise SSO.
  2. Haz clic en “Agregar conexión SSO”. Selecciona SAML 2.0.
  3. Introduce la URL de metadatos del IdP o pega el XML.
  4. Revisa la configuración analizada (Entity ID, URL de SSO, certificado).
  5. Guarda. La conexión se crea en estado inactivo.
  6. Navega a la pestaña “Dominios” y agrega el dominio de email de la organización.
  7. Agrega el registro DNS TXT y haz clic en “Verificar dominio”.
  8. Una vez verificado el dominio, regresa a la pestaña SSO y haz clic en “Activar”.

Agregar una conexión OIDC:

El mismo flujo, pero el formulario solicita la URL de descubrimiento, el Client ID y el Client Secret. Auris obtiene el documento de descubrimiento automáticamente y rellena los campos restantes.


Permisos Requeridos

OperaciónPermiso
Ver conexiones SSOview:sso_connections
Crear / actualizar / eliminar conexiones SSOmanage:sso_connections
Gestionar la verificación de dominiomanage:sso_connections

Páginas Relacionadas