Compare commits
14 Commits
imports-fo
...
version/20
Author | SHA1 | Date | |
---|---|---|---|
644705e6fe | |||
ff8ef523db | |||
1051dd19ea | |||
04cb4fd267 | |||
da9508f839 | |||
841a286a25 | |||
63c48d7b99 | |||
5994fd2c61 | |||
5f745e682e | |||
6f1b16e7f9 | |||
57bce19e7a | |||
850c5d5a45 | |||
8b7d11f94c | |||
45737909f6 |
@ -1,16 +1,16 @@
|
||||
[bumpversion]
|
||||
current_version = 2025.4.1
|
||||
current_version = 2025.6.0
|
||||
tag = True
|
||||
commit = True
|
||||
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?:-(?P<rc_t>[a-zA-Z-]+)(?P<rc_n>[1-9]\\d*))?
|
||||
serialize =
|
||||
serialize =
|
||||
{major}.{minor}.{patch}-{rc_t}{rc_n}
|
||||
{major}.{minor}.{patch}
|
||||
message = release: {new_version}
|
||||
tag_name = version/{new_version}
|
||||
|
||||
[bumpversion:part:rc_t]
|
||||
values =
|
||||
values =
|
||||
rc
|
||||
final
|
||||
optional_value = final
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
from os import environ
|
||||
|
||||
__version__ = "2025.4.1"
|
||||
__version__ = "2025.6.0"
|
||||
ENV_GIT_HASH_KEY = "GIT_BUILD_HASH"
|
||||
|
||||
|
||||
|
@ -130,7 +130,7 @@ class SyncTasks:
|
||||
def sync_objects(
|
||||
self, object_type: str, page: int, provider_pk: int, override_dry_run=False, **filter
|
||||
):
|
||||
_object_type = path_to_class(object_type)
|
||||
_object_type: type[Model] = path_to_class(object_type)
|
||||
self.logger = get_logger().bind(
|
||||
provider_type=class_to_path(self._provider_model),
|
||||
provider_pk=provider_pk,
|
||||
@ -156,7 +156,11 @@ class SyncTasks:
|
||||
messages.append(
|
||||
asdict(
|
||||
LogEvent(
|
||||
_("Syncing page {page} of groups".format(page=page)),
|
||||
_(
|
||||
"Syncing page {page} of {object_type}".format(
|
||||
page=page, object_type=_object_type._meta.verbose_name_plural
|
||||
)
|
||||
),
|
||||
log_level="info",
|
||||
logger=f"{provider._meta.verbose_name}@{object_type}",
|
||||
)
|
||||
|
@ -166,7 +166,6 @@ class ConnectionToken(ExpiringModel):
|
||||
always_merger.merge(settings, default_settings)
|
||||
always_merger.merge(settings, self.endpoint.provider.settings)
|
||||
always_merger.merge(settings, self.endpoint.settings)
|
||||
always_merger.merge(settings, self.settings)
|
||||
|
||||
def mapping_evaluator(mappings: QuerySet):
|
||||
for mapping in mappings:
|
||||
@ -191,6 +190,7 @@ class ConnectionToken(ExpiringModel):
|
||||
mapping_evaluator(
|
||||
RACPropertyMapping.objects.filter(endpoint__in=[self.endpoint]).order_by("name")
|
||||
)
|
||||
always_merger.merge(settings, self.settings)
|
||||
|
||||
settings["drive-path"] = f"/tmp/connection/{self.token}" # nosec
|
||||
settings["create-drive-path"] = "true"
|
||||
|
@ -90,23 +90,6 @@ class TestModels(TransactionTestCase):
|
||||
"resize-method": "display-update",
|
||||
},
|
||||
)
|
||||
# Set settings in token
|
||||
token.settings = {
|
||||
"level": "token",
|
||||
}
|
||||
token.save()
|
||||
self.assertEqual(
|
||||
token.get_settings(),
|
||||
{
|
||||
"hostname": self.endpoint.host.split(":")[0],
|
||||
"port": "1324",
|
||||
"client-name": f"authentik - {self.user}",
|
||||
"drive-path": path,
|
||||
"create-drive-path": "true",
|
||||
"level": "token",
|
||||
"resize-method": "display-update",
|
||||
},
|
||||
)
|
||||
# Set settings in property mapping (provider)
|
||||
mapping = RACPropertyMapping.objects.create(
|
||||
name=generate_id(),
|
||||
@ -151,3 +134,22 @@ class TestModels(TransactionTestCase):
|
||||
"resize-method": "display-update",
|
||||
},
|
||||
)
|
||||
# Set settings in token
|
||||
token.settings = {
|
||||
"level": "token",
|
||||
}
|
||||
token.save()
|
||||
self.assertEqual(
|
||||
token.get_settings(),
|
||||
{
|
||||
"hostname": self.endpoint.host.split(":")[0],
|
||||
"port": "1324",
|
||||
"client-name": f"authentik - {self.user}",
|
||||
"drive-path": path,
|
||||
"create-drive-path": "true",
|
||||
"foo": "true",
|
||||
"bar": "6",
|
||||
"resize-method": "display-update",
|
||||
"level": "token",
|
||||
},
|
||||
)
|
||||
|
@ -151,9 +151,7 @@ class AuthenticatorValidateStageWebAuthnTests(FlowTestCase):
|
||||
webauthn_user_verification=UserVerification.PREFERRED,
|
||||
)
|
||||
stage.webauthn_allowed_device_types.set(
|
||||
WebAuthnDeviceType.objects.filter(
|
||||
description="Android Authenticator with SafetyNet Attestation"
|
||||
)
|
||||
WebAuthnDeviceType.objects.filter(description="YubiKey 5 Series")
|
||||
)
|
||||
session = self.client.session
|
||||
plan = FlowPlan(flow_pk=flow.pk.hex)
|
||||
@ -339,9 +337,7 @@ class AuthenticatorValidateStageWebAuthnTests(FlowTestCase):
|
||||
device_classes=[DeviceClasses.WEBAUTHN],
|
||||
)
|
||||
stage.webauthn_allowed_device_types.set(
|
||||
WebAuthnDeviceType.objects.filter(
|
||||
description="Android Authenticator with SafetyNet Attestation"
|
||||
)
|
||||
WebAuthnDeviceType.objects.filter(description="YubiKey 5 Series")
|
||||
)
|
||||
session = self.client.session
|
||||
plan = FlowPlan(flow_pk=flow.pk.hex)
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -141,9 +141,7 @@ class TestAuthenticatorWebAuthnStage(FlowTestCase):
|
||||
"""Test registration with restricted devices (fail)"""
|
||||
webauthn_mds_import.delay(force=True).get()
|
||||
self.stage.device_type_restrictions.set(
|
||||
WebAuthnDeviceType.objects.filter(
|
||||
description="Android Authenticator with SafetyNet Attestation"
|
||||
)
|
||||
WebAuthnDeviceType.objects.filter(description="YubiKey 5 Series")
|
||||
)
|
||||
|
||||
plan = FlowPlan(flow_pk=self.flow.pk.hex, bindings=[self.binding], markers=[StageMarker()])
|
||||
|
@ -2,7 +2,7 @@
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "https://goauthentik.io/blueprints/schema.json",
|
||||
"type": "object",
|
||||
"title": "authentik 2025.4.1 Blueprint schema",
|
||||
"title": "authentik 2025.6.0 Blueprint schema",
|
||||
"required": [
|
||||
"version",
|
||||
"entries"
|
||||
|
@ -31,7 +31,7 @@ services:
|
||||
volumes:
|
||||
- redis:/data
|
||||
server:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.4.1}
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.6.0}
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
environment:
|
||||
@ -55,7 +55,7 @@ services:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
worker:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.4.1}
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.6.0}
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
environment:
|
||||
|
2
go.mod
2
go.mod
@ -27,7 +27,7 @@ require (
|
||||
github.com/spf13/cobra v1.9.1
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/wwt/guac v1.3.2
|
||||
goauthentik.io/api/v3 v3.2025041.2
|
||||
goauthentik.io/api/v3 v3.2025041.4
|
||||
golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab
|
||||
golang.org/x/oauth2 v0.30.0
|
||||
golang.org/x/sync v0.14.0
|
||||
|
4
go.sum
4
go.sum
@ -290,8 +290,8 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y
|
||||
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
goauthentik.io/api/v3 v3.2025041.2 h1:vFYYnhcDcxL95RczZwhzt3i4LptFXMvIRN+vgf8sQYg=
|
||||
goauthentik.io/api/v3 v3.2025041.2/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
|
||||
goauthentik.io/api/v3 v3.2025041.4 h1:cGqzWYnUHrWDoaXWDpIL/kWnX9sFrIhkYDye0P0OEAo=
|
||||
goauthentik.io/api/v3 v3.2025041.4/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
|
@ -33,4 +33,4 @@ func UserAgent() string {
|
||||
return fmt.Sprintf("authentik@%s", FullVersion())
|
||||
}
|
||||
|
||||
const VERSION = "2025.4.1"
|
||||
const VERSION = "2025.6.0"
|
||||
|
@ -26,7 +26,7 @@ Parameters:
|
||||
Description: authentik Docker image
|
||||
AuthentikVersion:
|
||||
Type: String
|
||||
Default: 2025.4.1
|
||||
Default: 2025.6.0
|
||||
Description: authentik Docker image tag
|
||||
AuthentikServerCPU:
|
||||
Type: Number
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-28 11:25+0000\n"
|
||||
"POT-Creation-Date: 2025-06-02 00:12+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -2226,6 +2226,10 @@ msgstr ""
|
||||
msgid "Consider Objects matching this filter to be Users."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/sources/ldap/models.py
|
||||
msgid "Attribute which matches the value of `group_membership_field`."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/sources/ldap/models.py
|
||||
msgid "Field which contains members of a group."
|
||||
msgstr ""
|
||||
@ -3493,10 +3497,6 @@ msgstr ""
|
||||
msgid "No Pending user to login."
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/user_login/stage.py
|
||||
msgid "Successfully logged in!"
|
||||
msgstr ""
|
||||
|
||||
#: authentik/stages/user_logout/models.py
|
||||
msgid "User Logout Stage"
|
||||
msgstr ""
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@goauthentik/authentik",
|
||||
"version": "2025.4.1",
|
||||
"version": "2025.6.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@goauthentik/authentik",
|
||||
"version": "2025.4.1",
|
||||
"version": "2025.6.0",
|
||||
"devDependencies": {
|
||||
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
||||
"prettier": "^3.3.3",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@goauthentik/authentik",
|
||||
"version": "2025.4.1",
|
||||
"version": "2025.6.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "authentik"
|
||||
version = "2025.4.1"
|
||||
version = "2025.6.0"
|
||||
description = ""
|
||||
authors = [{ name = "authentik Team", email = "hello@goauthentik.io" }]
|
||||
requires-python = "==3.13.*"
|
||||
|
@ -1,7 +1,7 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: authentik
|
||||
version: 2025.4.1
|
||||
version: 2025.6.0
|
||||
description: Making authentication simple.
|
||||
contact:
|
||||
email: hello@goauthentik.io
|
||||
|
2
uv.lock
generated
2
uv.lock
generated
@ -164,7 +164,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "authentik"
|
||||
version = "2025.4.1"
|
||||
version = "2025.6.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "argon2-cffi" },
|
||||
|
@ -85,8 +85,8 @@ export class AdminOverviewPage extends AdminOverviewBase {
|
||||
render(): TemplateResult {
|
||||
const username = this.user?.user.name || this.user?.user.username;
|
||||
|
||||
return html` <ak-page-header
|
||||
header=${msg(str`Welcome, ${username || ""}.`)}
|
||||
return html`<ak-page-header
|
||||
header=${this.user ? msg(str`Welcome, ${username || ""}.`) : msg("Welcome.")}
|
||||
description=${msg("General system status")}
|
||||
?hasIcon=${false}
|
||||
>
|
||||
|
@ -361,7 +361,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
|
||||
<p class="pf-c-form__helper-text">${placeholderHelperText}</p>
|
||||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal
|
||||
label=${msg("Addition User DN")}
|
||||
label=${msg("Additional User DN")}
|
||||
name="additionalUserDn"
|
||||
>
|
||||
<input
|
||||
@ -374,7 +374,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
|
||||
</p>
|
||||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal
|
||||
label=${msg("Addition Group DN")}
|
||||
label=${msg("Additional Group DN")}
|
||||
name="additionalGroupDn"
|
||||
>
|
||||
<input
|
||||
|
@ -147,7 +147,7 @@ export class AKPageNavbar
|
||||
}
|
||||
|
||||
.accent-icon {
|
||||
height: 1em;
|
||||
height: 1.2em;
|
||||
width: 1em;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@ -157,6 +157,7 @@ export class AKPageNavbar
|
||||
}
|
||||
|
||||
&.page-description {
|
||||
padding-top: 0.3em;
|
||||
grid-area: description;
|
||||
margin-block-end: var(--pf-global--spacer--md);
|
||||
|
||||
|
@ -9106,9 +9106,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9246,6 +9243,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -7608,9 +7608,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -7748,6 +7745,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9167,9 +9167,6 @@ Las vinculaciones a grupos o usuarios se comparan con el usuario del evento.</ta
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9307,6 +9304,18 @@ Las vinculaciones a grupos o usuarios se comparan con el usuario del evento.</ta
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9690,10 +9690,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
|
||||
<source>Failed to preview prompt</source>
|
||||
<target>Échec de la prévisualisation de l'invite</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
<target>Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...'. Lorsque "Recherche avec un attribut utilisateur" est sélectionné, cet attribut doit être un attribut utilisateur, sinon un attribut de groupe.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
<target>Recherche avec un attribut utilisateur</target>
|
||||
@ -9877,6 +9873,18 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
<target>Supprimer les utilisateurs et les groupes authentik qui étaient auparavant fournis par cette source, mais qui en sont maintenant absents.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9690,10 +9690,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<source>Failed to preview prompt</source>
|
||||
<target>Impossibile visualizzare l'anteprima del prompt</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
<target>Campo che contiene i membri di un gruppo. Si noti che se si utilizza il campo "memberUid", si presume che il valore contenga un nome relativo distinto. Ad esempio, "memberUid=some-user" invece di "memberUid=cn=some-user,ou=groups,...". Quando si seleziona "Cerca utilizzando un attributo utente", questo dovrebbe essere un attributo utente, altrimenti un attributo di gruppo.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
<target>Ricerca tramite attributo utente</target>
|
||||
@ -9860,6 +9856,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9075,9 +9075,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9215,6 +9212,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -8977,9 +8977,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9117,6 +9114,18 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9402,9 +9402,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9542,6 +9539,18 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9409,9 +9409,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9550,4 +9547,16 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body></file></xliff>
|
||||
|
@ -9494,9 +9494,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9634,6 +9631,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9465,9 +9465,6 @@ Gruplara/kullanıcılara yapılan bağlamalar, etkinliğin kullanıcısına kar
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9605,6 +9602,18 @@ Gruplara/kullanıcılara yapılan bağlamalar, etkinliğin kullanıcısına kar
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -6215,9 +6215,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -6356,6 +6353,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<?xml version="1.0"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file target-language="zh-Hans" source-language="en" original="lit-localize-inputs" datatype="plaintext">
|
||||
<body>
|
||||
<trans-unit id="s4caed5b7a7e5d89b">
|
||||
@ -596,9 +596,9 @@
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="saa0e2675da69651b">
|
||||
<source>The URL "<x id="0" equiv-text="${this.url}"/>" was not found.</source>
|
||||
<target>未找到 URL "
|
||||
<x id="0" equiv-text="${this.url}"/>"。</target>
|
||||
<source>The URL "<x id="0" equiv-text="${this.url}"/>" was not found.</source>
|
||||
<target>未找到 URL "
|
||||
<x id="0" equiv-text="${this.url}"/>"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s58cd9c2fe836d9c6">
|
||||
@ -1715,8 +1715,8 @@
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="sa90b7809586c35ce">
|
||||
<source>Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test".</source>
|
||||
<target>输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。</target>
|
||||
<source>Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test".</source>
|
||||
<target>输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s0410779cb47de312">
|
||||
@ -3778,10 +3778,10 @@ doesn't pass when either or both of the selected options are equal or above the
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="sa95a538bfbb86111">
|
||||
<source>Are you sure you want to update <x id="0" equiv-text="${this.objectLabel}"/> "<x id="1" equiv-text="${this.obj?.name}"/>"?</source>
|
||||
<source>Are you sure you want to update <x id="0" equiv-text="${this.objectLabel}"/> "<x id="1" equiv-text="${this.obj?.name}"/>"?</source>
|
||||
<target>您确定要更新
|
||||
<x id="0" equiv-text="${this.objectLabel}"/>"
|
||||
<x id="1" equiv-text="${this.obj?.name}"/>" 吗?</target>
|
||||
<x id="0" equiv-text="${this.objectLabel}"/>"
|
||||
<x id="1" equiv-text="${this.obj?.name}"/>" 吗?</target>
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="sc92d7cfb6ee1fec6">
|
||||
@ -4847,7 +4847,7 @@ doesn't pass when either or both of the selected options are equal or above the
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="sdf1d8edef27236f0">
|
||||
<source>A "roaming" authenticator, like a YubiKey</source>
|
||||
<source>A "roaming" authenticator, like a YubiKey</source>
|
||||
<target>像 YubiKey 这样的“漫游”身份验证器</target>
|
||||
|
||||
</trans-unit>
|
||||
@ -5206,7 +5206,7 @@ doesn't pass when either or both of the selected options are equal or above the
|
||||
|
||||
</trans-unit>
|
||||
<trans-unit id="s1608b2f94fa0dbd4">
|
||||
<source>If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here.</source>
|
||||
<source>If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here.</source>
|
||||
<target>如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。</target>
|
||||
|
||||
</trans-unit>
|
||||
@ -7492,7 +7492,7 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<target>成功创建用户并添加到组 <x id="0" equiv-text="${this.group.name}"/></target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s824e0943a7104668">
|
||||
<source>This user will be added to the group "<x id="0" equiv-text="${this.targetGroup.name}"/>".</source>
|
||||
<source>This user will be added to the group "<x id="0" equiv-text="${this.targetGroup.name}"/>".</source>
|
||||
<target>此用户将会被添加到组 &quot;<x id="0" equiv-text="${this.targetGroup.name}"/>&quot;。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s62e7f6ed7d9cb3ca">
|
||||
@ -8778,7 +8778,7 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<target>同步组</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s2d5f69929bb7221d">
|
||||
<source><x id="0" equiv-text="${p.name}"/> ("<x id="1" equiv-text="${p.fieldKey}"/>", of type <x id="2" equiv-text="${p.type}"/>)</source>
|
||||
<source><x id="0" equiv-text="${p.name}"/> ("<x id="1" equiv-text="${p.fieldKey}"/>", of type <x id="2" equiv-text="${p.type}"/>)</source>
|
||||
<target><x id="0" equiv-text="${p.name}"/>(&quot;<x id="1" equiv-text="${p.fieldKey}"/>&quot;,类型为 <x id="2" equiv-text="${p.type}"/>)</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s25bacc19d98b444e">
|
||||
@ -9026,8 +9026,8 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<target>授权流程成功后有效的重定向 URI。还可以在此处为隐式流程指定任何来源。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4c49d27de60a532b">
|
||||
<source>To allow any redirect URI, set the mode to Regex and the value to ".*". Be aware of the possible security implications this can have.</source>
|
||||
<target>要允许任何重定向 URI,请设置模式为正则表达式,并将此值设置为 ".*"。请注意这可能带来的安全影响。</target>
|
||||
<source>To allow any redirect URI, set the mode to Regex and the value to ".*". Be aware of the possible security implications this can have.</source>
|
||||
<target>要允许任何重定向 URI,请设置模式为正则表达式,并将此值设置为 ".*"。请注意这可能带来的安全影响。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sa52bf79fe1ccb13e">
|
||||
<source>Federated OIDC Sources</source>
|
||||
@ -9691,10 +9691,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<source>Failed to preview prompt</source>
|
||||
<target>预览输入失败</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
<target>包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...'。当选中“使用用户属性查询”时,此配置应该为用户属性,否则为组属性。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
<target>使用用户属性查询</target>
|
||||
@ -9784,7 +9780,7 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<target>在 authorization_code 令牌请求流程期间,如何执行身份验证</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s844baf19a6c4a9b4">
|
||||
<source>Enable "Remember me on this device"</source>
|
||||
<source>Enable "Remember me on this device"</source>
|
||||
<target>启用“在此设备上记住我”</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="sfa72bca733f40692">
|
||||
@ -9878,7 +9874,19 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
<target>删除之前由此源提供,但现已缺失的用户和组。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
</xliff>
|
||||
|
@ -7308,9 +7308,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -7448,6 +7445,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -9052,9 +9052,6 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
<trans-unit id="sc7524ea24eeeb019">
|
||||
<source>Failed to preview prompt</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s783964a224796865">
|
||||
<source>Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...'. When selecting 'Lookup using a user attribute', this should be a user attribute, otherwise a group attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s1d47b4f61ca53e8e">
|
||||
<source>Lookup using user attribute</source>
|
||||
</trans-unit>
|
||||
@ -9192,6 +9189,18 @@ Bindings to groups/users are checked against the user of the event.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="se3b26b762110bda0">
|
||||
<source>Delete authentik users and groups which were previously supplied by this source, but are now missing from it.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s0a2cb398b54a6207">
|
||||
<source>Welcome.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s4e1d2cb86cf5ecd0">
|
||||
<source>Field which contains members of a group. The value of this field is matched against User membership attribute.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s6478025f3e0174fa">
|
||||
<source>User membership attribute</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="s344be99cf5d36407">
|
||||
<source>Attribute which matches the value of Group membership field.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
@ -36,11 +36,12 @@ The _Endpoint_ object specifies the hostname/IP of the machine to connect to, as
|
||||
|
||||
Configuration details such as credentials can be specified through _settings_, which can be specified on different levels and are all merged together when connecting:
|
||||
|
||||
1. Provider settings
|
||||
2. Endpoint settings
|
||||
3. Connection settings
|
||||
1. Default settings
|
||||
2. Provider settings
|
||||
3. Endpoint settings
|
||||
4. Provider property mapping settings
|
||||
5. Endpoint property mapping settings
|
||||
6. Connection settings
|
||||
|
||||
### Connection settings
|
||||
|
||||
|
@ -3,21 +3,13 @@ title: Release 2025.6
|
||||
slug: "/releases/2025.6"
|
||||
---
|
||||
|
||||
:::note
|
||||
2025.6 has not been released yet! We're publishing these release notes as a preview of what's to come, and for our awesome beta testers trying out release candidates.
|
||||
|
||||
To try out the release candidate, replace your Docker image tag with the latest release candidate number, such as 2025.6.0-rc1. You can find the latest one in [the latest releases on GitHub](https://github.com/goauthentik/authentik/releases). If you don't find any, it means we haven't released one yet.
|
||||
:::
|
||||
|
||||
Authentik Security is happy to announce our 2025.6 release. Read on for details about the new features, any changes you need to be aware of, and then when you're ready to upgrade refer to our [Upgrade instructions](../install-config/upgrade) for Docker, Kubernetes, and AWS CloudFormation.
|
||||
|
||||
## Highlights
|
||||
|
||||
- **mTLS Stage**: :ak-enterprise The Mutual TLS stage provides support for mTLS, a standard protocol that uses certificates for mutual authentication between a client and a server.
|
||||
|
||||
- **Email verification compatibility with link scanners**: We have improved compatibility for environments that have automated scanning software that inadvertently invalidated one-time links sent by authentik.
|
||||
|
||||
- **LDAP source sync forward deletions**: This option synchronizes the deletion of users (those created by LDAP sources) in authentik when they are removed in the LDAP source.
|
||||
- **LDAP source sync forward deletions**: This option synchronizes the deletion of users and groups from LDAP sources to authentik.
|
||||
|
||||
## Breaking changes
|
||||
|
||||
@ -36,7 +28,7 @@ Authentik Security is happy to announce our 2025.6 release. Read on for details
|
||||
|
||||
- **mTLS stage**: :ak-enterprise The Mutual TLS stage enables authentik to use client certificates to enroll and authenticate users. These certificates can be local to the device or available via PIV Smart Cards, Yubikeys, etc. For environments where certificates are already rolled out, this can make authentication a lot more seamless. Refer to our [technical documentation](../add-secure-apps/flows-stages/stages/mtls/) for more information.
|
||||
- **Email verification compatibility with link scanners**: We have improved compatibility for environments with automated scanning software that inadvertently invalidated one-time links sent by authentik.
|
||||
- **LDAP source sync forward deletions**: With this option enabled, users who were created in authentik via LDAP sources will also be removed from authentik if they are deleted from the LDAP source. For more information, please refer to our [LDAP source documentation](../users-sources/sources/protocols/ldap/).
|
||||
- **LDAP source sync forward deletions**: With this option enabled, users or groups created in authentik via LDAP sources will also be removed from authentik if they are deleted from the LDAP source. For more information, please refer to our [LDAP source documentation](../users-sources/sources/protocols/ldap/).
|
||||
- **Provider sync performance**: We have implemented parallel scheduling for outgoing syncs to provide faster synchronization.
|
||||
- **Branding**: Custom branding should now be more consistent on initial load, without flickering.
|
||||
- **Remote Access Control (RAC) improved documentation**: Adds content about how to authenticate using a public key and improves the wording and formatting throughout the topic.
|
||||
@ -85,12 +77,6 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2025.6
|
||||
## Minor changes/fixes
|
||||
|
||||
- brands: fix CSS Migration not updating brands (#14306)
|
||||
- ci: add dependencies label to generated PRs (#14569)
|
||||
- ci: cleanup post uv migration (#13538)
|
||||
- ci: test with postgres 17 (#13967)
|
||||
- ci: Update packages-npm-publish.yml (#14701)
|
||||
- ci: use dependabot for compose correctly? (#14340)
|
||||
- ci: use dependabot for docker-compose files (#14336)
|
||||
- core: fix session migration when old session can't be loaded (#14466)
|
||||
- core: fix unable to create group if no enable_group_superuser permission is given (#14510)
|
||||
- core: Migrate permissions before deleting OldAuthenticatedSession (#14788)
|
||||
@ -100,8 +86,7 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2025.6
|
||||
- enterprise/stages: Add MTLS stage (#14296)
|
||||
- enterprise/stages/mtls: improve certificate validation (#14582)
|
||||
- enterprise/stages/mtls: update go & web client, fix py client generation (#14576)
|
||||
- ESBuild Plugin: Setup and usage docs. (#14720)
|
||||
- esbuild-plugin-live-reload: Publish. (#14624)
|
||||
- lib/sync: fix static incorrect label of pages (#14851)
|
||||
- lib/sync/outgoing: reduce number of db queries made (#14177)
|
||||
- lib/sync/outgoing: sync in parallel (#14697)
|
||||
- lifecycle: fix ak dump_config (#14445)
|
||||
@ -109,6 +94,7 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2025.6
|
||||
- outposts: fix tmpdir in containers not being set (#14444)
|
||||
- providers/ldap: retain binder and update users instead of re-creating (#14735)
|
||||
- providers/proxy: kubernetes outpost: fix reconcile when ingress class name changed (#14612)
|
||||
- providers/rac: apply ConnectionToken scoped-settings last (#14838)
|
||||
- rbac: add `name` to Permissions search (#14269)
|
||||
- rbac: fix RoleObjectPermissionTable not showing `add_user_to_group` (#14312)
|
||||
- root: backport SFE Build fix (#14495)
|
||||
@ -126,9 +112,6 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2025.6
|
||||
- tests/e2e: add test for authentication flow in compatibility mode (#14392)
|
||||
- tests/e2e: fix flaky SAML Source test (#14708)
|
||||
- web, website: update browserslist (#14386)
|
||||
- web: (ESLint) Consistent use of triple-equals. (#14554)
|
||||
- web: (ESLint) No else return (#14558)
|
||||
- web: (ESLint) Use dot notation. (#14557)
|
||||
- web: Add specific Storybook dependency. (#14719)
|
||||
- web: Clean up browser-only module imports that crash WebDriverIO. (#14330)
|
||||
- web: cleanup/loading attribute always true (#14288)
|
||||
@ -151,9 +134,6 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2025.6
|
||||
- web/admin: prevent default logo flashing in admin interface (#13960)
|
||||
- web/flows: update default flow background (#14769)
|
||||
- web/flows/sfe: fix global background image not being loaded (#14442)
|
||||
- web/NPM Workspaces: ESbuild version cleanup (#14541)
|
||||
- web/NPM Workspaces: Prep ESBuild plugin for publish. (#14552)
|
||||
- web/NPM Workspaces: TypeScript API Client TSConfig. (#14555)
|
||||
|
||||
## API Changes
|
||||
|
||||
|
@ -12,14 +12,14 @@ For FreeIPA, follow the [FreeIPA Integration](../../directory-sync/freeipa/index
|
||||
|
||||
## Configuration options for LDAP sources
|
||||
|
||||
To create or edit a source in authentik, open the Admin interface and navigate to **Directory > Ferderation and Social login**. There you can create a new LDAP source, or edit an existing one, using the following settings.
|
||||
To create or edit a source in authentik, open the Admin interface and navigate to **Directory > Federation and Social login**. There you can create a new LDAP source, or edit an existing one, using the following settings.
|
||||
|
||||
- **Enabled**: Toggle this option on to allow authentik to use the defined LDAP source.
|
||||
- **Update internal password on login**: When the user logs in to authentik using the LDAP password backend, the password is stored as a hashed value in authentik. Toggle off (default setting) if you do not want to store the hashed passwords in authentik.
|
||||
- **Sync users**: Enable or disable user synchronization between authentik and the LDAP source.
|
||||
- **User password writeback**: Enable this option if you want to write password changes that are made in authentik back to LDAP.
|
||||
- **Sync groups**: Enable/disable group synchronization. Groups are synced in the background every 5 minutes.
|
||||
- **Parent group**: Optionally set this group as the parent group for all synced groups. An example use case of this would be to import Active Directory groups under a root `imported-from-ad` group.
|
||||
- **Sync groups**: Enable/disable group synchronization between authentik and the LDAP source.
|
||||
- **Delete Not Found Objects**: :ak-version[2025.6] This option synchronizes user and group deletions from LDAP sources to authentik. User deletion requires enabling **Sync users** and group deletion requires enabling **Sync groups**.
|
||||
|
||||
#### Connection settings
|
||||
|
||||
@ -29,9 +29,9 @@ To create or edit a source in authentik, open the Admin interface and navigate t
|
||||
- **Use Server URI for SNI verification**: this setting is required for servers using TLS 1.3+
|
||||
|
||||
- **TLS Verification Certificate**: Specify a keypair to validate the remote certificate.
|
||||
- **TLS Client authentication**: Client certificate keypair to authenticate against the LDAP Server's Certificate.
|
||||
- **TLS Client authentication certificate**: Client certificate keypair to authenticate against the LDAP Server's Certificate.
|
||||
- **Bind CN**: CN of the bind user. This can also be a UPN in the format of `user@domain.tld`.
|
||||
- **Bind password**: Password used during the bind process.
|
||||
- **Bind Password**: Password used during the bind process.
|
||||
- **Base DN**: Base DN (distinguished name) used for all LDAP queries.
|
||||
|
||||
#### LDAP Attribute mapping
|
||||
@ -44,14 +44,17 @@ To create or edit a source in authentik, open the Admin interface and navigate t
|
||||
|
||||
#### Additional Settings
|
||||
|
||||
- **Group**: Parent group for all the groups imported from LDAP.
|
||||
- **Parent Group**: Parent group for all the groups imported from LDAP. An example use case would be to import Active Directory groups under a root `imported-from-ad` group.
|
||||
- **User path**: Path template for all new users created.
|
||||
- **Addition User DN**: Prepended to the base DN for user queries.
|
||||
- **Addition Group DN**: Prepended to the base DN for group queries.
|
||||
- **Additional User DN**: Prepended to the base DN for user queries.
|
||||
- **Additional Group DN**: Prepended to the base DN for group queries.
|
||||
- **User object filter**: Consider objects matching this filter to be users.
|
||||
- **Group object filter**: Consider objects matching this filter to be groups.
|
||||
- **Lookup using a user attribute**: Acquire group membership from a User object attribute (`memberOf`) instead of a Group attribute (`member`). This works with directories with nested groups memberships (Active Directory, RedHat IDM/FreeIPA), using `memberOf:1.2.840.113556.1.4.1941:` as the group membership field.
|
||||
- **Group membership field**: The user object attribute or the group object attribute that determines the group membership for a user. If **Lookup using a user attribute** is set, this should be a user object attribute, otherwise a group object attribute.
|
||||
- **User membership attribute**: Attribute name on authentik user objects which is checked against the **Group membership field**. Two common cases are:
|
||||
- If your groups have `member` attributes containing DNs, set this to `distinguishedName`. (The `distinguishedName` attribute for User objects in authentik is set automatically.)
|
||||
- If your groups have `memberUid` attributes containing `uid`s, set this to `uid`. Make sure that you've created a property mapping that creates an attribute called `uid`.
|
||||
- **Object uniqueness field**: This field contains a unique identifier.
|
||||
|
||||
## LDAP source property mappings
|
||||
|
@ -34,7 +34,7 @@ To support the integration of Budibase with authentik, you need to create an app
|
||||
- **Choose a Provider type**: select **OAuth2/OpenID Connect** as the provider type.
|
||||
- **Configure the Provider**: provide a name (or accept the auto-provided name), the authorization flow to use for this provider, and the following required configurations.
|
||||
- Note the **Client ID**,**Client Secret**, and **slug** values because they will be required later.
|
||||
- Set a `Strict` redirect URI to <kbd>https://<em>budibase.company</em>/api/global/auth/oidc/callback/</kbd>.
|
||||
- Set a `Strict` redirect URI to <kbd>https://<em>budibase.company</em>/api/global/auth/oidc/callback</kbd>.
|
||||
- Select any available signing key.
|
||||
- **Configure Bindings** _(optional)_: you can create a [binding](/docs/add-secure-apps/flows-stages/bindings/) (policy, group, or user) to manage the listing and access to applications on a user's **My applications** page.
|
||||
|
||||
|
@ -36,7 +36,7 @@ To support the integration of Cloudflare Access with authentik, you need to crea
|
||||
- **Choose a Provider type**: select **OAuth2/OpenID Connect** as the provider type.
|
||||
- **Configure the Provider**: provide a name (or accept the auto-provided name), the authorization flow to use for this provider, and the following required configurations.
|
||||
- Note the **Client ID**,**Client Secret**, and **slug** values because they will be required later.
|
||||
- Set a `Strict` redirect URI to <kbd>https://<em>company</em>.cloudflareaccess.com/cdn-cgi/access/callback/</kbd>.
|
||||
- Set a `Strict` redirect URI to <kbd>https://<em>company</em>.cloudflareaccess.com/cdn-cgi/access/callback</kbd>.
|
||||
- Select any available signing key.
|
||||
- **Configure Bindings** _(optional)_: you can create a [binding](/docs/add-secure-apps/flows-stages/bindings/) (policy, group, or user) to manage the listing and access to applications on a user's **My applications** page.
|
||||
|
||||
|
@ -26,21 +26,6 @@ This documentation lists only the settings that you need to change from their de
|
||||
|
||||
To support the integration of Zammad with authentik, you need to create an application/provider pair in authentik.
|
||||
|
||||
### Create property mappings
|
||||
|
||||
1. Log in to authentik as an administrator and open the authentik Admin interface.
|
||||
2. Navigate to **Customization** > **Property Mappings** and click **Create**. Create two **SAML Provider Property Mapping**s with the following settings:
|
||||
- **Name Mapping:**
|
||||
- **Name**: Choose a descriptive name
|
||||
- **SAML Attribute Name**: <kbd>name</kbd>
|
||||
- **Friendly Name**: Leave blank
|
||||
- **Expression**: <kbd>return request.user.name</kbd>
|
||||
- **Email Mapping:**
|
||||
- **Name**: Choose a descriptive name
|
||||
- **SAML Attribute Name**: <kbd>email</kbd>
|
||||
- **Friendly Name**: Leave blank
|
||||
- **Expression**: <kbd>return request.user.email</kbd>
|
||||
|
||||
### Create an application and provider in authentik
|
||||
|
||||
1. Log in to authentik as an administrator and open the authentik Admin interface.
|
||||
@ -53,21 +38,29 @@ To support the integration of Zammad with authentik, you need to create an appli
|
||||
- Set the **Issuer** to <kbd>https://<em>zammad.company</em>/auth/saml/metadata</kbd>.
|
||||
- Set the **Audience** to <kbd>https://<em>zammad.company</em>/auth/saml/metadata</kbd>.
|
||||
- Set the **Service Provider Binding** to `Post`.
|
||||
- Under **Advanced protocol settings**, add the two **Property Mappings** you created in the previous section, then set the **NameID Property Mapping** to the name property mapping created in the previous section.
|
||||
- Under **Advanced protocol settings**, select an available signing certificate.
|
||||
- **Configure Bindings** _(optional)_: you can create a [binding](/docs/add-secure-apps/flows-stages/bindings/) (policy, group, or user) to manage the listing and access to applications on a user's **My applications** page.
|
||||
|
||||
3. Click **Submit** to save the new application and provider.
|
||||
|
||||
## zammad Setup
|
||||
### Download certificate file
|
||||
|
||||
Configure Zammad SAML settings by going to settings (the gear icon), and selecting `Security -> Third-party Applications` and activate `Authentication via SAML` and change the following fields:
|
||||
1. Log in to authentik as an administrator, and open the authentik Admin interface.
|
||||
2. Navigate to **Applications** > **Providers** and click on the name of the provider that you created in the previous section (e.g. `Provider for zammad`).
|
||||
3. Under **Related objects** > **Download signing certificate **, click on **Download**. This downloaded file is your certificate file and it will be required in the next section.
|
||||
|
||||
- Display name: authentik
|
||||
- IDP SSO target URL: https://authentik.company/application/saml/zammad/sso/binding/init/
|
||||
- IDP single logout target URL: https://zammad.company/auth/saml/slo
|
||||
- IDP certificate: ----BEGIN CERTIFICATE---- …
|
||||
- IDP certificate fingerprint: empty
|
||||
- Name Identifier Format: empty
|
||||
## Zammad configuration
|
||||
|
||||
To configure the Zammad SAML options go to **Settings** (the gear icon) and select **Security** > **Third-party Applications**. Next, activate the **Authentication via SAML** toggle and change the following fields:
|
||||
|
||||
- **Display name**: authentik
|
||||
- **IDP SSO target URL**: `https://authentik.company/application/saml/<application_slug>/sso/binding/post/`
|
||||
- **IDP single logout target URL**: `https://authentik.company/application/saml/<application_slug>/slo/binding/redirect/`
|
||||
|
||||
- **IDP Certificate**: paste the contents of your certificate file.
|
||||
- **IDP certificate fingerprint**: Leave this empty.
|
||||
- **Name Identifier Format**: `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`
|
||||
- **Automatic account link on initial logon**: Enable this to automatically create Zammad users when they sign in using authentik for the first time.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
|
@ -10,13 +10,14 @@ import { generateVersionDropdown } from "../src/utils.js";
|
||||
* @type {SidebarItemConfig[]}
|
||||
*/
|
||||
const releases = [
|
||||
"releases/2025/v2025.6",
|
||||
"releases/2025/v2025.4",
|
||||
"releases/2025/v2025.2",
|
||||
"releases/2024/v2024.12",
|
||||
{
|
||||
type: "category",
|
||||
label: "Previous versions",
|
||||
items: [
|
||||
"releases/2024/v2024.12",
|
||||
"releases/2024/v2024.10",
|
||||
"releases/2024/v2024.8",
|
||||
"releases/2024/v2024.6",
|
||||
|
Reference in New Issue
Block a user