Skip to content

Commit

Permalink
Merge branch 'main' into dev
Browse files Browse the repository at this point in the history
* main: (31 commits)
  web/admin: bugfix: dual select initialization revision (#12051)
  web: update tests for Chromedriver 131 (#12199)
  website/integrations: add Aruba Orchestrator (#12220)
  core: bump aws-cdk-lib from 2.167.1 to 2.171.1 (#12237)
  website: bump aws-cdk from 2.167.1 to 2.171.1 in /website (#12241)
  core, web: update translations (#12236)
  core: bump python-kadmin-rs from 0.2.0 to 0.3.0 (#12238)
  core: bump pytest from 8.3.3 to 8.3.4 (#12239)
  core: bump drf-spectacular from 0.27.2 to 0.28.0 (#12240)
  core, web: update translations (#12222)
  core: Bump ruff from 0.8.0 to 0.8.1 (#12224)
  core: Bump ua-parser from 0.18.0 to 1.0.0 (#12225)
  core: Bump msgraph-sdk from 1.13.0 to 1.14.0 (#12226)
  stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#12234)
  website/docs: install: add aws (#12082)
  core: Bump pyjwt from 2.10.0 to 2.10.1 (#12217)
  core: Bump fido2 from 1.1.3 to 1.2.0 (#12218)
  core: Bump cryptography from 43.0.3 to 44.0.0 (#12219)
  providers/oauth2: allow m2m for JWKS without alg in keys (#12196)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#12210)
  ...
  • Loading branch information
kensternberg-authentik committed Dec 2, 2024
2 parents 20b66f8 + e077a5c commit fe9e452
Show file tree
Hide file tree
Showing 350 changed files with 25,717 additions and 23,188 deletions.
2 changes: 2 additions & 0 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ optional_value = final
[bumpversion:file:internal/constants/constants.go]

[bumpversion:file:web/src/common/constants.ts]

[bumpversion:file:website/docs/install-config/install/aws/template.yaml]
43 changes: 43 additions & 0 deletions .github/workflows/ci-aws-cfn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: authentik-ci-aws-cfn

on:
push:
branches:
- main
- next
- version-*
pull_request:
branches:
- main
- version-*

env:
POSTGRES_DB: authentik
POSTGRES_USER: authentik
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"

jobs:
check-changes-applied:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup authentik env
uses: ./.github/actions/setup
- uses: actions/setup-node@v4
with:
node-version-file: website/package.json
cache: "npm"
cache-dependency-path: website/package-lock.json
- working-directory: website/
run: |
npm ci
- name: Check changes have been applied
run: |
poetry run make aws-cfn
git diff --exit-code
ci-aws-cfn-mark:
needs:
- check-changes-applied
runs-on: ubuntu-latest
steps:
- run: echo mark
21 changes: 21 additions & 0 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,27 @@ jobs:
file: ./authentik-outpost-${{ matrix.type }}_${{ matrix.goos }}_${{ matrix.goarch }}
asset_name: authentik-outpost-${{ matrix.type }}_${{ matrix.goos }}_${{ matrix.goarch }}
tag: ${{ github.ref }}
upload-aws-cfn-template:
permissions:
# Needed for AWS login
id-token: write
contents: read
needs:
- build-server
- build-outpost
env:
AWS_REGION: eu-central-1
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: "arn:aws:iam::016170277896:role/github_goauthentik_authentik"
aws-region: ${{ env.AWS_REGION }}
- name: Upload template
run: |
aws s3 cp website/docs/install-config/install/aws/template.yaml s3://authentik-cloudformation-templates/authentik.ecs.${{ github.ref }}.yaml
aws s3 cp website/docs/install-config/install/aws/template.yaml s3://authentik-cloudformation-templates/authentik.ecs.latest.yaml
test-release:
needs:
- build-server
Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ PWD = $(shell pwd)
UID = $(shell id -u)
GID = $(shell id -g)
NPM_VERSION = $(shell python -m scripts.npm_version)
PY_SOURCES = authentik tests scripts lifecycle .github
PY_SOURCES = authentik tests scripts lifecycle .github website/docs/install-config/install/aws
DOCKER_IMAGE ?= "authentik:test"

GEN_API_TS = "gen-ts-api"
Expand Down Expand Up @@ -252,6 +252,9 @@ website-build:
website-watch: ## Build and watch the documentation website, updating automatically
cd website && npm run watch

aws-cfn:
cd website && npm run aws-cfn

#########################
## Docker
#########################
Expand Down
5 changes: 4 additions & 1 deletion authentik/providers/oauth2/views/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,19 +393,22 @@ def __post_init_client_credentials_jwt(self, request: HttpRequest):
LOGGER.warning("failed to parse JWT for kid lookup", exc=exc)
raise TokenError("invalid_grant") from None
expected_kid = decode_unvalidated["header"]["kid"]
fallback_alg = decode_unvalidated["header"]["alg"]
for source in self.provider.jwks_sources.filter(
oidc_jwks__keys__contains=[{"kid": expected_kid}]
):
LOGGER.debug("verifying JWT with source", source=source.slug)
keys = source.oidc_jwks.get("keys", [])
for key in keys:
if key.get("kid") and key.get("kid") != expected_kid:
continue
LOGGER.debug("verifying JWT with key", source=source.slug, key=key.get("kid"))
try:
parsed_key = PyJWK.from_dict(key)
token = decode(
assertion,
parsed_key.key,
algorithms=[key.get("alg")],
algorithms=[key.get("alg")] if "alg" in key else [fallback_alg],
options={
"verify_aud": False,
},
Expand Down
20 changes: 10 additions & 10 deletions authentik/stages/authenticator_webauthn/mds/aaguid.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion authentik/stages/authenticator_webauthn/mds/blob.jwt

Large diffs are not rendered by default.

80 changes: 51 additions & 29 deletions locale/fr/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
# Mordecai, 2023
# Charles Leclerc, 2024
# nerdinator <florian.dupret@gmail.com>, 2024
# Titouan Petit, 2024
# Tina, 2024
# Marc Schmitt, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-23 16:39+0000\n"
"POT-Creation-Date: 2024-11-26 00:09+0000\n"
"PO-Revision-Date: 2022-09-26 16:47+0000\n"
"Last-Translator: Marc Schmitt, 2024\n"
"Language-Team: French (https://app.transifex.com/authentik/teams/119923/fr/)\n"
Expand Down Expand Up @@ -89,9 +89,9 @@ msgid "authentik Export - {date}"
msgstr "Export authentik - {date}"

#: authentik/blueprints/v1/tasks.py authentik/crypto/tasks.py
#, python-format
msgid "Successfully imported %(count)d files."
msgstr " %(count)d fichiers importés avec succès."
#, python-brace-format
msgid "Successfully imported {count} files."
msgstr "{count} fichiers importés avec succès."

#: authentik/brands/models.py
msgid ""
Expand Down Expand Up @@ -121,6 +121,10 @@ msgstr "Marque"
msgid "Brands"
msgstr "Marques"

#: authentik/core/api/devices.py
msgid "Extra description not available"
msgstr "Description supplémentaire indisponible"

#: authentik/core/api/providers.py
msgid ""
"When not set all providers are returned. When set to true, only backchannel "
Expand All @@ -131,6 +135,11 @@ msgstr ""
"fournisseurs backchannels sont retournés. Si faux, les fournisseurs "
"backchannels sont exclus"

#: authentik/core/api/transactional_applications.py
#, python-brace-format
msgid "User lacks permission to create {model}"
msgstr "L'utilisateur manque de permission pour créer {model}"

#: authentik/core/api/users.py
msgid "No leading or trailing slashes allowed."
msgstr ""
Expand Down Expand Up @@ -933,14 +942,14 @@ msgid "Starting full provider sync"
msgstr "Démarrage d'une synchronisation complète du fournisseur"

#: authentik/lib/sync/outgoing/tasks.py
#, python-format
msgid "Syncing page %(page)d of users"
msgstr "Synchronisation de la page %(page)d d'utilisateurs"
#, python-brace-format
msgid "Syncing page {page} of users"
msgstr "Synchronisation de la page {page} d'utilisateurs"

#: authentik/lib/sync/outgoing/tasks.py
#, python-format
msgid "Syncing page %(page)d of groups"
msgstr "Synchronisation de la page %(page)d de groupes"
#, python-brace-format
msgid "Syncing page {page} of groups"
msgstr "Synchronisation de la page {page} de groupes"

#: authentik/lib/sync/outgoing/tasks.py
#, python-brace-format
Expand Down Expand Up @@ -1113,11 +1122,11 @@ msgid "Event Matcher Policies"
msgstr "Politiques d'association d'évènements"

#: authentik/policies/expiry/models.py
#, python-format
msgid "Password expired %(days)d days ago. Please update your password."
#, python-brace-format
msgid "Password expired {days} days ago. Please update your password."
msgstr ""
"Mot de passe expiré il y a %(days)d jours. Merci de mettre à jour votre mot "
"de passe."
"Mot de passe expiré il y a {days} jours. Merci de mettre à jour votre mot de"
" passe."

#: authentik/policies/expiry/models.py
msgid "Password has expired."
Expand Down Expand Up @@ -1249,9 +1258,13 @@ msgid "Password not set in context"
msgstr "Mot de passe non défini dans le contexte"

#: authentik/policies/password/models.py
#, python-format
msgid "Password exists on %(count)d online lists."
msgstr "Le mot de passe existe sur %(count)d liste en ligne."
msgid "Invalid password."
msgstr "Mot de passe invalide."

#: authentik/policies/password/models.py
#, python-brace-format
msgid "Password exists on {count} online lists."
msgstr "Le mot de passe existe sur {count} listes en ligne."

#: authentik/policies/password/models.py
msgid "Password is too weak."
Expand Down Expand Up @@ -1378,6 +1391,11 @@ msgstr "Fournisseurs LDAP"
msgid "Search full LDAP directory"
msgstr "Rechercher dans l'annuaire LDAP complet"

#: authentik/providers/oauth2/api/providers.py
#, python-brace-format
msgid "Invalid Regex Pattern: {url}"
msgstr "Pattern de regex invalide : {url}"

#: authentik/providers/oauth2/id_token.py
msgid "Based on the Hashed User ID"
msgstr "Basé sur le hash de l'ID utilisateur"
Expand Down Expand Up @@ -1427,6 +1445,14 @@ msgstr ""
"Chaque fournisseur a un émetteur différent, basé sur le slug de "
"l'application."

#: authentik/providers/oauth2/models.py
msgid "Strict URL comparison"
msgstr "Comparaison stricte d'URL"

#: authentik/providers/oauth2/models.py
msgid "Regular Expression URL matching"
msgstr "Correspondance d'URL par expression régulière"

#: authentik/providers/oauth2/models.py
msgid "code (Authorization Code Flow)"
msgstr "code (Authorization Code Flow)"
Expand Down Expand Up @@ -1507,10 +1533,6 @@ msgstr "Secret du client"
msgid "Redirect URIs"
msgstr "URIs de redirection"

#: authentik/providers/oauth2/models.py
msgid "Enter each URI on a new line."
msgstr "Entrez chaque URI sur une nouvelle ligne."

#: authentik/providers/oauth2/models.py
msgid "Include claims in id_token"
msgstr "Include les demandes utilisateurs dans id_token"
Expand Down Expand Up @@ -2889,13 +2911,8 @@ msgid "Captcha Stages"
msgstr "Étapes de Captcha"

#: authentik/stages/captcha/stage.py
msgid "Unknown error"
msgstr "Erreur inconnue"

#: authentik/stages/captcha/stage.py
#, python-brace-format
msgid "Failed to validate token: {error}"
msgstr "Échec de validation du jeton : {error}"
msgid "Invalid captcha response. Retrying may solve this issue."
msgstr "Réponse captcha invalide. Réessayer peut résoudre ce problème."

#: authentik/stages/captcha/stage.py
msgid "Invalid captcha response"
Expand Down Expand Up @@ -3562,6 +3579,11 @@ msgstr ""
msgid "Globally enable/disable impersonation."
msgstr "Activer/désactiver l'appropriation utilisateur de manière globale."

#: authentik/tenants/models.py
msgid "Require administrators to provide a reason for impersonating a user."
msgstr ""
"Forcer les administrateurs à fournir une raison d'appropriation utilisateur."

#: authentik/tenants/models.py
msgid "Default token duration"
msgstr "Durée par défaut des jetons"
Expand Down
Binary file modified locale/zh-Hans/LC_MESSAGES/django.mo
Binary file not shown.
Loading

0 comments on commit fe9e452

Please sign in to comment.