Autenticació

Registre d’usuari

La configuració predeterminada de Weblate és utilitzar python-social-auth, un formulari del lloc web per gestionar el registre de nous usuaris. Després de confirmar el seu correu electrònic, un nou usuari pot contribuir o autenticar-se mitjançant un dels serveis de tercers.

També podeu desactivar el registre d’usuaris nous mitjançant REGISTRATION_OPEN.

Els intents d’autenticació estan subjectes a Limitació de tarifes.

Backends d’autenticació

Weblate confia en Django per a l’autenticació. Això inclou l’autenticació integrada basada en contrasenyes, l’autenticació social i els backends d’autenticació de tercers per a Django.

L’ús de l’autenticació integrada de Django significa que podeu importar la base de dades d’usuaris d’altres projectes basats en Django (vegeu Migrant des de Pootle).

Vegeu també

Configuració d’autenticació descriu com configurar l’autenticació a la imatge oficial de Docker.

Autenticació social

Gràcies a Welcome to Python Social Auth’s documentation!, Weblate admet l’autenticació mitjançant molts serveis de tercers com GitLab, Ubuntu, Fedora, etc.

Consulteu la seva documentació per obtenir instruccions genèriques de configuració a Django Framework.

Nota

Per defecte, Weblate es basa en serveis d’autenticació de tercers per proporcionar una adreça de correu electrònic validada. Si alguns dels serveis que voleu utilitzar no ho admeten, feu servir la validació del correu electrònic al costat de Weblate configurant FORCE_EMAIL_VALIDATION per a ells. Per exemple:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

Vegeu també

Pipeline

Habilitar backends individuals és bastant fàcil, només es tracta d’afegir una entrada a la configuració AUTHENTICATION_BACKENDS i possiblement d’afegir les claus necessàries per a un mètode d’autenticació determinat. Tingueu en compte que alguns backends no proporcionen correu electrònic de l’usuari de manera predeterminada, l’heu de sol·licitar de manera explícita, en cas contrari, Weblate no podrà acreditar correctament les contribucions que fan els usuaris.

Suggeriment

La majoria dels backends d’autenticació requereixen HTTPS. Una vegada que HTTPS estigui habilitat al vostre servidor web, configureu Weblate per informar-ne correctament mitjançant ENABLE_HTTPS, o per WEBLATE_ENABLE_HTTPS al contenidor de Docker.

Autenticació OpenID

Per als serveis basats en OpenID, normalment només es tracta d’habilitar-los. La secció següent habilita l’autenticació OpenID per a OpenSUSE, Fedora i 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",
)

Vegeu també

OpenID

Autenticació GitHub

Heu de registrar una aplicació OAuth a GitHub i, a continuació, dir-li a Weblate tots els seus secrets:

# 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"]

El GitHub s’ha de configurar per tenir un URL de retorn de trucada com a https://WEBLATE SERVER/accounts/complete/github/.

There are similar authentication backends for GitHub for Organizations and GitHub for Teams. Their settings are named SOCIAL_AUTH_GITHUB_ORG_* and SOCIAL_AUTH_GITHUB_TEAM_*, and they require additional setting of the scope - SOCIAL_AUTH_GITHUB_ORG_NAME or SOCIAL_AUTH_GITHUB_TEAM_ID. Their callback URLs are https://WEBLATE SERVER/accounts/complete/github-org/ and https://WEBLATE SERVER/accounts/complete/github-teams/.

Nota

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

GitHub

GitHub EE authentication

Heu de registrar una aplicació OAuth a GitHub EE i després dir-li a Weblate tots els seus secrets:

# 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"]

L’aplicació OAuth de GitHub s’ha de configurar per tenir un URL de retorn de trucada com a https://WEBLATE SERVER/accounts/complete/github-enterprise/.

En lloc de l’aplicació GitHub OAuth, també es pot utilitzar l’aplicació GitHub. Amb l’aplicació GitHub, es poden concedir permisos a nivell de repositoris, organització i/o usuari. Si decidiu utilitzar l’aplicació GitHub, heu d’habilitar el permís «Accés: només de lectura» per als usuaris - <Email addresses> i l’organització - <Members>.

Nota

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

Backend classes

Autenticació Bitbucket

Heu de registrar una aplicació a Bitbucket i després dir-li a Weblate tots els seus secrets:

# 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

Bitbucket

Google OAuth 2

Per utilitzar Google OAuth 2, heu de registrar una aplicació OAuth a <https://console.developers.google.com/>.

L’URL de redirecció és 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

Google

Facebook OAuth 2

Com és habitual amb els serveis OAuth 2, heu de registrar la vostra aplicació a Facebook. Un cop fet això, podeu configurar Weblate per utilitzar-lo:

L’URL de redirecció és 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

Facebook

GitLab OAuth 2

Per utilitzar GitLab OAuth 2, heu de registrar una aplicació a <https://gitlab.com/profile/applications>.

L’URL de redirecció és https://WEBLATE SERVER/accounts/complete/gitlab/ i assegureu-vos de marcar l’àmbit 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

GitLab

Gitea OAuth 2

Per utilitzar Gitea OAuth 2, heu de registrar una aplicació a https://GITEA SERVER/user/settings/applications.

L’URL de redirecció és 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Nota

La configuració anterior també funciona amb Forgejo; per obtenir un exemple de desplegament de producció amb Forgejo, vegeu Codeberg Translate.

Vegeu també

Gitea

ID d’entrada de Microsoft

L’Azure Active Directory (Azure AD) és ara Microsoft Entra ID. Weblate manté els noms de backend azuread-oauth2 i azuread-tenant-oauth2 per a la compatibilitat amb els backends subjacents de Python Social Auth i els desplegaments existents.

Weblate es pot configurar per utilitzar inquilins comuns o específics per a l’autenticació.

L’URL de redirecció és https://WEBLATE SERVER/accounts/complete/azuread-oauth2/ per a l’autenticació comuna i https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/ per a l’autenticació específica de l’inquilí.

Necessitareu el següent:

  • L’identificador de l’aplicació (client) està disponible a la visió general del registre de l’aplicació al centre d’administració de Microsoft Entra. L’ID d’objecte no s’utilitza a Weblate.

  • L’identificador del directori (inquilí) és necessari per a l’autenticació de l’àmbit de l’inquilí, el que normalment es desitja.

  • El valor secret es mostra un cop creeu un secret de client per al registre de l’aplicació. La identificació secreta no s’utilitza a 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Slack

Per utilitzar Slack OAuth 2, heu de registrar una aplicació a <https://api.slack.com/apps>.

L’URL de redirecció és 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

L’URL de retorn de trucada proporcionat per Weblate durant l’autenticació inclou el domini configurat. En cas que rebeu errors sobre la discrepància d’URL, potser voldreu solucionar-ho, consulteu Establiu el domini del lloc correcte.

Vegeu també

Slack

Anul·lació de noms i icones de mètodes d’autenticació

Podeu substituir el nom de visualització i la icona del mètode d’autenticació mitjançant la configuració com SOCIAL_AUTH_<NAME>_IMAGE i SOCIAL_AUTH_<NAME>_TITLE. Per exemple, anul·lar el nom per a Auth0 seria així:

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

S’està desactivant l’autenticació de contrasenya

L’autenticació de correu electrònic i contrasenya es pot desactivar eliminant social_core.backends.email.EmailAuth de AUTHENTICATION_BACKENDS. Mantingueu sempre allà weblate.accounts.auth.WeblateUserBackend, és necessari per a la funcionalitat bàsica de Weblate.

Si desactiveu l’autenticació del correu electrònic, es desactivarà tota la funcionalitat relacionada amb el correu electrònic: invitació d’usuari o funció de restabliment de la contrasenya.

Truc

Encara podeu utilitzar l’autenticació de contrasenya per a la interfície d’administració, per als usuaris que hi creeu manualment. Només cal que aneu a /admin/login/.

Per exemple, l’autenticació utilitzant només el proveïdor d’openSUSE Open ID es pot aconseguir mitjançant el següent:

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

Autenticació de contrasenya

El settings.py predeterminat inclou un conjunt raonable de AUTH_PASSWORD_VALIDATORS que garanteix que no es permetin contrasenyes febles. Podeu personalitzar aquesta configuració perquè coincideixi amb la vostra política de contrasenyes.

A més, també podeu instal·lar django-zxcvbn-password-validator que ofereix estimacions força realistes de la dificultat de la contrasenya i permet rebutjar contrasenyes per sota d’un determinat llindar.

Autenticació SAML

Afegit a la versió 4.1.1.

Canviat a la versió 5.12: Les dependències per a l’autenticació SAML ja no s’inclouen als extres per defecte tots. Heu d’incloure saml mentre instal·leu el paquet Weblate amb pip (uv pip install Weblate[all,saml]).

Si us plau, seguiu les instruccions d’autenticació social de Python per a la configuració. Diferències notables:

  • Weblate admet IDP únic que s’ha d’anomenar weblate a SOCIAL_AUTH_SAML_ENABLED_IDPS.

  • L’URL de metadades XML de SAML és /accounts/metadata/saml/, que també és un identificador d’entitat.

  • L’URL d’inici de sessió és /accounts/complete/saml/ (també conegut com a URL ACS).

  • La configuració següent s’omple automàticament: SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT

Exemple de configuració:

# 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"
}

Podeu generar un nou parell de claus utilitzant:

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

La configuració predeterminada extreu els detalls de l’usuari dels atributs següents, configureu el vostre IdP per proporcionar-los:

Attribute

SAML URI reference

Nom complet

urn:oid:2.5.4.3

First name

urn:oid:2.5.4.42

Last name

urn:oid:2.5.4.4

Adreça electrònica

urn:oid:0.9.2342.19200300.100.1.3

Nom d’usuari

urn:oid:0.9.2342.19200300.100.1.1

Quan configureu Weblate SP al vostre IdP, es recomana triar Format d’ID de nom persistent.

Suggeriment

Some identity providers (such as Microsoft Entra ID with multi-factor authentication) require disabling the default requestedAuthnContext in the SAML security configuration:

SOCIAL_AUTH_SAML_SECURITY_CONFIG = {"requestedAuthnContext": False}

In Docker, set WEBLATE_SAML_SECURITY_CONFIG instead.

Suggeriment

L’exemple anterior i la imatge de Docker defineixen un IdP anomenat weblate. És possible que hàgiu de configurar aquesta cadena com a Relay al vostre IdP.

Nota

L’autenticació de Weblate es basa en el paràmetre RelayState que s’ha de passar pel procés d’autenticació. Això s’ha de configurar amb alguns proveïdors d’identitat:

Autenticació LDAP

L’autenticació LDAP es pot aconseguir millor utilitzant el paquet django-auth-ldap. Podeu instal·lar-lo mitjançant els mitjans habituals:

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

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

Suggeriment

Aquest paquet està inclòs al contenidor de Docker, vegeu Instal·lació mitjançant Docker.

Nota

Hi ha algunes incompatibilitats al mòdul Python LDAP 3.1.0, que poden impedir que utilitzeu aquesta versió. Si obteniu l’error AttributeError: l’objecte “mòdul” no té l’atribut “_trace_level”, la baixada de python-ldap a 3.0.0 pot ajudar.

Un cop hàgiu instal·lat el paquet, podeu connectar-lo a l’autenticació 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

Hauríeu d’eliminar 'social_core.backends.email.EmailAuth' de la configuració AUTHENTICATION_BACKENDS, en cas contrari els usuaris podran establir la seva contrasenya a Weblate i autenticar-se utilitzant-la. Mantenir 'weblate.accounts.auth.WeblateUserBackend' encara és necessari per obtenir permisos i facilitar usuaris anònims. També us permetrà iniciar la sessió amb un compte d’administrador local, si l’heu creat (per exemple, utilitzant createadmin).

Utilitzant la contrasenya d’enllaç

Si no podeu utilitzar l’enllaç directe per a l’autenticació, haureu d’utilitzar la cerca i proporcionar un usuari per vincular-lo per a la cerca. Per exemple:

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)"
)

Active Directory integration

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ó CAS

L’autenticació CAS es pot aconseguir mitjançant un paquet com Django CAS NG.

El primer pas és revelar el camp de correu electrònic de l’usuari mitjançant CAS. Això s’ha de configurar al propi servidor CAS i requereix que executeu almenys CAS v2, ja que CAS v1 no admet en absolut els atributs.

El segon pas és actualitzar Weblate per utilitzar el servidor CAS i els atributs.

Per instal·lar Django CAS NG:

uv pip install django-cas-ng

Un cop tingueu el paquet instal·lat, podeu connectar-lo al sistema d’autenticació de Django modificant el fitxer 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")

Finalment, es pot utilitzar un senyal per assignar el camp de correu electrònic a l’objecte d’usuari. Perquè això funcioni, heu d’importar el senyal del paquet django-cas-ng i connectar el vostre codi amb aquest senyal. Fer-ho al fitxer de configuració pot causar problemes, per tant, es recomana posar-ho:

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()

Configuració de l’autenticació de Django de tercers

En general, qualsevol connector d’autenticació de Django hauria de funcionar amb Weblate. Només cal que seguiu les instruccions del connector, només recordeu mantenir instal·lat el backend de l’usuari de Weblate.

Normalment, la instal·lació consistirà en afegir un backend d’autenticació a AUTHENTICATION_BACKENDS i instal·lar una aplicació d’autenticació (si n’hi ha) a INSTALLED_APPS:

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

INSTALLED_APPS += (
    # Install authentication app here
)

Autenticació de doble factor

Afegit a la versió 5.7.

Suggeriment

L’autenticació de dos factors afegeix una altra capa de seguretat al vostre compte ja que requereix més que una contrasenya per iniciar la sessió.

Weblate supports the following second factors:

Claus de seguretat (WebAuthn)

Both, Passkeys and security keys are supported.

Les claus d’accés validen la vostra identitat mitjançant el tacte, el reconeixement facial, la contrasenya del dispositiu o un PIN, ja que inclouen la verificació d’usuari.

Les claus de seguretat són credencials de WebAuthn que només es poden utilitzar com a segon factor d’autenticació i només validen la presència de l’usuari.

Aplicacions d’autenticació (TOTP)

Les aplicacions d’autenticació i les extensions del navegador com Aegis, Bitwarden, Google Authenticator, 1Password, Authy, Microsoft Authenticator, etc. generen contrasenyes d’un sol ús basades en el temps que s’utilitzen com a segon factor per verificar la vostra identitat quan se us demani durant l’inici de sessió.

Codis de recuperació

Els codis de recuperació es poden utilitzar per accedir al vostre compte si perdeu l’accés al dispositiu i no podeu rebre codis d’autenticació de dos factors.

Mantingueu els vostres codis de recuperació tan segurs com la vostra contrasenya. Us recomanem que les deseu amb un gestor de contrasenyes com ara Bitwarden, 1Password, Authy o Keeper.

../_images/authentication.webp

Cada usuari pot configurar-ho a Compte i caldrà que signi un segon factor a més del mètode d’autenticació existent.

Això es pot aplicar per als usuaris del projecte (vegeu Autenticació forçada de dos factors) o a nivell d’equip. En els desplegaments a tot el lloc, també es pot utilitzar per fer complir l’autenticació de dos factors per a tots els usuaris activant-la a l’equip predeterminat Usuaris, que s’assigna automàticament als nous usuaris mitjançant assignació automàtica d’equip.

Els permisos d’un equip amb una autenticació de dos factors forçada no s’aplicaran als usuaris que no la tinguin configurada.