Hitelesítés

Felhasználói regisztráció

A Weblate alapértelmezett beállítása a python-social-auth használata, ami egy űrlapot biztosít az új felhasználók regisztrációjához az oldalon. Az e-mail cím megerősítése után az új felhasználó már hozzájárulhat vagy bejelentkezhet valamelyik harmadik féltől származó szolgáltatáson keresztül.

A REGISTRATION_OPEN beállítással a regisztráció lehetősége kikapcsolható.

A hitelesítési kísérletek a sebességkorlátozás hatálya alá esnek.

Hitelesítési háttérrendszerek

A Weblate a Django hitelesítési rendszerére támaszkodik. Ez magában foglalja a beépített jelszóalapú hitelesítést, a közösségi hitelesítést, valamint a Django által támogatott külső hitelesítési háttereket.

A Django beépített hitelesítési rendszerének használata lehetővé teszi más, Django-alapú projektek felhasználói adatbázisának importálását is (lásd: Átállás Pootle rendszerről).

Lásd még

A hivatalos Docker-kép hitelesítési beállításairól lásd: Hitelesítési beállítások.

Közösségi hitelesítés

A Welcome to Python Social Auth’s documentation! jóvoltából a Weblate támogatja számos harmadik fél szolgáltatáson keresztüli hitelesítést, például GitLab, Ubuntu, Fedora stb.

Az általános beállítási útmutatókat a Django Framework dokumentumban található.

Megjegyzés

Alapértelmezés szerint a Weblate a harmadik fél által biztosított hitelesítési szolgáltatásokra támaszkodik, hogy érvényesített e-mail címet kapjon. Ha az Ön által használt szolgáltatások közül valamelyik ezt nem támogatja, akkor a Weblate oldalán kell kötelezővé tenni az e-mail cím megerősítését a FORCE_EMAIL_VALIDATION beállítás konfigurálásával. Például:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

Lásd még

Pipeline

Egyes háttérrendszerek engedélyezése igen egyszerű: mindössze egy bejegyzést kell hozzáadni az AUTHENTICATION_BACKENDS beállításhoz, illetve szükség esetén megadni a megfelelő kulcsokat a választott hitelesítési módhoz. Fontos megjegyezni, hogy egyes háttérrendszerek alapértelmezetten nem adnak meg felhasználói e-mail címet – ilyenkor külön kérni kell azt, különben a Weblate nem tudja megfelelően hozzárendelni a felhasználói közreműködéseket.

Tipp

A legtöbb hitelesítési háttérrendszer HTTPS-kapcsolatot igényel. Miután a HTTPS engedélyezve lett a webszerveren, a Weblate-et is megfelelően be kell állítani az ENABLE_HTTPS segítségével vagy Docker környezetben a WEBLATE_ENABLE_HTTPS változóval.

OpenID hitelesítés

OpenID-alapú szolgáltatások esetén általában csupán azok engedélyezésére van szükség. Az alábbi rész példát mutat OpenID-hitelesítés bekapcsolására az OpenSUSE, Fedora és Ubuntu esetében:

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

Lásd még

OpenID

GitHub hitelesítés

Ehhez OAuth-alkalmazást kell regisztrálni a GitHubon, majd a Weblate-ben megadni az ehhez tartozó titkos kulcsokat:

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

A GitHubot úgy kell konfigurálni, hogy a visszahívási (callback) URL a következő legyen: https://WEBLATE SERVER/accounts/complete/github/.

Hasonló hitelesítési háttérrendszerek érhetők el a GitHub (Organizations) szervezetekhez és GitHub (Teams) csapatokhoz is. Ezek beállításai: SOCIAL_AUTH_GITHUB_ORG_* és SOCIAL_AUTH_GITHUB_TEAM_*, valamint meg kell adni a szükséges tartományt is: SOCIAL_AUTH_GITHUB_ORG_NAME vagy SOCIAL_AUTH_GITHUB_TEAM_ID. A visszahívási (callback) URL-ek ebben az esetben: - https://WEBLATE SERVER/accounts/complete/github-org/ és - https://WEBLATE SERVER/accounts/complete/github-teams/.

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

GitHub

GitHub EE hitelesítés

GitHub (Enterprise) EE esetén OAuth-alkalmazást kell regisztrálni, majd a hozzá tartozó titkos kulcsokat kell megadni a Weblate számára:

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

A GitHub OAuth-alkalmazást úgy kell beállítani, hogy a visszahívási URL: https://WEBLATE SERVER/accounts/complete/github-enterprise/ legyen.

A GitHub OAuth alkalmazás (továbbiakban App) helyett használható GitHub App is. A GitHub App segítségével hozzáférési jogosultságok adhatók meg tárolókra, szervezeti szintre és/vagy felhasználói szintre. Ha GitHub Appot használ, engedélyezni kell az alábbi jogosultságokat: - Access: Read-only a Users – <Email addresses> - és Organisation – <Members> számára.

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

GitHub Enterprise

Bitbucket hitelesítés

A Bitbuckethez OAuth alkalmazást kell regisztrálni, majd a hozzá tartozó titkos kulcsokat kell megadni a Weblate számára:

# 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

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

Bitbucket

Google OAuth 2

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

Az átirányítási URL a következő legyen: 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"

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

Google

Facebook OAuth 2

Ahogy az OAuth 2 szolgáltatásoknál megszokott, a Facebookhoz is regisztrálni kell az alkalmazást. Miután ez megtörtént, a Weblate megfelelően beállítható:

Az átirányítási URL: 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"]

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

Facebook

GitLab OAuth 2

GitLab OAuth 2 használatához regisztrálni kell egy alkalmazást a <https://gitlab.com/profile/applications> címen.

Az átirányítási URL: https://WEBLATE SERVER/accounts/complete/gitlab/, és meg kell jelölni a read_user hatőkört (scope).

# 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/'

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

GitLab

Gitea OAuth 2

Gitea OAuth 2 használatához regisztrálni kell egy alkalmazást a https://GITEA SERVER/user/settings/applications oldalon.

Az átirányítási URL: 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/"

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Megjegyzés

A fenti konfiguráció Forgejo-val is működik; egy éles példát itt találhat: Codeberg Translate.

Lásd még

Gitea

Microsoft Entra ID

Azure Active Directory (Azure AD) is now Microsoft Entra ID. Weblate keeps the azuread-oauth2 and azuread-tenant-oauth2 backend names for compatibility with the underlying Python Social Auth backends and existing deployments.

A Weblate úgy is beállítható, hogy közös vagy egyedi Azure AD bérlőkhöz (tenant) végezzen hitelesítést.

Az átirányítási URL az általános hitelesítéshez: https://WEBLATE SERVER/accounts/complete/azuread-oauth2/, a bérlőspecifikus hitelesítéshez pedig: https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/.

A következő adatokra lesz szükség:

  • Application (client) ID is available on the app registration overview in the Microsoft Entra admin center. Object ID is not used in Weblate.

  • Directory (tenant) ID: szükséges a bérlőspecifikus hitelesítéshez, ami általában az elvárt beállítás.

  • Secret value is displayed once you create a client secret for the app registration. Secret ID is not used in 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 = ""

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Slack

Slack OAuth 2 használatához regisztrálnia kell egy alkalmazást a <https://api.slack.com/apps> oldalon.

Az átirányítási URL: 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 = ""

Megjegyzés

A Weblate által biztosított visszahívási URL a hitelesítés során a beállított domaint tartalmazza. Ha URL-eltérés miatti hibát tapasztal, érdemes javítani a beállítást, lásd: Webhely domain helyes beállítása.

Lásd még

Slack

Hitelesítési módszerek neveinek és ikonjainak felülírása

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"

Jelszavas hitelesítés kikapcsolása

Az e-mailes és jelszavas hitelesítés kikapcsolható, ha eltávolítja a social_core.backends.email.EmailAuth bejegyzést az AUTHENTICATION_BACKENDS közül. Fontos, hogy a weblate.accounts.auth.WeblateUserBackend mindig maradjon benne, mivel ez szükséges a Weblate alapműködéséhez.

Az e-mailes hitelesítés kikapcsolása az összes e-mailhez kapcsolódó funkciót is letiltja – például a felhasználói meghívásokat vagy a jelszó-visszaállítást.

Javaslat

Az adminisztráció oldalra történő bejelentkezéshez továbbra is használható jelszavas hitelesítés azoknál a felhasználóknál, akiket manuálisan hozott létre. Ehhez egyszerűen lépjen a /admin/login/ oldalra.

Például ha kizárólag az openSUSE OpenID szolgáltatóval kíván hitelesíteni, azt a következő módon teheti meg:

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

Jelszóval történő hitelesítés

Az alapértelmezett settings.py egy biztonságos AUTH_PASSWORD_VALIDATORS beállítással érkezik, ami biztosítja, hogy gyenge jelszavakat ne lehessen használni. Ez a beállítás igény szerint testreszabható a saját jelszóházirendhez.

Ezen felül telepíthető a django-zxcvbn-password-validator csomag is, amely valósághű becslést ad a jelszavak erősségéről, és lehetővé teszi a túl gyenge jelszavak automatikus elutasítását.

SAML-hitelesítés

Added in version 4.1.1.

A 5.12 verzióban változott: A SAML-alapú hitelesítéshez szükséges függőségek már nem részei az alapértelmezett all kiegészítőnek. A Weblate csomag telepítésekor külön fel kell venni a saml kiegészítőt is a pip használatakor (uv pip install Weblate[all,saml]).

Kövesse a Python Social Auth dokumentációját a konfiguráláshoz. A leíráshoz képest néhány fontos eltérés:

  • A Weblate egyetlen IDP-t támogat, amelynek neve weblate kell legyen a SOCIAL_AUTH_SAML_ENABLED_IDPS beállításban.

  • The SAML XML metadata URL is /accounts/metadata/saml/, which is also an entity ID.

  • The sign-in URL is /accounts/complete/saml/ (also known as ACS URL).

  • A következő beállítások automatikusan kitöltésre kerülnek: SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT

Példa konfiguráció:

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

You can generate a new pair of keys using:

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

The default configuration extracts user details from following attributes, configure your IdP to provide them:

Attribútum

SAML URI hivatkozás

Teljes név

urn:oid:2.5.4.3

Keresztnév

urn:oid:2.5.4.42

Vezetéknév

urn:oid:2.5.4.4

E-mail

urn:oid:0.9.2342.19200300.100.1.3

Felhasználónév

urn:oid:0.9.2342.19200300.100.1.1

When configuring Weblate SP in your IdP, it is recommended to choose persistent Name ID format.

Tipp

The example above and the Docker image define an IdP called weblate. You might need to configure this string as Relay in your IdP.

Megjegyzés

Weblate authentication relies on the RelayState parameter to be passed through the authentication process. This needs to be configured with some identity providers:

LDAP-hitelesítés

Az LDAP-hitelesítés legegyszerűbben a django-auth-ldap csomaggal valósítható meg. A telepítése a szokásos módon történhet:

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

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

Tipp

Ez a csomag a Docker-képen alapból benne van, lásd: Telepítés Docker használatával.

Megjegyzés

A Python LDAP 3.1.0 modulban néhány inkompatibilitás található, ami megakadályozhatja a működést. Ha a következő hibát tapasztalja: AttributeError: «module» object has no attribute «_trace_level», akkor a python-ldap 3.0.0 verzióra való visszalépés megoldhatja a problémát.

Miután telepítette a csomagot, a Django hitelesítéséhez is hozzákapcsolhatja:

# 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

Megjegyzés

Érdemes eltávolítani a 'social_core.backends.email.EmailAuth' bejegyzést az AUTHENTICATION_BACKENDS beállításból, különben a felhasználók saját jelszót állíthatnak be a Weblate-ben, és azzal is be tudnak jelentkezni. Ugyanakkor a 'weblate.accounts.auth.WeblateUserBackend' bejegyzést szükséges megtartani, mivel ez biztosítja a jogosultságok és az anonim felhasználók kezelését. Emellett lehetőséget ad a helyi adminisztrátori fiókkal történő bejelentkezésre is, amennyiben ilyen létre lett hozva (például a createadmin használatával).

Bind jelszó használata

Amennyiben a közvetlen bind nem alkalmazható hitelesítéshez, keresést kell használnia, és ehhez egy olyan felhasználót kell megadnia, amellyel a keresést végrehajtja. Például:

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 integráció

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

CAS-hitelesítés

A CAS-hitelesítés megvalósítható például a Django CAS NG csomag segítségével.

Az első lépés a felhasználó e-mail mezőjének megosztása a CAS-on keresztül. Ezt a CAS szerveren kell beállítani, és legalább a CAS 2-es verzióját kell használnia, mivel a CAS 1 nem támogat attribútumokat.

A második lépés, hogy a Weblate-et frissítse úgy, hogy a saját CAS szerverét és annak attribútumait használja.

A Django CAS NG telepítése:

uv pip install django-cas-ng

Miután telepítette a csomagot, csatlakoztathatja a Django hitelesítési rendszeréhez a settings.py fájl módosításával:

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

Végül jeleket (signalt) használhat az e-mail mező felhasználói objektumhoz rendeléséhez. Ehhez importálnia kell a jelet a django-cas-ng csomagból, és összekapcsolni vele a saját kódját. Ezt a beállítási fájlban elvégezni problémát okozhat, ezért ajánlott az alábbi helyek egyikére tenni:

  • Az alkalmazás konfigurációjának django.apps.AppConfig.ready() metódusában elhelyezni,

  • A projekt urls.py fájljában (ha nem léteznek modellek)

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

Harmadik féltől származó Django hitelesítések beállítása

Általánosságban bármelyik Django-hitelesítési beépülő (plugin) működik a Weblate-tel. Kövesse a beépülő dokumentációját, és ügyeljen rá, hogy a Weblate felhasználói háttérmodul megmaradjon.

A telepítés jellemzően abból áll, hogy egy új hitelesítési modult (backend) ad hozzá az AUTHENTICATION_BACKENDS beállításhoz, valamint az esetlegesen szükséges hitelesítési alkalmazást az INSTALLED_APPS listához:

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

INSTALLED_APPS += (
    # Install authentication app here
)

Kétlépcsős hitelesítés

Added in version 5.7.

Tipp

A kétlépcsős hitelesítés további biztonsági réteget ad a fiókjához azáltal, hogy a bejelentkezéshez nemcsak jelszót, hanem egyéb hitelesítést is megkövetel.

A Weblate az alábbi második hitelesítési tényezőket támogatja:

Biztonsági kulcsok (WebAuthn)

Támogatott a Passkey és a biztonsági kulcs is.

A Passkey érintés, arcfelismerés, eszközjelszó vagy PIN-kód segítségével azonosítja a felhasználót, mivel beépített felhasználóellenőrzést tartalmaz.

A biztonsági kulcs olyan WebAuthn hitelesítő adat, amelyek csak második azonosítási faktorként használható, és csak a felhasználó jelenlétét ellenőrzik.

Hitelesítő alkalmazások (TOTP)

A hitelesítő alkalmazások és böngészőbővítmények, mint például az Aegis, Bitwarden, Google Authenticator, 1Password, Authy, Microsoft Authenticator stb., időalapú egyszer használatos jelszavakat generálnak, amelyeket második tényezőként használnak az azonosítás megerősítésére a bejelentkezéskor.

Helyreállítási kódok

A helyreállítási kódok lehetővé teszik a fiókhoz való hozzáférést akkor is, ha elveszíti az eszközét, és nem tud kétlépcsős hitelesítési kódot fogadni.

A helyreállítási kódokat ugyanúgy biztonságban kell tartani, mint a jelszavakat. Ajánlott jelszókezelőben tárolni őket, például a Bitwarden, 1Password, Authy vagy Keeper alkalmazásokban.

Minden felhasználó saját maga is beállíthatja ezt a Fiók alatt, és ezután a bejelentkezéshez a meglévő hitelesítési mód mellett a második tényező megadása is szükséges lesz.

This can be enforced for users at the project (see Kétlépcsős azonosítás kényszerítése) or team level. In site-wide deployments, this can also be used to enforce two-factor authentication for all users by enabling it on the default Users team, which is assigned automatically to new users by automatic team assignment.

Azoknál a felhasználóknál, akiknél nincs beállítva kétlépcsős hitelesítés, a csapat jogosultságai nem lesznek érvényesek.