El protocolo SAML 2.0 es un estándar de federación ampliamente utilizado en entornos corporativos. Anjana Data permite configurar múltiples proveedores de identidad (IdP) simultáneamente bajo la sección security.authentication.saml2.
Prerequisito: el usuario debe existir en Anjana
Para que el inicio de sesión mediante SAML sea satisfactorio, el usuario debe estar registrado previamente en la base de datos de Anjana. La autenticación SAML verifica la identidad en el proveedor externo, pero Anjana siempre comprueba que el usuario exista localmente antes de conceder el acceso. Si el usuario se autentica con éxito en el IdP pero no está registrado en Anjana, el acceso será denegado. Consulte cómo registrar usuarios de forma automática en la guía de Aprovisionamiento de usuarios.
1. URL de Respuesta (ACS URL)
Para que la autenticación funcione, debe registrar correctamente la URL del Servicio de Consumidor de Aserciones (ACS) en su Proveedor de Identidad. Esta es la dirección a la que el IdP enviará la respuesta SAML cifrada/firmada.
La URL se construye siguiendo este patrón:
https://{dominio-anjana}/gateway/saml2/sso/{registrationId}
-
dominio-anjana: Su dominio público (ej:
app.midominio.com). -
registrationId: La clave exacta que utilice en el YAML para definir el proveedor.
Ejemplo: Si configura un proveedor con la clave
azureaden el YAML, la URL a registrar en Azure será:
https://app.midominio.com/gateway/saml2/sso/azuread
2. Propiedades de configuración
Cada proveedor SAML se configura en security.authentication.saml2.providers.<registrationId>, donde <registrationId> es un nombre único interno (ej: azuread, okta-corp).
|
Propiedad |
Requerido |
Descripción |
|
|
Sí |
Nombre amigable que se mostrará a los usuarios en la pantalla de login (ej: "Login Corporativo"). |
|
|
Sí |
Subtipo de proveedor para adaptar la interfaz gráfica (logos, estilos). Valores permitidos: |
|
|
Sí |
El Identificador de Entidad (Entity ID) o Audiencia de Anjana Data. Usted define este valor (ej: |
|
|
Sí |
Ubicación del XML de metadatos del IdP. Puede ser una URL remota ( |
|
|
No |
Ruta a la Clave Privada (PKCS#8 PEM) usada para firmar las peticiones SAML enviadas al IdP. Requerido si el IdP exige peticiones firmadas. |
|
|
No |
Ruta al Certificado Público (X.509) correspondiente a la clave privada. |
3. Configuración por Proveedor
A continuación, se detallan los pasos para obtener los datos necesarios y el ejemplo de configuración para los principales proveedores.
Estructura base del YAML
security:
authentication:
saml2:
# (Opcional) Rutas base por defecto. No modificar salvo necesidad específica.
# acs-location-path: /sso/{registrationId}
# authenticate-path: /authenticate/{registrationId}
providers:
# Aquí se añaden los proveedores específicos
A. Microsoft Azure AD (Entra ID)
Para integraciones con Microsoft 365 / Azure Enterprise Applications.
Paso 1: Configuración en Azure Portal
-
Vaya a Aplicaciones empresariales > Nueva aplicación > Crear su propia aplicación > Integrar cualquier otra aplicación (No galería).
-
En Inicio de sesión único (SAML), edite la Configuración básica de SAML:
-
Identificador (Id. de entidad): Defina un nombre único, por ejemplo:
anjana-saml-azure. -
URL de respuesta (ACS):
https://<dominio-anjana>/gateway/saml2/sso/azuread
-
-
En Certificados de firma de SAML, copie la Dirección URL de metadatos de federación de aplicación.
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
azuread:
name: Azure Login
type: AZURE
entityId: anjana-saml-azure
idpMetadataUri: https://login.microsoftonline.com/uuid-tenant/federationmetadata/2007-06/federationmetadata.xml
B. Google Workspace
Para autenticación mediante cuentas de Google corporativas.
Paso 1: Configuración en Google Admin Console
-
Vaya a Aplicaciones > Aplicaciones web y móviles > Añadir aplicación > Añadir aplicación SAML personalizada.
-
Detalles del proveedor de identidad: Descargue el archivo de Metadatos del IdP y súbalo a su servidor Anjana (ej:
/opt/anjana/configs/google-metadata.xml). -
Detalles del proveedor de servicios:
-
URL ACS:
https://<dominio-anjana>/gateway/saml2/sso/devgcp -
ID de entidad: Defina un nombre, por ejemplo:
anjana-saml-gcp.
-
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
devgcp:
name: Google Workspace
type: GOOGLE
entityId: anjana-saml-gcp
idpMetadataUri: file:/opt/anjana/configs/google-metadata.xml
C. AWS IAM Identity Center
Para autenticación centralizada con AWS SSO.
Paso 1: Configuración en AWS Console
-
Vaya a IAM Identity Center > Aplicaciones > Añadir aplicación > Añadir aplicación SAML 2.0 personalizada.
-
Metadatos de SAML de IAM Identity Center: Copie la URL de metadatos de SAML del IdP.
-
Metadatos de la aplicación:
-
ACS URL:
https://<dominio-anjana>/gateway/saml2/sso/devaws -
Audiencia SAML (Entity ID): Defina un nombre, por ejemplo:
anjana-saml-aws.
-
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
devaws:
name: AWS Access
type: AWS
entityId: anjana-saml-aws
idpMetadataUri: https://portal.sso.eu-west-1.amazonaws.com/saml/metadata/ExampleID
D. Okta (SAML)
Para integraciones con Okta utilizando el protocolo SAML en lugar de OIDC.
Paso 1: Configuración en Okta Admin
-
Vaya a Applications > Create App Integration.
-
Seleccione SAML 2.0 y haga clic en Next.
-
Configure SAML:
-
Single sign on URL (ACS):
https://<dominio-anjana>/gateway/saml2/sso/okta-saml -
Audience URI (SP Entity ID): Defina un nombre único, por ejemplo:
anjana-saml-okta.
-
-
En la pestaña Sign On, copie la Metadata URL.
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
okta-saml:
name: Okta Login
type: OKTA
entityId: anjana-saml-okta
idpMetadataUri: https://dev-123456.okta.com/app/exk1.../sso/saml/metadata
E. Auth0 (SAML)
Auth0 soporta SAML mediante un "Addon" sobre una aplicación web estándar.
Paso 1: Configuración en Auth0 Dashboard
-
Vaya a Applications > Create Application > Regular Web App.
-
Una vez creada, vaya a la pestaña Addons y active SAML2 Web App.
-
En la pantalla de configuración del Addon (pestaña Settings):
-
Application Callback URL:
https://<dominio-anjana>/gateway/saml2/sso/auth0-saml -
Settings (JSON): Configure la audiencia:<code class="language-json">{ "audience": "anjana-saml-auth0" }</code>
-
-
Vaya a la pestaña Usage y copie la Identity Provider Metadata URL.
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
auth0-saml:
name: Auth0 Login
type: AUTH0
entityId: anjana-saml-auth0
idpMetadataUri: https://mi-tenant.eu.auth0.com/samlp/metadata/abcdef...
F. Keycloak (SAML)
Para organizaciones que utilizan Keycloak como servidor de identidad y acceso.
Paso 1: Configuración en Keycloak Admin Console
-
Acceda a la Admin Console de Keycloak y seleccione el realm correspondiente.
-
En Clients > Create client:
-
Client type:
SAML -
Client ID: Este valor será su
entityId. Defina un nombre único, ej.anjana-saml-keycloak.
-
-
En la pestaña Settings:
-
Valid redirect URIs:
https://<dominio-anjana>/gateway/saml2/sso/keycloak-saml -
Master SAML Processing URL (ACS URL):
https://<dominio-anjana>/gateway/saml2/sso/keycloak-saml
-
-
URL de metadatos del IdP (Keycloak):
https://<keycloak-server>/realms/<realm>/protocol/saml/descriptor
Paso 2: Configuración YAML
security:
authentication:
saml2:
providers:
keycloak-saml:
name: Keycloak Login
type: KEYCLOAK
# Debe coincidir exactamente con el Client ID definido en Keycloak
entityId: anjana-saml-keycloak
# URL de metadatos del realm de Keycloak
idpMetadataUri: https://sso.mi-dominio.com/realms/mi-realm/protocol/saml/descriptor
Descarga local de metadatos: Si el servidor Anjana no tiene acceso directo a Keycloak, descargue el XML de metadatos manualmente desde la URL anterior, guárdelo en el servidor (ej. /opt/anjana/keycloak-metadata.xml) y use idpMetadataUri: file:/opt/anjana/keycloak-metadata.xml.
G. Proveedor Genérico (ADFS, Shibboleth, otros)
Utilice esta configuración para cualquier proveedor de identidad compatible con SAML 2.0 que no aparezca en la lista anterior (por ejemplo: Active Directory Federation Services, Shibboleth, PingFederate).
Paso 1: Configuración en su Proveedor de Identidad (IdP)
En su panel de administración, cree un nuevo cliente SAML y configure los siguientes parámetros del Service Provider (SP):
-
ACS URL (Assertion Consumer Service):
https://<dominio-anjana>/gateway/saml2/sso/generic-idp -
Entity ID (Audience / Issuer): Defina un identificador único, por ejemplo:
anjana-saml-generic. -
NameID Format: Se recomienda configurar
PersistentoEmailAddress.
Paso 2: Obtención de Metadatos
Localice la URL pública de los metadatos de su IdP. Si el servidor de Anjana no tiene acceso, descargue el XML y use la ruta file:/....
Paso 3: Configuración YAML
security:
authentication:
saml2:
providers:
generic-idp:
name: Login Corporativo
type: OTHER
entityId: anjana-saml-generic
idpMetadataUri: https://sso.mi-empresa.com/metadata.xml