Autentificare

Înregistrare utilizator

Configurația implicită pentru Weblate este de a utiliza python-social-auth, un formular pe site-ul web pentru a gestiona înregistrarea noilor utilizatori. După confirmarea e-mail-ului, un nou utilizator poate contribui sau se poate autentifica prin utilizarea unuia dintre serviciile terților.

De asemenea, puteți dezactiva înregistrarea noilor utilizatori folosind REGISTRATION_OPEN.

Încercările de autentificare sunt supuse Limitarea ratei.

Backend-uri de autentificare

Pentru autentificare se folosește soluția integrată în Django, care include diverse opțiuni sociale. Folosirea acesteia înseamnă că puteți importa baza de date de utilizatori din alte proiecte bazate pe Django (see Migrarea de la Pootle).

În plus, Django poate fi configurat pentru a se autentifica și prin alte mijloace.

Vezi și

Setări de autentificare descrie modul de configurare a autentificării în imaginea oficială Docker.

Autentificare socială

Datorită Welcome to Python Social Auth’s documentation!, Weblate suportă autentificarea cu ajutorul multor servicii terțe, cum ar fi GitLab, Ubuntu, Fedora, etc.

Vă rugăm să consultați documentația lor pentru instrucțiuni de configurare generică în Django Framework.

Notă

În mod implicit, Weblate se bazează pe serviciile de autentificare ale unor terțe părți pentru a furniza o adresă de e-mail validată. Dacă unele dintre serviciile pe care doriți să le utilizați nu acceptă acest lucru, vă rugăm să impuneți validarea e-mailului pe partea Weblate prin configurarea FORCE_EMAIL_VALIDATION pentru acestea. De exemplu:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

Vezi și

Pipeline

Activarea backend-urilor individuale este destul de ușoară, este doar o chestiune de adăugare a unei intrări la AUTHENTICATION_BACKENDS și, eventual, adăugarea cheilor necesare pentru o anumită metodă de autentificare. Vă rugăm să rețineți că unele backend-uri nu furnizează în mod implicit e-mailul utilizatorului, trebuie să îl solicitați în mod explicit, altfel Weblate nu va putea să crediteze în mod corespunzător contribuțiile pe care le fac utilizatorii.

Sugestie

Cele mai multe dintre backend-urile de autentificare necesită HTTPS. Odată ce HTTPS este activat în serverul dvs. web, vă rugăm să configurați Weblate pentru a-l raporta în mod corespunzător folosind ENABLE_HTTPS sau prin WEBLATE_ENABLE_HTTPS în containerul Docker.

Vezi și

Python Social Auth backend <psa:backends/index>`

Autentificare OpenID

În cazul serviciilor bazate pe OpenID, de obicei este vorba doar de activarea acestora. Următoarea secțiune permite autentificarea OpenID pentru 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",
)

Vezi și

OpenID

Autentificarea GitHub

Trebuie să înregistrați o aplicație OAuth pe GitHub și apoi să-i spuneți lui Weblate toate secretele sale:

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

The GitHub should be configured to have callback URL as 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/.

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

GitHub

GitHub EE authentication

You need to register an OAuth App on GitHub EE and then tell Weblate all its 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"]

The GitHub OAuth App should be configured to have callback URL as https://WEBLATE SERVER/accounts/complete/github-enterprise/.

Instead GitHub OAuth App, GitHub App can also be used. With GitHub App permissions can be granted on repositories, organisation and/or user level. If you decide to use GitHub App, you need to enable Access: Read-only permission for Users - <Email addresses> and Organisation - <Members>.

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Autentificarea Bitbucket

Trebuie să înregistrați o aplicație pe Bitbucket și apoi să-i spuneți lui Weblate toate secretele sale:

# 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

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

Bitbucket

Google OAuth 2

To use Google OAuth 2, you need to register an application at <https://console.developers.google.com/> and enable the Google+ API.

URL-ul de redirecționare este 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"

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

Google

Facebook OAuth 2

Ca de obicei în cazul serviciilor OAuth 2, trebuie să vă înregistrați aplicația cu Facebook. După ce ați făcut acest lucru, puteți configura Weblate pentru a o utiliza:

URL-ul de redirecționare este 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"]

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

Facebook

GitLab OAuth 2

For using GitLab OAuth 2, you need to register an application at <https://gitlab.com/profile/applications>.

URL-ul de redirecționare este https://WEBLATE SERVER/accounts/complete/gitlab/ și asigurați-vă că ați marcat domeniul 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/'

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

GitLab

Gitea OAuth 2

For using Gitea OAuth 2, you need to register an application at https://GITEA SERVER/user/settings/applications.

The redirect URL is 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/"

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Notă

The configuration above also works with Forgejo; for an example of production deployment with Forgejo, see Codeberg Translate

Vezi și

Gitea

Microsoft Azure directoare active

Weblate poate fi configurat pentru a utiliza chiriași comuni sau specifici pentru autentificare.

URL-ul de redirecționare este https://WEBLATE SERVER/accounts/complete/azuread-oauth2/ pentru autentificarea comună și https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/ pentru autentificarea specifică chiriașilor.

You will need following:

  • Application (client) ID can be obtained from application page. Object ID is not used in Weblate.

  • Directory (tenant) ID is needed for tenant scoped authentication, what is usually desired.

  • Secret value is displayed once you generate a secret for an application. Secret ID is not used in Weblate.

# Azure AD 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 = ""
# Azure AD 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 = ""

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Slack

For using Slack OAuth 2, you need to register an application at <https://api.slack.com/apps>.

URL-ul de redirecționare este 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 = ""

Notă

URL-ul de callback furnizat de Weblate în timpul autentificării include domeniul configurat. În cazul în care primiți erori privind neconcordanța URL-ului, poate doriți să remediați acest lucru, consultați Setați domeniul corect al site-ului.

Vezi și

Slack

Suprascrierea numelor și pictogramelor metodelor de autentificare

Puteți suprascrie numele de afișare și pictograma metodei de autentificare utilizând setările SOCIAL_AUTH_<NAME>_IMAGE și SOCIAL_AUTH_<NAME>_TITLE. De exemplu, suprapunerea denumirii pentru Auth0 ar arăta astfel:

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

Dezactivarea autentificării prin parolă

Autentificarea prin e-mail și parolă poate fi dezactivată prin eliminarea social_core.backends.email.EmailAuth din AUTHENTICATION_BACKENDS. Păstrați întotdeauna weblate.accounts.auth.WeblateUserBackend acolo, este necesar pentru funcționalitatea de bază a Weblate.

Dezactivarea autentificării prin e-mail va dezactiva toate funcționalitățile legate de e-mail - invitația utilizatorului sau funcția de resetare a parolei.

Sfat

Puteți utiliza în continuare autentificarea prin parolă pentru interfața de administrare, pentru utilizatorii pe care îi creați manual acolo. Trebuie doar să navigați la /admin/login/.

De exemplu, autentificarea folosind doar furnizorul openSUSE Open ID poate fi realizată folosind următoarele:

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

Autentificarea prin parolă

Fișierul implicit settings.py vine cu un set rezonabil de AUTH_PASSWORD_VALIDATORS:

  • Parolele nu pot fi prea asemănătoare cu alte informații personale.

  • Parolele trebuie să conțină cel puțin 10 caractere.

  • Parolele nu pot fi o parolă folosită în mod obișnuit.

  • Parolele nu pot fi în întregime numerice.

  • Parolele nu pot fi formate dintr-un singur caracter sau numai din spații albe.

  • Parolele nu se pot potrivi cu o parolă pe care ați folosit-o în trecut.

Puteți personaliza această setare pentru a se potrivi cu politica dumneavoastră privind parolele.

În plus, puteți instala și django-zxcvbn-password care oferă estimări destul de realiste ale dificultății parolelor și permite respingerea parolelor sub un anumit prag.

Autentificare SAML

Added in version 4.1.1.

Vă rugăm să urmați instrucțiunile Python Social Auth pentru configurare. Diferențe notabile:

  • Weblate acceptă un singur IDP care trebuie să fie numit weblate în SOCIAL_AUTH_SAML_ENABLED_IDPS`.

  • URL-ul metadatelor SAML XML este /accounts/metadata/saml/.

  • Următoarele setări sunt completate automat: SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT

Exemplu de configurare:

# 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==",
        "attr_name": "full_name",
        "attr_username": "username",
        "attr_email": "email",
    }
}
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"
}

Configurația implicită extrage detaliile utilizatorului din următoarele atribute, configurați IDP-ul dumneavoastră pentru a le furniza:

Atributul

Referință SAML URI

Nume complet

urn:oid:2.5.4.3

Prenume

urn:oid:2.5.4.42

Numele de familie

urn:oid:2.5.4.4

Email

urn:oid:0.9.2342.19200300.100.1.3

Nume de utilizator

urn:oid:0.9.2342.19200300.100.1.1

Sugestie

Exemplul de mai sus și imaginea Docker definesc un IDP denumit``weblate``. Este posibil să fie necesar să configurezi acest șir ca Relay în IDP-ul tău.

Autentificare LDAP

Autentificarea LDAP poate fi realizată cel mai bine folosind pachetul django-auth-ldap. Îl puteți instala prin mijloace obișnuite:

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

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

Sugestie

Acest pachet este inclus în containerul Docker, vezi Instalarea folosind Docker.

Notă

Există unele incompatibilități în modulul Python LDAP 3.1.0, care vă pot împiedica să utilizați această versiune. Dacă primiți eroarea AttributeError: «module» object has no attribute «_trace_level», ar putea fi de ajutor dacă faceți downgrade la python-ldap 3.0.0.

După ce ați instalat pachetul, îl puteți conecta la autentificarea 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",
}

# Hide the registration form
REGISTRATION_OPEN = False

Notă

You should remove 'social_core.backends.email.EmailAuth' from the AUTHENTICATION_BACKENDS setting, otherwise users will be able to set their password in Weblate, and authenticate using that. Keeping 'weblate.accounts.auth.WeblateUserBackend' is still needed in order to make permissions and facilitate anonymous users. It will also allow you to sign in using a local admin account, if you have created it (e.g. by using createadmin).

Utilizarea parolei bind

Dacă nu puteți utiliza direct bind pentru autentificare, va trebui să utilizați căutarea și să furnizați un utilizator care să se lege pentru căutare. De exemplu:

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

Integrarea 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

Autentificare CAS

Autentificarea CAS poate fi realizată cu ajutorul unui pachet precum django-cas-ng.

Primul pas constă în dezvăluirea câmpului de e-mail al utilizatorului prin intermediul CAS. Acest lucru trebuie configurat chiar pe serverul CAS și necesită să rulați cel puțin CAS v2, deoarece CAS v1 nu acceptă deloc atribute.

Al doilea pas este actualizarea Weblate pentru a utiliza serverul CAS și atributele.

Pentru a instala django-cas-ng:

pip install django-cas-ng

După ce ați instalat pachetul, îl puteți conecta la sistemul de autentificare Django modificând fișierul 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")

În cele din urmă, se poate utiliza un semnal pentru a corela câmpul de e-mail cu obiectul utilizator. Pentru ca acest lucru să funcționeze, trebuie să importați semnalul din pachetul django-cas-ng și să vă conectați codul cu acest semnal. Făcând acest lucru în fișierul de setări poate cauza probleme, de aceea este sugerat să îl puneți:

  • În metoda django.apps.AppConfig.ready() din configurația aplicației dvs

  • În fișierul urls.py al proiectului (atunci când nu există modele)

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

Vezi și

Django CAS NG

Configurarea autentificării Django de la o terță parte

În general, orice plugin de autentificare Django ar trebui să funcționeze cu Weblate. Trebuie doar să urmați instrucțiunile pentru plugin, dar nu uitați să păstrați instalat backend-ul de utilizator Weblate.

De obicei, instalarea va consta în adăugarea unui backend de autentificare la AUTHENTICATION_BACKENDS și instalarea unei aplicații de autentificare (dacă există) în INSTALLED_APPS:

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

INSTALLED_APPS += (
    # Install authentication app here
)

Two-factor authentication

Added in version 5.7.

Sugestie

Two-factor authentication adds another layer of security to your account by requiring more than just a password to sign in.

Weblate supports the following second factors:

Security keys (WebAuthn)

Both, Passkeys and security keys are supported.

Passkeys validate your identity using touch, facial recognition, a device password, or a PIN as they include user verification.

Security keys are WebAuthn credentials that can only be used as a second factor of authentication, and these only validate user presence.

Authenticator app (TOTP)

Authenticator apps and browser extensions like Aegis, Bitwarden, Google Authenticator, 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in.

Recovery codes

Recovery codes can be used to access your account if you lose access to your device and cannot receive two-factor authentication codes.

Keep your recovery codes as safe as your password. We recommend saving them with a password manager such as Bitwarden, 1Password, Authy, or Keeper.

Each user can configure this in Cont and second factor will be required to sign in addition to the existing authentication method.

This can be enforced for users at the project (see Enforced two-factor authentication) or team level.

The permissions of a team with enforced two-factor authentication won’t be applied to users who do not have it configured.