Commit Graph

216 Commits (e3e31e3cbc2a2c030dc51f7cd6a15ccdfc956873)

Author SHA1 Message Date
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 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
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
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 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
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 e97a848600
refactor: ldap filter (#4329) 2022-11-04 13:42:28 +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
James Elliott e3d82bcfa0
refactor: fix misc alignment issues and gen (#4239) 2022-10-23 07:42:19 +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
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 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
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
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 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
James Elliott 3107e493e7
refactor: adjust defaults (#4137)
* refactor: adjust defaults

* refactor: adjust level

* refactor: adjust level

* refactor: fix templates
2022-10-07 13:52:01 +11:00
James Elliott dc79c8ea59
refactor: any (#4133)
* refactor: any

* refactor: fix test
2022-10-05 16:05:23 +11:00
James Elliott 3f39914c8f
refactor: private key decoding and generators (#4116) 2022-10-03 11:52:29 +11:00
Manuel Nuñez c8fa19e6bd
feat(notification): add disable_starttls option (#3855)
This adds a boolean option to SMTP which disables StartTLS for SMTP servers that ignore standards.
2022-10-02 13:51:19 +11:00
James Elliott 6810c91d34
feat(oidc): issuer jwk certificates (#3989)
This allows for JWKs to include certificate information, either signed via Global PKI, Enterprise PKI, or self-signed.
2022-10-02 13:07:40 +11:00
James Elliott 66ea374227
feat(authentication): permit feature detection failures (#4061)
This adds a configuration option which permits the failure of feature detection (control type OIDs and extension OIDs).
2022-10-02 07:44:18 +11:00
James Elliott ed7092c59a
feat: envoy support (#3793)
Adds support for Envoy and Istio using the X-Authelia-URL header. The documentation will be published just before the release.

Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2022-10-01 21:47:09 +10:00
James Elliott 9c72bc8977
ci: gen github tmpl locales and commitlint (#3759)
This adds several automatic generators for Authelia docs etc.
2022-09-16 14:21:05 +10:00
James Elliott 2325031052
refactor: clean up uri checking functions (#3943) 2022-09-03 11:51:02 +10:00
James Elliott 84f9e0c021
fix(configuration): incorrect deprecated version (#3935) 2022-09-01 12:44:53 +10:00
James Elliott 342497a869
refactor(server): use errgroup to supervise services (#3755)
Uses the errgroup package and pattern for supervising services like servers etc.
2022-08-09 07:50:12 +10:00
Amir Zarrinkafsh 2d26b4e115
refactor: fix linter directives for go 1.19 and golangci-lint 1.48.0 (#3798) 2022-08-07 11:24:00 +10:00
James Elliott df016be29e
fix(notification): incorrect date header format (#3684)
* fix(notification): incorrect date header format

The date header in the email envelopes was incorrectly formatted missing a space between the `Date:` header and the value of this header. This also refactors the notification templates system allowing people to manually override the envelope itself.

* test: fix tests and linting issues

* fix: misc issues

* refactor: misc refactoring

* docs: add example for envelope with message id

* refactor: organize smtp notifier

* refactor: move subject interpolation

* refactor: include additional placeholders

* docs: fix missing link

* docs: gravity

* fix: rcpt to command

* refactor: remove mid

* refactor: apply suggestions

Co-authored-by: Amir Zarrinkafsh <nightah@me.com>

* refactor: include pid

Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2022-07-18 10:56:09 +10:00
James Elliott f115f77df8
fix(web): offline_access consent description (#3679) 2022-07-11 16:24:09 +10:00
James Elliott 03d56a31ad
refactor: address code review (#3675)
Addresses code review for #3653.
2022-07-08 20:56:22 +10:00
James Elliott 290a38e424
fix(configuration): address parsing failure (#3653)
This fixes an issue with parsing address types from strings.
2022-07-05 14:43:12 +10:00
James Elliott beeb9eae90
docs: fix config template lint (#3618) 2022-06-28 17:28:49 +10:00
James Elliott f355a45ff3
fix(configuration): storage encryption_key required log grammar issue (#3617) 2022-06-28 17:13:47 +10:00
James Elliott e1ee5a5d07
fix(configuration): missing password_reset disable key (#3616) 2022-06-28 16:41:30 +10:00
James Elliott 2b6b6ef1f0
docs: roadmap permalinks (#3614) 2022-06-28 13:55:50 +10:00
James Elliott d2f1e5d36d
feat(configuration): automatically map old keys (#3199)
This performs automatic remapping of deprecated configuration keys in most situations.
2022-06-28 13:15:50 +10:00
James Elliott e2e1d6d30b
docs: update integration guides to reference get started (#3573) 2022-06-22 22:58:23 +10:00
James Elliott 25b5c1ee2e
feat(authentication): unauthenticated ldap bind (#3291)
This allows configuring unauthenticated LDAP binding.
2022-06-17 21:03:47 +10:00