Autenticación

Registro de usuarios

La configuración por defecto de Weblate es utilizar python-social-auth, un formulario en el sitio web para gestionar el registro de nuevos usuarios. Después de confirmar su correo electrónico, un nuevo usuario puede contribuir o autenticarse utilizando uno de los servicios de terceros.

También puedes desactivar el registro de nuevos usuarios mediante REGISTRATION_OPEN.

Los intentos de autenticación están sujetos a Tipo limitante.

Dorsales de autenticación

Weblate se basa en Django para la autenticación. Esto incluye autenticación basada en contraseñas empotradas, autenticación social, y backend de autenticación de terceras partes para Django.

Utilizar autenticación embebida significa que puede importar la base de datos de otro proyecto basado en Django (consulte Migrar de Pootle).

Ver también

Configuración de autenticación describe cómo configurar la autenticación en la imagen oficial para Docker.

Autenticación social

Gracias a Welcome to Python Social Auth’s documentation!, Weblate admite la autenticación a través de numerosos servicios de terceros, tales como GitLab, Ubuntu y Fedora, entre otros.

Consulta su documentación para obtener instrucciones de configuración genéricas en Django Framework.

Nota

Por defecto, Weblate confía en los servicios de autenticación de terceros para proporcionar una dirección de correo electrónico validada. Si algunos de los servicios que deseas utilizar no lo soportan, por favor, ejecuta la validación del correo electrónico en el lado de Weblate configurando FORCE_EMAIL_VALIDATION para ellos. Por ejemplo:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

Ver también

Pipeline

Habilitar backends individuales es bastante fácil, sólo es cuestión de añadir una entrada al ajuste AUTHENTICATION_BACKENDS y posiblemente añadir las claves necesarias para un método de autenticación determinado. Ten en cuenta que algunos backends no proporcionan el correo electrónico del usuario por defecto, tienes que solicitarlo explícitamente, de lo contrario Weblate no será capaz de acreditar adecuadamente las contribuciones de los usuarios.

Consejo

La mayoría de los backends de autenticación requieren HTTPS. Una vez que el HTTPS esté habilitado en tu servidor web, por favor configura Weblate para que lo informe correctamente usando ENABLE_HTTPS, o mediante WEBLATE_ENABLE_HTTPS en el contenedor Docker.

Autenticación por OpenID

Para servicios basados en OpenID basta con activarlos. En esta sección se describe cómo activar la autenticación por OpenID de OpenSUSE, Fedora y Ubuntu:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.email.EmailAuth",
    "social_core.backends.suse.OpenSUSEOpenId",
    "social_core.backends.ubuntu.UbuntuOpenId",
    "social_core.backends.fedora.FedoraOpenId",
    "weblate.accounts.auth.WeblateUserBackend",
)

Ver también

OpenID

Autenticación por GitHub

Tienes que registrar una aplicación OAuth en GitHub y luego decirle a Weblate todos sus secretos:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.github.GithubOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITHUB_KEY = "GitHub Client ID"
SOCIAL_AUTH_GITHUB_SECRET = "GitHub Client Secret"
SOCIAL_AUTH_GITHUB_SCOPE = ["user:email"]

GitHub debe estar configurado para tener una callback a la URL como https://WEBLATE SERVER/accounts/complete/github//.

Hay similares backends de autenticación para GitHub para Organizaciones y GitHub para Equipos. Sus configuraciones se denominan SOCIAL_AUTH_GITHUB_ORG_* y SOCIAL_AUTH_GITHUB_TEAM_*, y requieren una configuración adicional del alcance: SOCIAL_AUTH_GITHUB_ORG_NAME o SOCIAL_AUTH_GITHUB_TEAM_ID. Sus URL de devolución de llamada son https://WEBLATE SERVER/accounts/complete/github-org/ y https://WEBLATE SERVER/accounts/complete/github-org/.

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

GitHub

Autenticación de GitHub EE

Debes registrar una aplicación OAuth en GitHub EE y luego contarle a Weblate todos sus secretos:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.github_enterprise.GithubEnterpriseOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY = "GitHub OAuth App Client ID"
SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET = "GitHub OAuth App Client Secret"
SOCIAL_AUTH_GITHUB_ENTERPRISE_URL = "https://git.example.com/"
SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL = "https://git.example.com/api/v3/"
SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE = ["user:email"]

La aplicación GitHub OAuth debe configurarse para tener una URL de devolución de llamada como https://WEBLATE SERVER/accounts/complete/github-enterprise/.

En lugar de GitHub OAuth App, también se puede utilizar GitHub App. Con GitHub App, se pueden otorgar permisos a nivel de repositorios, organización y/o usuario. Si decide utilizar GitHub App, debe habilitar el permiso «Acceso: solo lectura» para Usuarios - <Direcciones de correo electrónico> y Organización - <Miembros>.

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

GitHub Enterprise

Autenticación por Bitbucket

Tienes que registrar una aplicación en Bitbucket y luego decirle a Weblate todos sus secretos:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.bitbucket.BitbucketOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY = "Bitbucket Client ID"
SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET = "Bitbucket Client Secret"
SOCIAL_AUTH_BITBUCKET_OAUTH2_VERIFIED_EMAILS_ONLY = True

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

Bitbucket

Google OAuth 2

Para utilizar Google OAuth 2, es necesario registrar una aplicación OAuth en <https://console.developers.google.com/>.

La URL de redirección es https://WEBLATE SERVER/accounts/complete/google-oauth2/.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.google.GoogleOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "Client ID"
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "Client secret"

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

Google

OAuth 2 de Facebook

Como es habitual con los servicios OAuth 2, tienes que registrar tu aplicación en Facebook. Una vez hecho esto, puedes configurar Weblate para utilizarla:

La URL de redirección es https://WEBLATE SERVER/accounts/complete/facebook/.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.facebook.FacebookOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_FACEBOOK_KEY = "key"
SOCIAL_AUTH_FACEBOOK_SECRET = "secret"
SOCIAL_AUTH_FACEBOOK_SCOPE = ["email", "public_profile"]

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

Facebook

OAuth 2 de GitLab

Para utilizar GitLab OAuth 2, es necesario registrar una aplicación en <https://gitlab.com/profile/applications>.

La URL de redirección es https://WEBLATE SERVER/accounts/complete/gitlab/ y asegúrate de marcar el ámbito read_user.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.gitlab.GitLabOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITLAB_KEY = "Application ID"
SOCIAL_AUTH_GITLAB_SECRET = "Secret"
SOCIAL_AUTH_GITLAB_SCOPE = ["read_user"]

# If you are using your own GitLab
# SOCIAL_AUTH_GITLAB_API_URL = 'https://gitlab.example.com/'

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

GitLab

Gitea OAuth 2

Para usar Gitea OAuth 2, necesitas registrar una aplicación en https://GITEA SERVER/user/settings/applications.

La URL redireccionada es https://WEBLATE SERVER/accounts/complete/gitea/.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.gitea.GiteaOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_GITEA_KEY = ""
SOCIAL_AUTH_GITEA_SECRET = ""

# If you are using your own Gitea
SOCIAL_AUTH_GITEA_API_URL = "https://gitea.example.com/"

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Nota

La configuración anterior también funciona con Forgejo; para ver un ejemplo de despliegue en producción con Forgejo, consulte Codeberg Translate.

Ver también

Gitea

Microsoft Entra ID

Azure Active Directory (Azure ID) ahora es ID de Microsoft Entra. Weblate conserva los nombres de backend azuread-oauth2 y azuread-tenant-oauth2 para compatibilidad con los backend de Python Social Auth y los despliegues existentes.

Puede configurarse Weblate para utilizar inquilinos comunes o específicos para la autenticación.

La URL redireccionada es https://WEBLATE SERVER/accounts/complete/azuread-oauth2/ para las actividades comunes y https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/ para la autenticación específica del usuario.

Necesitarás lo siguiente:

  • El ID de la aplicación (cliente) está disponible en la vista previa de registro en el centro de administración Microsoft Entra. El Object ID no es utilizado en Weblate.

  • Se necesita el ID de directorio (inquilino) para la autenticación del ámbito del inquilino, que es lo que generalmente se desea.

  • El Valor secreto es mostrado una vez que se cree un secreto de cliente para el registro de aplicación. El ID secreto no se utiliza en Weblate.

# Microsoft Entra ID common

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.azuread.AzureADOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# OAuth2 keys
SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = ""
SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = ""
# Microsoft Entra ID with Tenant

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.azuread_tenant.AzureADTenantOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Application (client) ID
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY = ""
# Secret value
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET = ""
# Directory (tenant) ID
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID = ""

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Slack

Para utilizar Slack OAuth 2, es necesario registrar una aplicación en <https://api.slack.com/apps>.

La URL redireccionada es https://WEBLATE SERVER/accounts/complete/slack/.

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.slack.SlackOAuth2",
    "social_core.backends.email.EmailAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_SLACK_KEY = ""
SOCIAL_AUTH_SLACK_SECRET = ""

Nota

La URL callback proporcionada por Weblate durante la autenticación incluye el dominio configurado. En caso de que se produzcan errores sobre la falta de coincidencia de la URL, es posible que desees arreglar esto, ver Establecer el dominio del sitio correcto.

Ver también

Slack

Anulación de los nombres e iconos de los métodos de autenticación

You can override the authentication method display name and icon using settings as SOCIAL_AUTH_<NAME>_IMAGE and SOCIAL_AUTH_<NAME>_TITLE. For example overriding naming for Auth0 would look like:

SOCIAL_AUTH_AUTH0_IMAGE = "custom.svg"
SOCIAL_AUTH_AUTH0_TITLE = "Custom auth"

Desactivar la autenticación por contraseña

La autenticación por correo electrónico y contraseña puede desactivarse eliminando social_core.backends.email.EmailAuth desde AUTHENTICATION_BACKENDS. Mantén siempre weblate.accounts.auth.WeblateUserBackend, es necesaria para la funcionalidad principal de Weblate.

Deshabilitar la autenticación por correo electrónico deshabilitará todas las funciones relacionadas con este: invitación de usuario o la función para restablecer la contraseña.

Truco

Todavía puede usar la autenticación de contraseña para la interfaz administrativa, para los usuarios que crea allí manualmente. Simplemente navegue a /admin/login/.

Por ejemplo, la autenticación utilizando sólo el proveedor Open ID de openSUSE se puede lograr con lo siguiente:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.suse.OpenSUSEOpenId",
    "weblate.accounts.auth.WeblateUserBackend",
)

Autenticación por contraseña

Por defecto settings.py viene con un paquete razonable de AUTH_PASSWORD_VALIDATORS que asegura que las contraseñas débiles no son permitidas. Puede ajustar estos parámetros para coincidir su normativa de contraseña.

Adicionalmente, puedes además instalar django-zxcvbn-password-validator lo cual ofrece estimaciones bastante realistas de la dificultad de las contraseñas y permite rechazar las contraseñas por debajo de un cierto umbral.

Autenticación por SAML

Added in version 4.1.1.

Distinto en la versión 5.12: Las dependencias para autenticación SAML no es incluida más larga en las extras predeterminada todo. Necesita incluir saml mientras instala el paquete Weblate utilizando pip (uv pip install Weblate[all,saml]).

Siga las instrucciones de Python Social Auth para la configuración. Diferencias notables:

  • Weblate soporta un único IDP que se debe llamar weblate en SOCIAL_AUTH_SAML_ENABLED_IDPS.

  • La URL de los metadatos XML de SAML es /accounts/metadata/saml/, la cual además es un ID de entidad.

  • EL URL de acceso es /accounts/complete/saml/ (además conocido como URL ACS).

  • Los siguientes ajustes se rellenan automáticamente: SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT

Ejemplo de configuración:

# Authentication configuration
AUTHENTICATION_BACKENDS = (
    "social_core.backends.email.EmailAuth",
    "social_core.backends.saml.SAMLAuth",
    "weblate.accounts.auth.WeblateUserBackend",
)

# Social auth backends setup
SOCIAL_AUTH_SAML_SP_ENTITY_ID = f"https://{SITE_DOMAIN}/accounts/metadata/saml/"
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = "-----BEGIN CERTIFICATE-----"
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----"
SOCIAL_AUTH_SAML_ENABLED_IDPS = {
    "weblate": {
        "entity_id": "https://idp.testshib.org/idp/shibboleth",
        "url": "https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO",
        "x509cert": "MIIEDjCCAvagAwIBAgIBADA ... 8Bbnl+ev0peYzxFyF5sQA==",
    }
}
SOCIAL_AUTH_SAML_ORG_INFO = {
    "en-US": {
        "name": "example",
        "displayname": "Example Inc.",
        "url": "http://example.com"
    }
}
SOCIAL_AUTH_SAML_TECHNICAL_CONTACT = {
    "givenName": "Tech Gal",
    "emailAddress": "technical@example.com"
}
SOCIAL_AUTH_SAML_SUPPORT_CONTACT = {
    "givenName": "Support Guy",
    "emailAddress": "support@example.com"
}

Puedes generar una pareja de claves utilizando:

openssl req -newkey rsa:4096 -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.key

La configuración por defecto extrae los detalles del usuario de los atributos a continuación, configura tu IdP para proporcionarlos:

Atributo

Referencia de URI de SAML

Nombre completo

urn:oid:2.5.4.3

Nombre

urn:oid:2.5.4.42

Apellidos

urn:oid:2.5.4.4

Correo-e

urn:oid:0.9.2342.19200300.100.1.3

Apodo

urn:oid:0.9.2342.19200300.100.1.1

Cuando configura Weblate SP en su IdP, está recomendado elegir persistencia Nombre de formato ID.

Consejo

El ejemplo anterior y la imagen de Docker definen un IdP invocado weblate. Es posible que deba configurar esta cadena como Retransmisión en su IdP.

Nota

La autenticación de Weblate depende del parámetro RelayState que se pasa durante el proceso de autenticación. Esto necesita configurarse con algunos proveedores de identidad:

Autenticación LDAP

La autenticación LDAP puede lograrse mejor utilizando el paquete django-auth-ldap. Puedes instalarlo por los medios habituales:

# Using PyPI
uv pip install 'django-auth-ldap>=1.3.0'

# Using apt-get
apt-get install python-django-auth-ldap

Consejo

Este paquete está incluido en el contenedor Docker, véase Instalar con Docker.

Nota

Hay algunas incompatibilidades en el módulo LDAP 3.1.0 de Python, la cual podrían impedirte utilizar esa versión. Si se produce el error AttributeError: “module” object has no attribute “_trace_level”, podría ayudar la actualización de python-ldap a la versión 3.0.0.

Una vez que tengas el paquete instalado, lo puedes enlazar a la autenticación de Django:

# Add LDAP backed, keep Django one if you want to be able to sign in
# even without LDAP for admin account
AUTHENTICATION_BACKENDS = (
    "django_auth_ldap.backend.LDAPBackend",
    "weblate.accounts.auth.WeblateUserBackend",
)

# LDAP server address
AUTH_LDAP_SERVER_URI = "ldaps://ldap.example.net"

# DN to use for authentication
AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,o=Example"
# Depending on your LDAP server, you might use a different DN
# like:
# AUTH_LDAP_USER_DN_TEMPLATE = 'ou=users,dc=example,dc=com'

# List of attributes to import from LDAP upon sign in
# Weblate stores full name of the user in the full_name attribute
AUTH_LDAP_USER_ATTR_MAP = {
    "full_name": "name",
    # Use the following if your LDAP server does not have full name
    # Weblate will merge them later
    # 'first_name': 'givenName',
    # 'last_name': 'sn',
    # Email is required for Weblate (used in VCS commits)
    "email": "mail",
}
# Optional: route "Forgot your password?" to your LDAP self-service page
PASSWORD_RESET_URL = "https://id.example.net/password-reset/"


# Hide the registration form
REGISTRATION_OPEN = False

Nota

Deberías eliminar 'social_core.backends.email.EmailAuth' de la configuración AUTHENTICATION_BACKENDS, de lo contrario los usuarios podrán establecer tu contraseña en Weblate, y autenticarse usando eto. Mantener 'weblate.accounts.auth.WeblateUserBackend' todavía es necesario para hacer permisos y permitir a los usuarios anónimos. También te permitirá iniciar sesión usando una cuenta de administrador local, si la has creado (por ejemplo, usando createadmin).

Uso de la contraseña de enlace

Si no puedes usar el enlace directo para la autenticación, tendrás que utilizar la búsqueda y proporcionar un usuario para el enlace de la búsqueda. Por ejemplo:

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "ou=users,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"
)

Integración con Active Directory

import ldap
from django_auth_ldap.config import LDAPSearch, NestedActiveDirectoryGroupType

AUTH_LDAP_BIND_DN = "CN=ldap,CN=Users,DC=example,DC=com"
AUTH_LDAP_BIND_PASSWORD = "password"

# User and group search objects and types
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "CN=Users,DC=example,DC=com", ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"
)

# Make selected group a superuser in Weblate
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    # is_superuser means user has all permissions
    "is_superuser": "CN=weblate_AdminUsers,OU=Groups,DC=example,DC=com",
}

# Map groups from AD to Weblate
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
    "OU=Groups,DC=example,DC=com", ldap.SCOPE_SUBTREE, "(objectClass=group)"
)
AUTH_LDAP_GROUP_TYPE = NestedActiveDirectoryGroupType()
AUTH_LDAP_FIND_GROUP_PERMS = True

# Optionally enable group mirroring from LDAP to Weblate
# AUTH_LDAP_MIRROR_GROUPS = True

Autenticación CAS

Se puede implantar una autenticación CAS al utilizar un paquete como Django CAS NG.

El primer paso consiste en revelar el campo Correo electrónico del usuario mediante CAS. Esto debe configurarse en el propio servidor CAS, y necesitará ejecutar al menos la versión 2 de CAS, ya que CAS v1 no admite atributos.

El segundo paso será actualizar Weblate para que utilice el servidor y los atributos de CAS.

Para instalar Django CAS NG:

uv pip install django-cas-ng

Una vez que haya instalado el paquete, puede conectarlo con el sistema de autenticación de Django; para ello, modifique el archivo settings.py:

# Add CAS backed, keep the Django one if you want to be able to sign in
# even without LDAP for the admin account
AUTHENTICATION_BACKENDS = (
    "django_cas_ng.backends.CASBackend",
    "weblate.accounts.auth.WeblateUserBackend",
)

# CAS server address
CAS_SERVER_URL = "https://cas.example.net/cas/"

# Add django_cas_ng somewhere in the list of INSTALLED_APPS
INSTALLED_APPS = (..., "django_cas_ng")

Finalmente, se puede utilizar una señal para vincular el campo Correo electrónico y el objeto de usuario. Para que esto funcione, debe importar la señal del paquete django-cas-ng y conectar su código con esta señal. Realizar esto en el archivo de configuración puede causar problemas, por lo cual se recomienda ponerlo:

  • En el método django.apps.AppConfig.ready() de la configuración de su aplicación

  • En el archivo urls.py del proyecto (cuando no existan modelos)

from django_cas_ng.signals import cas_user_authenticated
from django.dispatch import receiver


@receiver(cas_user_authenticated)
def update_user_email_address(sender, user=None, attributes=None, **kwargs):
    # If your CAS server does not always include the email attribute
    # you can wrap the next two lines of code in a try/catch block.
    user.email = attributes["email"]
    user.save()

Configurar la autenticación de Django de terceros

Generalmente cualquier programa adicional Django funciona con Weblate. Solo hay que seguir las instrucciones del programa adicional. Se recomienda tener el soporte de usuario Weblate instalado.

Normalmente la instalación consiste en agregar un soporte de autenticación en AUTHENTICATION_BACKENDS e instalar una aplicación de autenticación (si la hay) en INSTALLED_APPS:

AUTHENTICATION_BACKENDS = (
    # Add authentication backend here
    "weblate.accounts.auth.WeblateUserBackend",
)

INSTALLED_APPS += (
    # Install authentication app here
)

Autenticación en dos fases

Added in version 5.7.

Consejo

La autenticación en dos fases añade otra capa de seguridad a tu cuenta al requerir algo más que una contraseña para iniciar sesión.

Weblate admite los siguientes segundos factores:

Claves de seguridad (WebAuthn)

Se admiten tanto Passkeys como claves de seguridad.

Las Passkeys validan tu identidad mediante el tacto, el reconocimiento facial, una contraseña del dispositivo o un PIN, ya que incluyen la verificación del usuario.

Las claves de seguridad son credenciales WebAuthn que sólo pueden utilizarse como segundo factor de autenticación, y éstas solo validan la presencia del usuario.

Aplicaciones de autenticación (TOTP)

Las aplicaciones de autenticación y las extensiones de navegador como Aegis, Bitwarden, Google Authenticator, 1Password, Authy, Microsoft Authenticator, etc. generan contraseñas de un solo uso que se utilizan como segundo factor para verificar su identidad cuando se le solicita durante el inicio de sesión.

Códigos de recuperación

Los códigos de recuperación pueden utilizarse para acceder a tu cuenta si pierdes el acceso a tu dispositivo y no puedes recibir códigos de autenticación en dos fases.

Mantenga sus códigos de recuperación tan seguros como su contraseña. Te recomendamos guardarlos con un gestor de contraseñas como Bitwarden, 1Password, Authy o Keeper.

Cada usuario puede configurar esto en Cuenta y se requerirá un segundo factor para firmar además del método de autenticación existente.

Esto se puede aplicar a los usuarios a nivel de proyecto (consulte Autenticación en dos fases obligatoria) o de equipo. En implementaciones a nivel de sitio, también se puede usar para aplicar la autenticación de dos factores a todos los usuarios habilitándola en el equipo predeterminado Users, que se asigna automáticamente a los nuevos usuarios mediante automatic team assignment.

Los permisos de un equipo con autenticación de dos factores forzada no se aplicarán a los usuarios que no la tengan configurada.