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át szabályozás 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

Google OAuth 2 használatához regisztrálni kell egy alkalmazást a <https://console.developers.google.com/> címen, és engedélyezni kell a Google+ API-t.

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 Azure Active Directory

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: az alkalmazás oldalán érhető el. (Az Object ID nem használt a Weblate-ben.)

  • 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: akkor jelenik meg, amikor titkos kulcsot generál az alkalmazás számára. (A Secret ID szintén nem használt a Weblate-ben.)

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

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

A hitelesítési mód megjelenő nevét és ikonját felül lehet írni a következő beállításokkal: SOCIAL_AUTH_<NAME>_IMAGE és SOCIAL_AUTH_<NAME>_TITLE. Például az Auth0 megjelenítési nevének felülírása így nézne ki:

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: The dependencies for SAML authentication are no longer included in the default all extras. You need to include saml while installing the Weblate package using pip (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.

  • A SAML XML metaadat URL: /accounts/metadata/saml/.

  • 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==",
        "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"
}

Az alapértelmezett konfiguráció a következő attribútumokból nyeri ki a felhasználói adatokat, az IDP-t úgy kell beállítani, hogy ezeket biztosítsa:

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

Tipp

A fenti példa és a Docker-kép egy weblate nevű IDP (azonosításszolgáltató) definiálását mutatja be. Elképzelhető, hogy ezt az értéket az IDP-ben Relay (átjátszó) néven kell beállítani.

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

# 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.

Ezt projektszinten (lásd: Kétlépcsős azonosítás kényszerítése) vagy csapatszinten is kötelezővé lehet tenni.

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.