Commit Graph

138 Commits

Author SHA1 Message Date
James Elliott
ddea31193b
feature(oidc): add support for OpenID Connect
OpenID connect has become a standard when it comes to authentication and
in order to fix a security concern around forwarding authentication and authorization information
it has been decided to add support for it.

This feature is in beta version and only enabled when there is a configuration for it.
Before enabling it in production, please consider that it's in beta with potential bugs and that there
are several production critical features still missing such as all OIDC related data is stored in
configuration or memory. This means you are potentially going to experience issues with HA
deployments, or when restarting a single instance specifically related to OIDC.

We are still working on adding the remaining set of features before making it GA as soon as possible.

Related to #189

Co-authored-by: Clement Michaud <clement.michaud34@gmail.com>
2021-05-05 00:15:36 +02:00
renovate[bot]
ec17389a54
build(deps): update module github.com/fasthttp/session/v2 to v2.3.2 (#1962)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2021-04-30 11:57:33 +10:00
renovate[bot]
908146d6f0
build(deps): update module github.com/fasthttp/router to v1.3.12 (#1961)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2021-04-30 09:54:49 +10:00
renovate[bot]
7831212d02
build(deps): update module github.com/valyala/fasthttp to v1.24.0 (#1957)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2021-04-29 08:57:33 +10:00
renovate[bot]
dafd61f08d
build(deps): update module github.com/simia-tech/crypt to v0.5.0 (#1938)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-21 22:25:38 +02:00
renovate[bot]
fed55be3e1
build(deps): update module github.com/mattn/go-sqlite3 to v1.14.7 (#1914)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-14 21:49:42 +02:00
renovate[bot]
f087de68f8
build(deps): update module github.com/otiai10/copy to v1.5.1 (#1894)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-08 09:03:53 +10:00
renovate[bot]
09f5aaec25
build(deps): update module github.com/go-ldap/ldap/v3 to v3.3.0 (#1890)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-06 12:19:20 +10:00
renovate[bot]
a5cdf54912
build(deps): update module github.com/fasthttp/session/v2 to v2.3.1 (#1888)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-05 20:22:06 +10:00
renovate[bot]
f646aa5242
build(deps): update module github.com/fasthttp/router to v1.3.11 (#1887)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-05 06:38:09 +10:00
renovate[bot]
64258f93af
build(deps): update module golang.org/x/text to v0.3.6 (#1882)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-02 08:32:57 +11:00
renovate[bot]
ef14e3842c
build(deps): update module github.com/go-sql-driver/mysql to v1.6.0 (#1880)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-01 20:53:47 +11:00
renovate[bot]
122c9126db
build(deps): update module github.com/workiva/go-datastructures to v1.0.53 (#1868)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-30 11:15:30 +11:00
renovate[bot]
0c893a2880
build(deps): update module github.com/valyala/fasthttp to v1.23.0 (#1867)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-30 10:36:31 +11:00
renovate[bot]
322592f679
build(deps): update module github.com/fasthttp/router to v1.3.10 (#1856)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-27 09:13:15 +11:00
renovate[bot]
2b75e98402
build(deps): update module github.com/jackc/pgx/v4 to v4.11.0 (#1850)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-26 09:04:32 +11:00
James Elliott
e3e8df26f2
refactor(session): use github.com/fasthttp/session/v2 instead of github.com/authelia/session/v2 (#1809)
Reverts to the upstream library instead of our maintenance fork.
2021-03-13 16:06:19 +11:00
renovate[bot]
5001749b1b
build(deps): update module github.com/sirupsen/logrus to v1.8.1 (#1792)
* build(deps): update module github.com/sirupsen/logrus to v1.8.1

* fix: go mod tidy (go.sum)

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2021-03-10 11:33:14 +11:00
James Elliott
e041143f87
feat(session): add redis sentinel provider (#1768)
* feat(session): add redis sentinel provider

* refactor(session): use int for ports as per go standards

* refactor(configuration): adjust tests and validation

* refactor(configuration): add err format consts

* refactor(configuration): explicitly map redis structs

* refactor(session): merge redis/redis sentinel providers

* refactor(session): add additional checks to redis providers

* feat(session): add redis cluster provider

* fix: update config for new values

* fix: provide nil certpool to affected tests/mocks

* test: add additional tests to cover uncovered code

* docs: expand explanation of host and nodes relation for redis

* ci: add redis-sentinel to suite highavailability, add redis-sentinel quorum

* fix(session): sentinel password

* test: use redis alpine library image for redis sentinel, use expose instead of ports, use redis ip, adjust redis ip range, adjust redis config

* test: make entrypoint.sh executable, fix entrypoint.sh if/elif

* test: add redis failover tests

* test: defer docker start, adjust sleep, attempt logout before login, attempt visit before login and tune timeouts, add additional logging

* test: add sentinel integration test

* test: add secondary node failure to tests, fix password usage, bump test timeout, add sleep

* feat: use sentinel failover cluster

* fix: renamed addrs to sentineladdrs upstream

* test(session): sentinel failover

* test: add redis standard back into testing

* test: move redis standalone test to traefik2

* fix/docs: apply suggestions from code review
2021-03-10 10:03:05 +11:00
renovate[bot]
5cf98de225
build(deps): update module github.com/fasthttp/router to v1.3.9 (#1775)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-02 22:03:47 +11:00
renovate[bot]
e2f08f568a
build(deps): update module github.com/valyala/fasthttp to v1.22.0 (#1772)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-02 11:27:03 +11:00
renovate[bot]
abe8e438a2
build(deps): update module github.com/fasthttp/router to v1.3.8 (#1771)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-02 08:58:28 +11:00
Amir Zarrinkafsh
4f099b76d7
build(deps): downgrade module github.com/mattn/go-sqlite3 to v1.14.6 (#1758) 2021-02-23 14:51:31 +11:00
renovate[bot]
d000e5dbeb
build(deps): update module github.com/otiai10/copy to v1.5.0 (#1753)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-23 05:41:51 +11:00
renovate[bot]
30d45dd3fc
build(deps): update module github.com/sirupsen/logrus to v1.8.0 (#1747)
* build(deps): update module github.com/sirupsen/logrus to v1.8.0

* go mod tidy

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2021-02-22 21:52:08 +11:00
renovate[bot]
b10adf6cf4
build(deps): update module github.com/golang/mock to v1.5.0 (#1746)
* build(deps): update module github.com/golang/mock to v1.5.0

* build(deps): go mod tidy

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2021-02-22 20:33:17 +11:00
renovate[bot]
68af1fdfca
build(deps): update module github.com/authelia/session/v2 to v2.4.1 (#1745)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-22 17:48:10 +11:00
James Elliott
0f7891a823
build(deps): update module github.com/valyala/fasthttp to v1.21.0 (#1755) 2021-02-22 16:37:40 +11:00
renovate[bot]
e77ef2d1dc
build(deps): update module github.com/spf13/cobra to v1.1.3 (#1741)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-22 15:47:07 +11:00
Amir Zarrinkafsh
74721a9f41
feat: go:embed static assets (#1733)
* feat: go:embed static assets

Go 1.16 introduced the ability to embed files within a generated binary directly with the go tool chain. This simplifies our dependencies and the significantly improves the development workflow for future developers.

Key points to note:

Due to the inability to embed files that do not reside within the local package we need to duplicate our `config.template.yml` within `internal/configuration`.

To avoid issues with the development workflow empty mock files have been included within `internal/server/public_html`. These are substituted with the respective generated files during the CI/CD and build workflows.

* fix(suites): increase ldap suite test timeout

* fix(server): fix swagger asset CSP
2021-02-22 10:07:06 +11:00
Amir Zarrinkafsh
aac5170ddc
ci: remove dependabot (#1696)
da5892faad introduced renovate to Authelia.
Now that it has been evaluated dependabot is no longer necessary and can be removed.
2021-02-04 13:06:23 +11:00
renovate[bot]
f1664fea00
build(deps): update module spf13/cobra to v1 (#1676)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 20:27:06 +11:00
renovate[bot]
d2c1e6afa5
build(deps): update module yaml to v2.4.0 (#1671)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 14:18:46 +11:00
renovate[bot]
895b69d871
build(deps): update module sirupsen/logrus to v1.7.0 (#1667)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 14:00:57 +11:00
renovate[bot]
cfb1ee020e
build(deps): update module pquerna/otp to v1.3.0 (#1665)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 13:44:15 +11:00
renovate[bot]
6a0ed57196
build(deps): update module otiai10/copy to v1.4.2 (#1664)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 13:30:22 +11:00
renovate[bot]
c53e590585
build(deps): update module jackc/pgx/v4 to v4.10.1 (#1663)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 13:12:26 +11:00
renovate[bot]
0baf8b808a
build(deps): update module fasthttp/router to v1.3.5 (#1662)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 12:57:08 +11:00
renovate[bot]
158c70a24c
build(deps): update module data-dog/go-sqlmock to v1.5.0 (#1661)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 12:43:08 +11:00
renovate[bot]
6b1d9d14e7
build(deps): update module golang.org/x/text to v0.3.5 (#1654)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-31 10:27:33 +11:00
renovate[bot]
ccb7e7e955
build(deps): update module go-ldap/ldap/v3 to v3.2.4 (#1653) 2021-01-31 09:50:01 +11:00
renovate[bot]
a089c03fa3
build(deps): update module valyala/fasthttp to v1.19.0 (#1670)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-30 21:02:31 +11:00
renovate[bot]
bce802621b
build(deps): update module stretchr/testify to v1.7.0 (#1669)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-30 20:44:07 +11:00
renovate[bot]
a35d9de242
build(deps): update github.com/duosecurity/duo_api_golang commit hash to 0e07e9f (#1646)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-30 19:49:12 +11:00
renovate[bot]
1448908e40
build(deps): update github.com/asaskevich/govalidator commit hash to 7a23bdc (#1645)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-30 18:06:58 +11:00
James Elliott
2763aefe81
[BUGFIX] Static Session Expiration Key (#1564)
* [BUGFIX] Static Session Expiration Key

* keys for session expiration are random for each instance of Authelia
* this is caused by upstream setting it to a random value
* using a temporary bugfix fork of github.com/fasthttp/session to resolve locally
* add some misc doc additions
2020-12-29 12:44:47 +11:00
James Elliott
365304a684
[FEATURE] Add Optional Check for Session Username on VerifyGet (#1427)
* Adding the Session-Username header to the /api/verify endpoint when using cookie auth will check the value stored in the session store for the username and the header value are the same.
* use strings.EqualFold to compare case insensitively
* add docs
* add unit tests
* invalidate session if it is theoretically hijacked and log it as a warning (can only be determined if the header doesn't match the cookie)
* add example PAM script
* go mod tidy
* go mod bump to 1.15
2020-12-02 10:03:44 +11:00
James Elliott
a92b0bff1d
[FEATURE] Plain Text Email Notifications (#1238)
* add a plain text email template
* use plain text email template for file based emails
* add config option to SMTP emails named disable_html_emails
  * config option is a boolean that when set to true will only send plain text emails
* add docs for more complex SMTP notifier options
* update template
* add rfc1341 multipart logic to notifier
* check for errors after identity_verification

* * fix nil ptr
* go mod tidy
* remove needless checks

* * use multipart/atlernative instead

* * add rfc5322 compliant date header

* * fix linting issues
2020-08-21 12:16:23 +10:00
dependabot-preview[bot]
f1968343c3
[MISC] (deps): Bump github.com/spf13/viper from 1.7.0 to 1.7.1 (#1251)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/spf13/viper/releases)
- [Commits](https://github.com/spf13/viper/compare/v1.7.0...v1.7.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-04 09:07:38 +10:00
dependabot-preview[bot]
b9eb94f658
[MISC] (deps): Bump github.com/jackc/pgx/v4 from 4.8.0 to 4.8.1 (#1244)
Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/jackc/pgx/releases)
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v4.8.0...v4.8.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-31 12:10:51 +10:00