身份认证

用户注册

Weblate 的默认设置使用 python-social-auth,网站上处理新用户注册的一种形式。确定电子邮箱后,新用户可以通过使用一种第三方服务来贡献或证实。

还可以使用 REGISTRATION_OPEN 关闭新用户注册。

身份认证尝试服从于 频次限制

身份认证后端

Weblate 依赖 Django 进行身份认证。这包括内置的基于密码的身份认证、社媒身份认证,以及 Django 的第三方身份认证后端。

使用 Django 内置身份认证意味着可以导入其他基于 Django 项目的用户数据库(请参见 从 Pootle 迁移)。

参见

身份认证设置 描述了如何配置官方 Docker 镜像的身份认证。

社交身份认证

由于 Welcome to Python Social Auth’s documentation!,Weblate 支持很多使用第三方服务的身份认证,如 GitLab、Ubuntu、Fedora 等。

请查阅 Django Framework 文档中的通用配置说明。

备注

Weblate 默认依赖于第三方身份认证服务来提供合法的电子邮箱地址。如果想要使用的一些服务不支持,请通过为其配置 FORCE_EMAIL_VALIDATION,来强制 Weblate 网站上的电子邮箱验证:

SOCIAL_AUTH_OPENSUSE_FORCE_EMAIL_VALIDATION = True

参见

Pipeline

启用单独的后端非常简单,只需在 AUTHENTICATION_BACKENDS 设置中添加一个条目(可能还需要添加特定认证方法所需的密钥)。请注意,一些后端默认不提供用户电子邮件,你必须明确地请求,否则 Weblate 将无法正确记入用户所做的贡献。

提示

大多数身份认证后端都需要 HTTPS。在您的 Web 服务器中启用 HTTPS 后,请使用 ENABLE_HTTPS 或 Docker 容器中的 WEBLATE_ENABLE_HTTPS 配置 Weblate 以正确报告它。

OpenID 身份认证

对于基于 OpenID 的服务,通常只要启用它们就行了。后面的部分关于对于 OpenSUSE、Fedora 和 Ubuntu 允许 OpenID 身份认证:

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

参见

OpenID

GitHub 身份认证

需要在 GitHub 上注册一个 OAuth 应用,然后告诉 Weblate 所有的 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"]

GitHub 的 回调 URL 应配置为形如 https://WEBLATE SERVER/accounts/complete/github/.

GitHub for Organizations 和 GitHub for Teams 也有类似的认证后端。他们的设置名为 SOCIAL_AUTH_GITHUB_ORG_*SOCIAL_AUTH_GITHUB_TEAM_*。它们需要额外设置范围 - SOCIAL_AUTH_GITHUB_ORG_NAMESOCIAL_AUTH_GITHUB_TEAM_ID。它们的回调 URL 是 https://WEBLATE SERVER/accounts/complete/github-org/https://WEBLATE SERVER/accounts/complete/github-teams/

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

GitHub

GitHub 企业身份认证

你需要在 GitHub EE 上注册一个 OAuth 应用,然后告诉 Weblate 这个应用的所有 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"]

GitHub 的回调 URL 应配置为形如 https://WEBLATE SERVER/accounts/complete/github-enterprise/.

也可以使用 GitHub 应用来替代 GitHub OAuth 应用。GitHub 应用可按照仓库、组织和/或用户级别授予权限。如果你决定使用 GitHub 应用,你需要为用户 - <Email addresses> 和组织 - <Members>启用 Access: Read-only 权限。

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

Bitbucket 身份认证

需要在 Bitbucket 上注册应用,然后告诉 Weblate 所有的秘密:

# 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

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

Bitbucket

Google OAuth 2

要使用 Google OAuth 2,需要在 <https://console.developers.google.com/> 上注册 OAuth 应用。

重定向 URL 为 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"

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

Google

Facebook OAuth 2

通常通过 OAuth2 服务,需要用 Facebook 来注册应用。一旦完成,就可以新建 Weblate 来使用了:

重定向 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"]

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

Facebook

GitLab OAuth 2

要使用 GitLab OAuth 2,需要在 <https://gitlab.com/profile/applications> 上注册应用。

重定向 URL 为 https://WEBLATE SERVER/accounts/complete/gitlab/,并确保你标记 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/'

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

GitLab

Gitea OAuth 2

要使用 Gitea OAuth 2,需要在 https://GITEA SERVER/user/settings/applications 上注册应用。

重定向 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/"

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

备注

以上配置同样适用 Forgejo;对于 Forgejo 的生产部署示例,请见 Codeberg Translate

参见

Gitea

Microsoft Entra ID

Azure 活动目录 (Azure AD)现在叫 Microsoft Entra ID。Weblate 出于和底层 Python Social Auth 后端和现有部署的兼容性而保留 azuread-oauth2azuread-tenant-oauth2 后端名称。

可以配置 Weblate,使用一般或特定租户进行身份认证。

常见的重定向 URL 为 https://WEBLATE SERVER/accounts/complete/azuread-oauth2/https://WEBLATE SERVER/accounts/complete/azuread-tenant-oauth2/ 用于租户特定身份认证。

你需要下列东西:

  • Application (client) ID 可在 Microsoft Entra 管理中心的程序注册概览中获取。Weblate 不使用 Object ID

  • 租户范围的身份认证(通常情况下的理想选择)需要用到 Directory (tenant) ID.

  • 为程序注册创建了客户端 secret 后便会展示 Secret value 。Weblate 不使用 Secret ID

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

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

Slack

要使用 Slack OAuth 2,需要在 <https://api.slack.com/apps> 上注册应用。

重定向 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 = ""

备注

Weblate 在身份认证时提供的回调 URL。在得到 URL 不匹配的错误时,可以根据需要来修复,请参见 设置正确的网站域名

参见

Slack

覆盖身份认证方法名称和图标

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"

关闭密码身份认证

通过从 AUTHENTICATION_BACKENDS 删除 social_core.backends.email.EmailAuth,可以关闭电子邮箱和密码身份认证。总是将 weblate.accounts.auth.WeblateUserBackend 保留在那里,它用于 Weblate 核心功能。

禁用电子邮件身份认证将禁用所有电子邮件相关的功能 - 用户邀请或密码重置功能。

小技巧

对于手动建立的用户,可以仍然在管理界面使用密码身份认证。只需导航到 /admin/login/

例如,使用后面的设置可以实现只是用 openSUSE Open ID 的身份认证:

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

密码身份认证

默认的 settings.py 自带一组合理的 AUTH_PASSWORD_VALIDATORS,确保不允许弱密码。你可以自定义这个设置来符合你的密码策略。

另外,你可以安装 django-zxcvbn-password-validator,它会给出非常实际的密码强度预估,并允许拒绝强度低于某个阈值的密码。

SAML 身份认证

Added in version 4.1.1.

在 5.12 版本发生变更: SAML 身份认证的依赖项不再包括在默认的 all 附加项中。在使用 pip 安装 Weblate 软件包时,您需要包括 samluv pip install Weblate[all,saml])。

请遵守 Python 社交认证的指示来配置。显著的差异有:

  • Weblate 支持单一 IDP,在 SOCIAL_AUTH_SAML_ENABLED_IDPS 中必须称之为 weblate

  • SAML XML 元数据 URL 为 /accounts/metadata/saml/,这也是条目 ID。

  • 登录 URL /accounts/complete/saml/ (也叫 ACS URL)。

  • 以下设置会自动填充:SOCIAL_AUTH_SAML_SP_ENTITY_IDSOCIAL_AUTH_SAML_TECHNICAL_CONTACTSOCIAL_AUTH_SAML_SUPPORT_CONTACT

配置的示例:

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

生成新的公钥密钥对可以用:

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

默认配置从以下属性提取用户详细信息,配置您的IdP来提供它们:

属性

SAML URI 参照

全名

urn:oid:2.5.4.3

名字

urn:oid:2.5.4.42

姓氏

urn:oid:2.5.4.4

电子邮件地址

urn:oid:0.9.2342.19200300.100.1.3

用户名

urn:oid:0.9.2342.19200300.100.1.1

在 IdP 中配置 Weblate SP 时建议选择持久 Name ID format

提示

上面的示例和 Docker 镜像定义了一个 叫做 weblate 的 IdP。您可能需要在 IdP 中将此字符串配置为 Relay

备注

Weblate 身份认证依赖通过身份认证过程传递 RelayState 参数。这需要对一些身份提供商进行配置:

LDAP 身份认证

LDAP 身份认证可以使用 django-auth-ldap 软件包而最好地实现。可以使用通常的方式安装:

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

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

提示

此包包含于 Docker 容器中,见 使用 Docker 安装

备注

在 Python LDAP 3.1.0 模块中有一些不兼容,导致可能无法使用那个版本。如果得到错误信息 AttributeError: 'module' object has no attribute '_trace_level',将 python-ldap 降回到 3.0.0 版可能会有帮助。

一旦安装了软件包,就可以将其钩入 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

备注

你应当从设置的 AUTHENTICATION_BACKENDS 部分移除 'social_core.backends.email.EmailAuth',否则用户不能够在 Weblate 中设置他们的密码,并使用它进行身份认证。为了生成权限和方便匿名用户,仍需保留 'weblate.accounts.auth.WeblateUserBackend'。它还允许你使用一个本地管理账户登录,如果你已经创建了它(如通过使用 createadmin)。

使用绑定密码

如果可以为身份认证使用直接绑定,那么需要使用搜索,并为用户搜索提供绑定,例如:

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 集成

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 身份认证

可以使用诸如 Django CAS NG 之类的软件包来实现 CAS 身份认证。

第一步通过 CAS 揭示了用户电子邮箱字段。这必须在 CAS 服务器自身来配置,并需要至少运行 CAS v2,因为 CAS v1 不支持属性。

第二步更新 Weblate,来使用 CAS 服务器和属性。

安装 Django CAS NG

uv pip install django-cas-ng

一旦安装了软件包,就可以通过修改 settings.py 文件将其钩连到 Django 身份认证系统:

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

最后,可以使用信号将电子邮箱字段投射到用户对象上。为了生效,必须将信号从 django-cas-ng 软件包导入,并将你的代码与这个信号连接。在设置文件中这样做可能产生问题,这样建议将它放进去:

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

配置第三方 Django 身份认证

一般地,任何 Django 身份认证插件应该可以在 Weblate 上工作。只需要按照插件的说明,只记住安装了 Weblate 用户后台。

典型的安装包括,将身份认证后台添加到 AUTHENTICATION_BACKENDS,并将身份认证 app(如果有的话)安装到 INSTALLED_APPS

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

INSTALLED_APPS += (
    # Install authentication app here
)

双因素身份认证

Added in version 5.7.

提示

由于登录时不仅需要密码,双因素身份认证为您的帐户增加了另一层安全性。

Weblate 支持下列双因素认证:

安全密钥(WebAuthn)

同样支持 Passkeys 和 安全密钥。

Passkeys 使用触摸、脸部识别、设备密码或 PIN 码验证你的身份,因它们包含用户验证。

Security keys 是只能被用作身份认证第二因素的 WebAuthn 凭据,这些仅验证用户存在。

身份认证器应用程序(TOTP)

身份认证应用和浏览器扩展,比如 Aegis、Bitwarden、Google Authenticator、1Password、Authy、Microsoft Authenticator 等在登录期间系统提示时生成用作身份认证第二因素的基于时间的一次性密码。

恢复代码

如果您无法访问设备并且无法接收双因素身份认证码,则可以使用恢复码访问您的帐户。

确保你的恢复代码和你的密码一样安全。我们推荐用 Bitwarden、1Password、Authy 或 Keeper 等密码管理器保存它们。

每个用户可以在 账户 中配置它。下次登录时,除了现有的身份认证方法,第二因素也是必需的。

可以在项目(见 强制双因素身份认证)或团队层级对用户进行强制。在全站范围部署中,通过在默认 用户 团队中启用它可用来对所有用户强制进行双因素身份认证,该团队通过 自动团队分配 自动分配给新用户。

强制双因素认证的团队的权限不会应用到尚未配置双因素认证的用户。