Intro
Al momento de escribir esta publicación, no encontré ninguna guía para configurar Authelia como proveedor de acceso social para ERPNext. Estos son los pasos que seguí para vincularlos.
Configuración de Authelia
Si tienes un servidor LDAP configurado, debes asegurarte de que se extraigan los atributos correctos. La sección de atributos debería mirarse similar al siguiente snippet.
authentication_backend:
ldap:
implementation: custom
address: ldap://<dirección ip del servidor>:389
start_tls: false
tls:
skip_verify: true
minimum_version: TLS1.2
base_dn: DC=mydomain,DC=com
attributes:
username: sAMAccountName
group_name: cn
mail: mail
display_name: displayname
given_name: givenName
family_name: sn
users_filter: (&(|({username_attribute}={input})({mail_attribute}={input}))(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(!pwdLastSet=0))
groups_filter: (&(member:1.2.840.113556.1.4.1941:={dn})(objectClass=group)(objectCategory=group))
user: CN=<usuario de vinculación>,CN=Users,DC=mydomain,DC=com
password: <contraseña del usuario de vinculación>
Una vez que la sección LDAP sea correcta, debes proceder a la sección de proveedores de identidad para configurar el cliente ERPNext. La configuración debería ser similar a la siguiente:
identity_providers:
oidc:
clients:
- client_id: erpnext
client_name: erpnext
client_secret: '$pbkdf2-sha512$310000$OYxF/9Lo7Rv1K30g3UH0bg$nH9ZVUX9zEYGPHnHHFbueWz6TbpHsdvjx.WgYGGwd31sRV.CIgGXz4EW0fwOuPpI9fiv2G8cyowb/zD8A8LiCg'
public: false
authorization_policy: one_factor
redirect_uris:
- https://<dominio erpnext>/api/method/frappe.integrations.oauth2_logins.custom/authelia
scopes:
- openid
- profile
- email
- groups
userinfo_signed_response_alg: none
consent_mode: implicit
token_endpoint_auth_method: 'client_secret_post'
Para generar el secreto del cliente, deberás ejecutar el comando docker run --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986
El resultado debería ser similar al siguiente:

El digest se utilizará en la configuración del cliente de Authelia, como se muestra arriba. Copia la contraseña generada y tenla a mano, ya que se usará en la configuración de ERPNext. Reinicia Authelia para que los cambios surtan efecto.
Configuración de ERPNext
En el panel de control, navega hacia Integraciones -> Clave de Acceso Social -> Agregar Clave de Acceso Social. El formulario se puede completar de la siguiente manera:
Credenciales del Cliente
- Proveedor de Inicio de Sesión Social: Personalizar
- Nombre del Proveedor: Authelia
- Client ID: erpnext or cualquier ID de cliente que hayas usado en la configuración de Authelia
- Client Secret: pegar la contraseña generada en el paso anterior
Detalles de Identidad
- Icono: can leave blank or provide a url for an Authelia icon
- URL Base: https://<authelia domain>
Configuración
- Inscripciones: Permitir
URL de Cliente
- Autorizar URL: /api/oidc/authorization
- Redireccionar URL: https://<erpnext domain>/api/method/frappe.integrations.oauth2_logins.custom/authelia
- URL de Token de Acceso: /api/oidc/token
- API Endpoint: /api/oidc/userinfo
Información del Cliente
- Argumentos del endpoint de la API: empty
- Datos de URL de autenticación:
{"scope": "openid profile email", "response_type": "code"}
- Propiedad de ID de usuario: email
Asegúrate de hacer clic en Habilitar Sesión Social y clic en Guardar. Si deseas deshabilitar el inicio de sesión con nombre de usuario, navega hacia Configuración de ERPNext -> Configuración del Sistema -> Iniciar sesión y haz clic en Deshabilitar el inicio de sesión con nombre de Usuario/Contraseña. Para finalizar, haz clic en Guardar.
Listo!
Si todo está configurado correctamente, podrás iniciar sesión con Authelia.