Commit Graph

815 Commits (496dee6e42d32e61e365bceb7f78267106802858)

Author SHA1 Message Date
Manuel Nuñez 56f028294b
fix(utils): fix suite setup timeout (#4771)
After PR #4751 the suites times out if takes more of 60 seconds
This PR honors the timeout configured at waitUntilAutheliaBackendIsReady (90s)
2023-01-16 10:58:13 +11:00
Manuel Nuñez 1cf9e6f3ef
test(utils): add additional coverage (#4751) 2023-01-12 22:30:16 +11:00
Manuel Nuñez 8b29cf7ee8
feat(session): multiple session cookie domains (#3754)
This adds support to configure multiple session cookie domains.

Closes #1198

Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2023-01-12 21:57:44 +11:00
renovate[bot] 81ffe9d616
build(deps): update golang docker tag to v1.19.5 (#4752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-11 14:48:33 +11:00
renovate[bot] 0dcaa3d2ab
build(deps): update alpine docker tag to v3.17.1 (#4742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-10 09:09:34 +11:00
renovate[bot] 7b00b21da1
build(deps): update module github.com/fasthttp/session/v2 to v2.4.15 (#4292)
* build(deps): update module github.com/fasthttp/session/v2 to v2.4.15
* fix(session): adjust api for changes in upstream library

Fixes #3751.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2023-01-09 15:57:40 +11:00
James Elliott cf4010b4fb
fix(oidc): csp blocks form_post response form submit (#4719)
This fixes an issue where the form_post response never gets submitted.

Fixes #4669
2023-01-08 07:04:06 +11:00
renovate[bot] 3d6c67fa33
build(deps): update module github.com/go-webauthn/webauthn to v0.6.0 (#4646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2023-01-07 14:21:27 +11:00
James Elliott fc5ea5b485
refactor(random): add random provider (#4712)
This adds a random provider which makes usage of random operations mockable, and may allow us in the future to swap out the Cryptographical CPU random generator with dedicated hardware random generators.
2023-01-07 11:19:41 +11:00
James Elliott f223975e79
refactor(oidc): simplify hmac core strategy (#4711) 2023-01-07 10:28:53 +11:00
Manuel Nuñez 2ab50c7f61
test(handlers): add additional coverage (#4698)
* test(handlers): handler_checks_safe_redirection

* test(handlers): password_policy

* test(handlers): health

Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2023-01-05 09:37:43 +11:00
Manuel Nuñez 6c3d64a06c
test(ntp): add missing tests (#4693) 2023-01-04 09:12:19 +11:00
James Elliott adaf069eab
feat(oidc): per-client pkce enforcement policy (#4692)
This implements a per-client PKCE enforcement policy with the ability to enforce that it's used, and the specific challenge mode.
2023-01-04 02:03:23 +11:00
renovate[bot] 8421b1bdb8
build(deps): update module github.com/deckarep/golang-set to v2 (#4675)
* build(deps): update module github.com/deckarep/golang-set to v2

* fix: utilise new major for lib

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2023-01-04 00:36:28 +11:00
James Elliott 08cda5d165
refactor: include additional important template funcs (#4690)
* refactor: include additional important template funcs

* fix: use of interface

* test: improve test cases
2023-01-04 00:11:10 +11:00
James Elliott 5efc996109
test: fix cli suite (#4686)
* test: fix cli suite

* test: fix cli suite
2023-01-03 21:39:55 +11:00
James Elliott 53a6275a79
fix(server): errors not logged (#4682)
This fixes a couple errors that were previously not logged as well as ensuring most templates are appropriately parsed via tests.
2023-01-03 17:08:49 +11:00
James Elliott 1c3219e93f
perf(server): cached openapi document (#4674)
This should lead to a small performance gain by caching the openapi.yml with etags as well as eliminating the use of nonce crypto generation when not required.
2023-01-03 14:49:02 +11:00
James Elliott f685f247cf
feat(notification): important events notifications (#4644)
This adds important event notifications.
2022-12-27 19:59:08 +11:00
James Elliott a771cc6c2b
fix(notification): missing display name (#4653) 2022-12-27 10:54:58 +11:00
James Elliott a691131288
fix(notification): missing use of timeout (#4652) 2022-12-27 08:32:00 +11:00
James Elliott 7b8ed46537
fix(notification): smtp auth not configured (#4647)
This fixes an issue introduced by the pending migration to the new SMTP library in 0bb657e where the auth mechanism is never defined. This only affects commits that are yet to be versioned.
2022-12-26 21:39:19 +11:00
Eng Zer Jun 54afe925b8
test: use test machinery to set env vars in tests (#4640)
This commit replaces `os.Setenv` with `t.Setenv` in tests. The environment variable is automatically restored to its original value when the test and all its subtests complete. Reference: https://pkg.go.dev/testing#T.Setenv

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-12-26 07:16:05 +11:00
James Elliott 55a6794370
feat(templates): templating functions (#4635)
This adds several functions which are available in most areas that use templates.
2022-12-23 21:58:54 +11:00
James Elliott 0bb657e11c
refactor(notifier): utilize smtp lib (#4403)
This drops a whole heap of code we were maintaining in favor of a SMTP library.

Closes #2678
2022-12-23 16:06:49 +11:00
James Elliott d7ab3bb633
feat(commands): storage import/export commands (#4545)
This adds commands to export and import TOTP configurations and Webauthn devices as YAML.
2022-12-23 15:00:23 +11:00
James Elliott 0130edb870
feat(configuration): env config file discovery (#4618)
This allows Authelia to discover config files and config options via environment variables.

Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2022-12-23 11:03:50 +11:00
James Elliott cc1e58e004
feat(configuration): load config from directory (#4616)
This allows specifying paths to a combination of files and directories with the --config option provided none of the specified file paths reside directly inside one of the specified directory paths. The directory paths are not recursive, and load .yml and .yaml files at this time.
2022-12-22 17:34:20 +11:00
renovate[bot] 2eb820026b
build(deps): update haproxy docker tag to v2.7.1 (#4615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-22 05:40:53 +00:00
James Elliott 1a849a37bd
docs: fix misc mistakes and adjust placeholders (#4614) 2022-12-22 11:39:59 +11:00
James Elliott e3e31e3cbc
refactor(commands): command context (#4539)
This moves a lot of machinery for commands into a context.Context with other struct values. This allows for PreRunE's to reliably load the configuration and avoids use of global vars.
2022-12-22 11:21:29 +11:00
James Elliott d3d87ffe30
feat(configuration): glauth ldap implementation (#4499)
This adds a GLAuth LDAP implementation which purely adds sane defaults for GLAuth. There are no functional differences just when the implementation option is set to 'glauth' sane defaults which should be sufficient for most use cases are set. See the documentation at https://www.authelia.com/r/ldap#defaults for more details.
2022-12-21 22:14:22 +11:00
James Elliott 5b8b3145ad
feat(configuration): lldap implementation (#4498)
This adds a lldap LDAP implementation which purely adds sane defaults for lldap. There are no functional differences just when the implementation option is set to 'lldap' sane defaults which should be sufficient for most use cases are set. See the documentation at https://www.authelia.com/r/ldap#defaults for more details.
2022-12-21 21:51:25 +11:00
James Elliott d67554ab88
feat(authentication): ldap time replacements (#4483)
This adds and utilizes several time replacements for both specialized LDAP implementations.

Closes #1964, Closes #1284
2022-12-21 21:31:21 +11:00
James Elliott d0d80b4f66
feat(configuration): freeipa ldap implementation (#4482)
This adds a FreeIPA LDAP implementation which purely adds sane defaults for FreeIPA. There are no functional differences just when the implementation option is set to 'freeipa' sane defaults which should be sufficient for most use cases are set. See the documentation at https://www.authelia.com/r/ldap#defaults for more details.

Closes #2177, Closes #2161
2022-12-21 21:07:00 +11:00
James Elliott c7f4d5999d
feat(configuration): file filters (#4515)
This adds experimental file filters which are not guaranteed under our stability policies. These filters take effect after reading the files and before parsing their content.
2022-12-21 20:48:14 +11:00
James Elliott 3ba2eae20e
fix(server): verify endpoint 405ing non-get/head reqs (#4607)
Fixes an issue specific to envoy that prevents the verify endpoint working with requests not using the GET or HEAD methods.
2022-12-21 18:47:20 +11:00
James Elliott 728902335b
refactor: const int type stringers (#4588) 2022-12-17 23:39:24 +11:00
James Elliott d13247ce43
refactor(server): simplify templating and url derivation (#4547)
This refactors a few areas of the server templating and related functions.
2022-12-17 11:49:05 +11:00
James Elliott 28cd927f88
fix(authentication): msad dlsg excluded from default filter (#4569)
The groups filter narrowing for Active Directory to purposefully exclude distribution groups (which are not designed to act as security groups) unintentionally removed DLSG's from the filter results. This effectively reverts that allowing both DLSG's and GUSG's to be returned by default.

Fixes #4551, Fixes #4528
2022-12-14 14:57:32 +11:00
Amir Zarrinkafsh 1e5304b280
build(deps): update redis and mariadb docker tags for k8s (#4570) 2022-12-14 12:18:46 +11:00
renovate[bot] 59287f4e18
build(deps): update osixia/openldap docker tag to v1.5.0 (#4559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 07:34:16 +00:00
renovate[bot] 3320900d8b
build(deps): update mariadb docker tag to v10.4.27 (#4557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 02:18:43 +00:00
Amir Zarrinkafsh 505a7e90b3
refactor(suites): replace kind with k3d (#4553)
This change replaces Kind with a might lighter K8s variation K3D.
Many of our manifests have also been consolidated.
Other key changes have been highlighted below:
* Utilise K3D Traefik Ingress
* Automatically provision all manifests, removing the abundance of shell scripts
* Expose Traefik and K8s dashboards through the Ingress
2022-12-13 10:15:32 +11:00
renovate[bot] 785332a124
build(deps): update traefik docker tag to v2.9.6 (#4513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 21:56:31 +11:00
James Elliott 0fd8d044bf
build(deps): update module github.com/ory/fosite to v0.44.0 (#4506) 2022-12-08 08:48:50 +11:00
renovate[bot] 77afa2d726
build(deps): update golang docker tag to v1.19.4 (#4494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 23:15:41 +11:00
Amir Zarrinkafsh 99f965ae25
test(suites): refactor flaky tests (#4502) 2022-12-07 20:22:03 +11:00
dependabot[bot] c5387460c7
build(deps): bump qs in /internal/suites/example/compose/duo-api (#4492)
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.11.0.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.2...v6.11.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2022-12-07 18:07:55 +11:00
renovate[bot] c9bc3c8b1e
build(deps): update envoyproxy/envoy docker tag to v1.24.1 (#4487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 10:24:34 +11:00
James Elliott 07e32ca734
i18n: update translation for portal.json (Finnish) (#4460) 2022-12-05 12:20:23 +11:00
James Elliott 0aa6745059
build(deps): update module github.com/go-crypt/crypt to v0.2.2 (#4452) 2022-12-05 09:37:08 +11:00
Eng Zer Jun 59c11581b8
test: use testing tempdir tooling (#4468)
This commit replaces `os.MkdirTemp` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `os.MkdirTemp`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2022-12-04 20:57:28 +11:00
renovate[bot] 9adf30b7e3
build(deps): update haproxy docker tag to v2.7.0 (#4459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 00:59:33 +00:00
James Elliott 3e4ac7821d
refactor: remove pre1 migration path (#4356)
This removes pre1 migrations and improves a lot of tooling.
2022-11-25 23:44:55 +11:00
James Elliott e1f9718e17
fix(configuration): max tls ver not correctly derived (#4428)
This fixes an issue where the maximum version if unset is derived from the minimum version erroneously.

Fixes #4425
2022-11-24 20:32:57 +11:00
James Elliott 203cb19c2f
fix(configuration): missing warning about session domain (#4417)
This adds some helpful configuration warnings and fixes a few misconfiguration issues.
2022-11-24 10:16:23 +11:00
renovate[bot] 66807b5a8c
build(deps): update alpine docker tag to v3.17.0 (#4422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-23 00:58:19 +00:00
James Elliott c481ac86bb
fix(configuration): valid oidc redirect uris not accepted (#4410)
This fixes an issue where redirect URIs which may be valid are rejected by the configuration validator. This will instead allow the OpenID Connect 1.0 flows to validate them individually.
2022-11-21 11:52:27 +11:00
James Elliott 194d34106e
fix(storage): schema inconsistency (#4262) 2022-11-19 16:47:09 +11:00
renovate[bot] 47b78f2272
build(deps): update mariadb docker tag to v10.10.2 (#4399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 10:50:47 +00:00
renovate[bot] a4d9d488b1
build(deps): update traefik docker tag to v2.9.5 (#4398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 01:29:38 +00:00
James Elliott 36dbc96b14
refactor: sql formatting (#4371)
* refactor: sql spacing

* refactor editor config
2022-11-14 12:54:30 +11:00
renovate[bot] 3574d8ab17
build(deps): update alpine docker tag to v3.16.3 (#4362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-13 12:26:20 +00:00
James Elliott ad68f33aeb
build(deps): update module github.com/ory/fosite to v0.43.0 (#4269)
This updates fosite and refactors our usage out of compose.
2022-11-13 14:26:10 +11:00
renovate[bot] 909deafeba
build(deps): update mariadb docker tag to v10.9.4 (#4355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-11 07:20:15 +00:00
James Elliott 02920c18be
refactor: few misc issues (#4330) 2022-11-04 22:24:10 +11:00
James Elliott e97a848600
refactor: ldap filter (#4329) 2022-11-04 13:42:28 +11:00
James Elliott 500410fac3
refactor(commands): include rfc3986 charset (#4328)
This includes the RFC3986 unreserved charset as an option, and allows the '-upper' and '-lower' suffix for alphabetic inclusive charsets.
2022-11-04 11:32:49 +11:00
renovate[bot] 1e057819f2
build(deps): update golang docker tag to v1.19.3 (#4316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-02 03:42:08 +00:00
James Elliott 5a23df4544
refactor: uuid parse bytes (#4311)
Use ParseBytes instead since it supports a byte encoded string.
2022-11-01 10:31:13 +11:00
James Elliott 6b2f713e10
fix(configuration): certificate_chains can't be defined as secrets (#4302)
This fixes an issue where certificate_chain values can't be defined as secrets. While not expressly needed for certificates, it's more convenient and less prone to error than defining a environment variable with the contents.
2022-10-31 11:52:14 +11:00
renovate[bot] db9de7b5a4
build(deps): update traefik docker tag to v2.9.4 (#4286)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2022-10-29 17:00:46 +11:00
James Elliott a048ab6d47
fix(authentication): erroneously escaped group base dn (#4288)
The BaseDN for groups was escaped improperly and failed on any BaseDN with special characters. This fixes the issue.
2022-10-28 20:21:43 +11:00
James Elliott a283fda6d6
fix(oidc): handle authorization post requests (#4270)
This fixes an issue where the authorization endpoint was not handling post requests as per the specification. It also fixes the missing CORS middleware on the authorization endpoint.
2022-10-26 19:14:43 +11:00
James Elliott dfd196460f
refactor: close database connections on shutdown (#4255)
This explicitly closes the database connection during shutdown.
2022-10-25 16:12:42 +11:00
James Elliott 53c1b645ee
fix(storage): postgresql default port incorrect (#4251)
This fixes a typo with the default port for PostgreSQL in 4.37.

Fixes #4249
2022-10-24 06:09:38 +11:00
James Elliott 6654fd6130
refactor: update users_database examples (#4240) 2022-10-23 08:12:16 +11:00
James Elliott e3d82bcfa0
refactor: fix misc alignment issues and gen (#4239) 2022-10-23 07:42:19 +11:00
James Elliott 00ab279336
refactor: csp gen (#4163)
Generator for CSP.
2022-10-22 22:19:32 +11:00
James Elliott 69c4c02d03
feat(storage): tls connection support (#4233)
This adds support to PostgreSQL and MySQL to connect via TLS via the standard TLS configuration options.
2022-10-22 19:27:59 +11:00
James Elliott 1ea29cb2c2
feat(storage): unix socket support (#4231)
Support for unix sockets for MySQL and PostgreSQL.
2022-10-22 16:41:27 +11:00
James Elliott 1d821a0d3a
fix(storage): mysql timestamp parsed incorrectly (#4230)
The timestamps in MySQL were not being parsed correctly. The driver treats all timestamp and datetime objects the same which is not correct.
2022-10-22 15:25:12 +11:00
renovate[bot] 4611636b2b
build(deps): update node.js to v19 (#4203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2022-10-21 20:34:44 +11:00
James Elliott 5c981e7603
feat(configuration): comment unnecessary template lines (#4222)
This adjusts the default configuration to mostly include commented configuration.
2022-10-21 20:17:30 +11:00
James Elliott 9532823a99
feat(configuration): mtls clients (#4221)
This implements mTLS support for LDAP, Redis, and SMTP. Specified via the tls.certificate_chain and tls.private_key options.

Closes #4044
2022-10-21 19:41:33 +11:00
James Elliott 3113ec2b80
feat(commands): random character generator (#4213)
This improves all random character generator command usages to be nearly identical and reuse a large block of code. It also improves several functions to give more options when randomly generating outputs.
2022-10-21 07:41:46 +11:00
James Elliott 248f1d49d4
feat(oidc): hashed client secrets (#4026)
Allow use of hashed OpenID Connect client secrets.
2022-10-20 14:21:45 +11:00
James Elliott 3aaca0604f
feat(oidc): implicit consent (#4080)
This adds multiple consent modes to OpenID Connect clients. Specifically it allows configuration of a new consent mode called implicit which never asks for user consent.
2022-10-20 13:16:36 +11:00
renovate[bot] 395d81e72a
build(deps): update envoyproxy/envoy docker tag to v1.24.0 (#4208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-20 10:28:27 +11:00
James Elliott 24e41aed84
feat(commands): add webauthn device commands (#3671) 2022-10-19 18:17:55 +11:00
James Elliott 52102eea8c
feat(authorization): query parameter filtering (#3990)
This allows for advanced filtering of the query parameters in ACL's.

Closes #2708
2022-10-19 14:09:22 +11:00
renovate[bot] 47d18b462a
build(deps): update envoyproxy/envoy docker tag to v1.23.2 (#4201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-19 08:32:32 +11:00
James Elliott a4edf21320
fix(authorization): subject wildcard domain rule not matching (#4187)
This fixes an issue where the subject wildcard domain rules (those containing {user} and {group}) are not considered matches even though they may be once a user authenticates.

Fixes #4186
2022-10-18 19:14:34 +11:00
James Elliott a0b2e78e5d
feat(authentication): file case-insensitive and email search (#4194)
This allows both case-insensitive and email searching for the file auth provider.

Closes #3383
2022-10-18 11:57:08 +11:00
James Elliott d610874be4
feat(authentication): disabled users in yaml file (#4193)
Allows setting users as disabled.
2022-10-18 09:10:53 +11:00
James Elliott 84cb457cb0
feat(authentication): file provider hot reload (#4188)
This adds hot reloading to the file auth provider.
2022-10-17 22:31:23 +11:00
James Elliott 3a70f6739b
feat(authentication): file password algorithms (#3848)
This adds significant enhancements to the file auth provider including multiple additional algorithms.
2022-10-17 21:51:59 +11:00
James Elliott 8eadf72dc7
docs: rule matching concepts (#4154)
* docs: rule matching concepts

* docs: add named regex note

* docs: adjust wording

* docs: expand match table

* docs: simplify

* docs: fix link

* docs: fix link
2022-10-16 14:11:43 +11:00
renovate[bot] c6e1197750
build(deps): update postgres docker tag to v15 (#4182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-15 11:51:02 +11:00