Commit Graph

59 Commits

Author SHA1 Message Date
Roger Stringer
53a3194d5c Add support for SAML Part 2 (#16145)
* new saml branch

* put saml info back in

* put saml info back in

* clean up code

* validate saml config

* validate schema

* Add saml auth flow tests

* use RelayState for redirects

* Update tests for RelayState

* Fix linting

* remove validateMeta as samlify does it already

* Fix linting

* change catch on login

* Update api/src/auth/drivers/saml.ts

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>

* remove login since not needed here

* clear cookie if set on logout

* empty login method

* invalidate logout in db

* if relayState and login failed, redirect back with a reason

* Cleanup linter warnings

* Remove range from packages

* Opinions opinions opinions opinions

Just a couple personal opinion cleanup pieces

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-11-01 22:09:31 +00:00
ian
a971455216 Add origin to accountability (#15273)
* Add origin to accountability

* Remove origin column from seeds
2022-08-30 14:15:44 -04:00
John Flow
5e8137367b Added COOKIE_OPTIONS to /refresh (#15302)
* Added COOKIE_OPTIONS to /refresh

* Remove unused import

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-08-28 15:53:05 -04:00
Rijk van Zanten
7833160348 Add ability to configure IP extraction (#10765)
* Add ability to configure IP extraction

* Add comment on ipv4 v ipv6

* Uninstall unused is-ip package
2021-12-30 11:34:49 -05:00
Dorian Zedler
94e53212b4 Implement AUTH_DISABLE_DEFAULT config option (#9322)
* Implement AUTH_DISABLE_DEFAULT config option

* Disable default auth rute if set to disabled

* Add disableDefault to API docs

* Update app/src/routes/login/login.vue

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>

* Remove watch block

* Remove useless variable

* Don't import watch

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-03 14:13:50 -05:00
Aiden Foxx
b7ee318e43 LDAP auth provider (#9074)
* Added LDAP implementation

* Cleanup and added refresh checking

* Added provider check to ldap

* Added LDAP docs

* Always update LDAP user role on authentication

* Fetched package-json from github

* Fixed lint error

* Update api/src/auth/drivers/ldap.ts

* Update api/src/auth/drivers/ldap.ts

* Added missing locale key

* Update docs/guides/api-config.md

* Update docs/configuration/config-options.md

* Update api/src/auth/drivers/ldap.ts

* Added back LDAP example

* Update config-options.md

* getUserID function sjhouldn't care about password

* Added LOCKOUT to INVALID_ACCOUNT_FLAGS

* Update styling approach for v-select

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-10-29 11:58:10 -04:00
Aiden Foxx
fa3b1171e8 New OpenID and OAuth2 drivers (#8660)
* Moved over oauth impl to new interface

* Fixed most build issues and started addind schema to auth drivers

* Finished up OAuth2 and OpenID drivers

* Removed unused migration and utils

* Fixed minor todos

* Removed old oauth flow

* Changed oauth flow to re-use refresh token

* Added new oauth frontend

* Added font awesome social icons

* Updated authentication documentation

* Update api/src/auth/drivers/oauth2.ts

* Tested implementation and fixed incorrect validation

* Updated docs

* Improved OAuth error handling and re-enabled creating users with provider/identifier

* Removed Session config from docs

* Update app/src/components/v-icon/v-icon.vue

* Removed oauth need to define default roleID

* Added FormatTitle to SSO links

* Prevent local auth without password

* Store OAuth access token in session data

* Update docs/guides/api-config.md

* Fixed copy and removed fontawesome-vue dependency

* More docs fixes

* Crucialy importend type fiks

* Update package-lock

* Remove is-email-allowed check

In favor of more advanced version based on filtering coming later

* Fix JSON type casting

* Delete unused util

* Update type signature to include name

* Add warning when code isn't found in oauth url

and remove obsolete imports

* Auto-continue on successful SSO login

* Tweak type signature

* More type casting shenanigans

* Please the TS gods

* Check for missing token before crashing

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-10-21 17:45:01 -04:00
Aiden Foxx
f475c877ec Send correct payload to auth provider for oauth (#8389) 2021-09-28 14:21:03 +00:00
Aiden Foxx
084c6117b7 Modular authentication (#6942)
* Moved refactoring from LDAP branch

* Moved Auth into packages

* Updated frontend to support custom auth providers and make implementation more flexible

* Fixed exception handling and numerous bugs. Also added provider support to graphql

* Updated frontend to be able to set provider and identifier

* Fixed issue with setting the auth provider in app

* Updated package-lock.json

* Updated package-lock.json

* Cleanup, adding type handling and disabled changing provider

* Added title formatting to SSO links

* Fixed incorrect type export

* Fixed incorrect rc

* Update api/src/services/authentication.ts

* Updated sub-dependencies to rc87

* Fixed linting errors

* Prefer sending provider name as config var

* Pass clone of user info to auth provider instead of reference

* Moved auth from packages into core

* Removed generic login handler

* Fixed graphql complaint

* Moved exception back to api and cleaned up URLs

* Minor tweak

* Pulled across improvements from openid branch

* Fixed fix that wasn't a fix

* Update auth.ts

* Update auth.ts

* Update authentication.ts

* Update login-form.vue

* Regression fixes and cleanup

* Minor flow improvements

* Flipped if and fixed linting warning

* Un-expanded object that didn't need to be expanded!

* Trimmed auth interface for consistency when verifying passwords

* Removed auth-manager, changed login endpoint, broke out SSO links, removed username support, disabled updating external_identifier, generate provider options as part of field generation

* Cleaned up some code comments

* Use named exports in local driver

* Use async defaults for auth abstract class

* Use JSON for auth_data field

* Move session data blob to directus_sessions

* Remove unused export, rename auth->authDriver

* Opinionated changes

* Move login route registration to driver file

* Revert app changes in favor of PR #8277

* Send session token to auth provider and opinionated changes

* Added missing translation

* Fixed empty elements for users without email

* Update api/src/auth/drivers/local.ts

* Move pw verify to local driver, remove CRUD

* Opinions > logical reasoning

* Use session data, cleanup login method on auth serv

* Remove useless null

* Fixed breaking changes from refactor, and fixed build

* Fixed lint warning

* Ignore typescript nonsense

* Update api/src/services/authentication.ts

* Fix provider name passthrough

Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-09-27 17:18:20 -04:00
Nicola Krumschmidt
d64ca14348 Explicitly set catch parameters to any type (#7654)
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
2021-08-27 10:33:30 -04:00
Rijk van Zanten
30eb83dddd Add logger statement on password request failures (#7248)
Closes #7221
2021-08-06 10:04:51 -04:00
Rijk van Zanten
d0f6cb35e3 Support dynamic variables in conditional fields (#7202)
* Move accountability type to shared

* Rely on shared for parse-filter

* Install date-fns

* Support dynamic variables in conditional fields

Closes #7157
2021-08-05 01:51:15 +02:00
Rijk van Zanten
725c95783c Show any sso login warnings in stdout (#7170)
* Show any sso login warnings in stdout

Ref #6897

* Throw more detailed error on email extraction

* Fix CSVs in env var value not cast as array
2021-08-04 00:22:52 +02:00
Rijk van Zanten
6da9524413 Fix type checking in password reset controller (#7042)
Lifted from #6942

Fixes #6927
2021-07-28 18:08:18 +02:00
j3n57h0m45
79c91ed50d enable custom name for refresh token (#6890) 2021-07-20 15:29:11 +02:00
Danny Coulombe
d1b4109f0d No error message from password reset request #6658 (#6734)
Co-authored-by: dannycoulombe <B!ahrk65>
2021-07-11 08:05:58 +00:00
Pascal Jufer
44ffd60174 Add missing cookie options to cookie cleanup on logout (#5626) 2021-05-12 12:34:58 -04:00
Rijk van Zanten
a3898fa321 Add SESSION_STORE options (#5403)
* Allow configuring the session storage driver

Fixes #3814

* Document SESSION_STORE env var

* Add missing dependency

* Docs tweak
2021-04-30 18:18:39 -04:00
rijkvanzanten
801e868554 Fix remaining eslint errors
h/t @paescuj
2021-04-29 15:55:12 -04:00
Pascal Jufer
acd41eb0be Syntax fixes (#5367)
* Declare return types on functions

And a very few other type related minor fixes

* Minor syntax fixes

* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
2021-04-29 12:11:43 -04:00
Pascal Jufer
c82d0b4198 Remove refresh token cookie on logout (#5182)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-04-21 16:53:11 +00:00
Pyll Gomez
c3ef71298c Add oauth hook (#5045)
* Rotate JPG image on upload #4206

* fixes #3949 width/height generated for gif and tif

* API hooks for event added for auth.login #4079

* updated doc for api hooks for new auth.login event

* Style tweaks

* Update docs

* Tweak docs some more

* Spelling error

* Allow non-required flags and pass to hook

* SDK - Persistent login refresh fixes #4113

* Fixed #4145 SDK, Token Expired error

* Spell check

* Docs Spell check

* Docs Spell check

* Docs Spell check

* update docs for sdk-js

* To delete all expired session from db on login

* corrected the condition for the delete

* changed the from Date.now to new date .

* Move it inline

* Fixes #4653

* added docs and cleaned up the hooks payload

* use req.accountability

* added req.params.provider to payload

* provide scope for login

* docs updated for oauth hook

* Update api/src/controllers/auth.ts

* updated provider to redirect and docs

* added payload

* Make schema available in redirect hook

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-04-16 15:51:15 +00:00
Tomáš Petržela
07b85b7eb7 Global cookie parser (#5071)
* removed local cookie parser

* add global cookie parser

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-04-15 14:55:07 +00:00
Rijk van Zanten
1b1e500ee9 Make user email case insensitive (#4941) 2021-04-09 12:33:31 -04:00
Pyll Gomez
48b287a5b8 Sso login issue 4570 (#4675)
* Rotate JPG image on upload #4206

* fixes #3949 width/height generated for gif and tif

* API hooks for event added for auth.login #4079

* updated doc for api hooks for new auth.login event

* Style tweaks

* Update docs

* Tweak docs some more

* Spelling error

* Allow non-required flags and pass to hook

* SDK - Persistent login refresh fixes #4113

* Fixed #4145 SDK, Token Expired error

* Spell check

* Docs Spell check

* Docs Spell check

* Docs Spell check

* update docs for sdk-js

* To delete all expired session from db on login

* corrected the condition for the delete

* changed the from Date.now to new date .

* Move it inline

* Fixes SSO redirect with Json error

* Remove dependency on qs

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-04-08 17:18:00 -04:00
Evgeny Vlasov
76b31eda78 add cookie's domain to another endpoints (#4499) 2021-03-12 07:56:36 -05:00
Evgeny Vlasov
7bd5dc5c9f Add env for cookie domain (#4490)
* Add env for cookie domain

* fix doc

Co-authored-by: Власов Евгений <yavlas12@mts.ru>
2021-03-11 14:10:15 -05:00
rijkvanzanten
e8222d2a28 Add reset_url allow list for password reset request 2021-03-08 13:48:59 -05:00
Pyll Gomez
aeb4ec0472 API hooks for event added for auth.login (#4255)
* Rotate JPG image on upload #4206

* fixes #3949 width/height generated for gif and tif

* API hooks for event added for auth.login #4079

* updated doc for api hooks for new auth.login event

* Style tweaks

* Update docs

* Tweak docs some more

* Spelling error

* Allow non-required flags and pass to hook

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-02-24 10:37:13 -05:00
rijkvanzanten
0233e56c88 Fix type check of refresh cookie secure env var
Fixes #4205
2021-02-22 11:14:39 -05:00
Justin Hiller
ff399f94b6 fix: mode not correctly set in refresh handler 2021-01-14 14:22:48 +01:00
rijkvanzanten
178e91106b Remove unused imports 2021-01-12 16:15:44 -05:00
rijkvanzanten
6b029b416b iRemove imported types that aren't needed 2021-01-12 16:11:08 -05:00
Rijk van Zanten
a41559b32f Merge branch 'main' into fix/async-handlers 2021-01-12 12:27:27 -07:00
rijkvanzanten
e1248aab40 Remove wrong respond middelware in oAuth check
Fixes #3380
2020-12-23 09:54:50 -05:00
WoLfulus
c5f3802da3 Replace express-async-handler for a local function. 2020-12-22 17:11:08 -03:00
rijkvanzanten
bbae89d633 Minor code cleanup 2020-12-16 16:57:26 -05:00
rijkvanzanten
651263cbde Merge branch 'main' into Kinzi/main 2020-12-16 16:54:54 -05:00
Igor Savin
7cddb458cb Run prettier across app and api 2020-12-08 02:22:00 +02:00
Sebastian Kinzlinger
0a1d59dd45 Update auth.ts
Pass custom `reset_url` to `requestPasswordReset`.
2020-11-17 11:02:28 +02:00
rijkvanzanten
8057081ce6 Re-fix @types/express-session situation
Fixes #991
2020-11-13 10:11:23 -05:00
rijkvanzanten
3654da7fa9 Work around breaking change in @types/express-sesssion
Fixes #927
2020-11-11 09:41:25 -05:00
rijkvanzanten
8cbdfb409b Use prefetched schema info 2020-11-09 17:13:48 -05:00
rijkvanzanten
ee9baf02c0 Move system fields out of DB 2020-10-29 13:06:37 -04:00
rijkvanzanten
a9abde7a04 Don't return empty array if no oauth providers 2020-10-16 15:44:27 -04:00
rijkvanzanten
592ab925db Add toArray util 2020-10-15 18:00:27 -04:00
rijkvanzanten
cac329c783 Convert env var values that contain , to arrays 2020-10-15 17:45:15 -04:00
rijkvanzanten
eeedc01c53 Add /utils/revert, use in app
Fixes #485
2020-10-02 16:20:06 -04:00
rijkvanzanten
a2bb2db180 Don't return empty array for no oauth providers 2020-10-02 14:04:44 -04:00
rijkvanzanten
e612be4b72 Add 404, rename sso to oauth, add redirect query param 2020-09-28 12:03:43 -04:00