Compare commits

...

1307 Commits

Author SHA1 Message Date
Jens Langhammer
6b26e10ea2 new release: 0.9.0-rc1 2020-07-15 12:00:47 +02:00
Jens Langhammer
a737335fdd ci: fix database connections failing 2020-07-14 22:55:30 +02:00
Jens Langhammer
e15f7d7f28 flows: fix potential open redirect vuln 2020-07-14 21:57:28 +02:00
Jens Langhammer
fbf9554a9e flows: fix SESSION_KEY_GET being deleted too early 2020-07-14 21:42:47 +02:00
Jens Langhammer
5f34b08433 ci: fix failed tests not failing CI pipeline 2020-07-14 21:36:40 +02:00
Jens L
f67a03ad66 Merge pull request #126 from BeryJu/dependabot/pip/elastic-apm-5.8.1
build(deps): bump elastic-apm from 5.8.0 to 5.8.1
2020-07-14 09:19:07 +02:00
dependabot-preview[bot]
6095301337 build(deps): bump elastic-apm from 5.8.0 to 5.8.1
Bumps [elastic-apm](https://github.com/elastic/apm-agent-python) from 5.8.0 to 5.8.1.
- [Release notes](https://github.com/elastic/apm-agent-python/releases)
- [Changelog](https://github.com/elastic/apm-agent-python/blob/master/CHANGELOG.asciidoc)
- [Commits](https://github.com/elastic/apm-agent-python/compare/v5.8.0...v5.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 05:20:24 +00:00
Jens L
4a774b5885 Merge pull request #123 from BeryJu/dependabot/pip/pylint-django-2.1.0
build(deps-dev): bump pylint-django from 2.0.15 to 2.1.0
2020-07-13 16:49:33 +02:00
Jens L
aa8fac3a06 Merge pull request #124 from BeryJu/dependabot/pip/django-prometheus-2.1.0.dev52
build(deps): bump django-prometheus from 2.1.0.dev46 to 2.1.0.dev52
2020-07-13 16:49:12 +02:00
Jens L
b8407f5bf6 Merge pull request #125 from BeryJu/dependabot/pip/sentry-sdk-0.16.1
build(deps): bump sentry-sdk from 0.16.0 to 0.16.1
2020-07-13 16:49:02 +02:00
Jens L
989c426211 Merge branch 'master' into dependabot/pip/pylint-django-2.1.0 2020-07-13 16:16:16 +02:00
Jens L
9a888cfcf1 Merge branch 'master' into dependabot/pip/django-prometheus-2.1.0.dev52 2020-07-13 16:16:08 +02:00
Jens L
72ec871729 Merge branch 'master' into dependabot/pip/sentry-sdk-0.16.1 2020-07-13 16:15:58 +02:00
Jens Langhammer
8d58842c9b e2e: decrease timeouts to fix failed tests 2020-07-13 08:54:56 +02:00
dependabot-preview[bot]
a90aa5e069 build(deps): bump sentry-sdk from 0.16.0 to 0.16.1
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGES.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/0.16.0...0.16.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 05:20:41 +00:00
dependabot-preview[bot]
639020a2e1 build(deps): bump django-prometheus from 2.1.0.dev46 to 2.1.0.dev52
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev46 to 2.1.0.dev52.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 05:18:58 +00:00
dependabot-preview[bot]
8e6f915ec6 build(deps-dev): bump pylint-django from 2.0.15 to 2.1.0
Bumps [pylint-django](https://github.com/PyCQA/pylint-django) from 2.0.15 to 2.1.0.
- [Release notes](https://github.com/PyCQA/pylint-django/releases)
- [Changelog](https://github.com/PyCQA/pylint-django/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/PyCQA/pylint-django/compare/v2.0.15...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 05:17:14 +00:00
Jens Langhammer
6631471566 root: update version in readme 2020-07-12 22:53:25 +02:00
Jens Langhammer
b452e751ea flows: add SESSION_KEY_APPLICATION_PRE
whenever a user tries to access an application without being authenticated to passbook, we now show notice which application they are going to continue to.
2020-07-12 22:47:46 +02:00
Jens Langhammer
a3baa100d4 sources/saml: remove unused import 2020-07-12 18:55:26 +02:00
Jens Langhammer
f7b9de1261 */saml: fix MetadataProcessor having generic namespace prefixes 2020-07-12 18:40:43 +02:00
Jens Langhammer
47ca566d06 sources/saml: fix MetadataProcessor not working, add unittests 2020-07-12 18:40:18 +02:00
Jens Langhammer
a943d060d2 core: add separate autosubmit form for use without flows 2020-07-12 18:24:36 +02:00
Jens Langhammer
1675dab314 providers/saml: fix encoding for POST bindings 2020-07-12 17:58:38 +02:00
Jens Langhammer
996aa367d3 core: fix autosubmit_form loading full template 2020-07-12 17:45:03 +02:00
Jens Langhammer
be6f342e58 providers/saml: fix RelayState being included when None given 2020-07-12 17:22:14 +02:00
Jens Langhammer
464b558a02 */saml: fix typo 2020-07-12 17:20:41 +02:00
Jens Langhammer
d1151091cd providers/saml: Generate NameID Value based on NameID Policy received 2020-07-12 17:06:35 +02:00
Jens Langhammer
f8e5383ba2 providers/saml: parse NameID Policy from AuthnRequest 2020-07-12 17:05:48 +02:00
Jens Langhammer
06f73512df lib/evaluator: add support for IP Address comparison 2020-07-12 16:36:49 +02:00
Jens Langhammer
0ff4545bab providers/saml: fix AuthnRequest Signature validation, add unittests 2020-07-12 16:17:53 +02:00
Jens Langhammer
ff6e270886 sources/saml: fix AuthnRequest Singing for redirect bindings 2020-07-12 16:17:35 +02:00
Jens Langhammer
8aa0b72b67 e2e: only save screenshots in CI 2020-07-12 16:17:04 +02:00
Jens Langhammer
91766a2162 sources/saml: automatically add RelayState to build_auth_n_detached 2020-07-12 01:46:46 +02:00
Jens Langhammer
a393097504 */saml: start implementing unittests, fix signing 2020-07-12 01:44:34 +02:00
Jens Langhammer
2056b86ce7 providers/saml: rewrite SAML AuthNRequest Parser and Response Processor 2020-07-11 14:06:42 +02:00
Jens Langhammer
1b0c013d8e providers/saml: remove processor_path field 2020-07-11 13:28:10 +02:00
Jens Langhammer
92a09be8c0 sources/saml: rewrite Processors and Views to directly build XML without templates 2020-07-11 01:02:55 +02:00
dependabot-preview[bot]
1e31cd03ed build(deps): bump lxml from 4.5.1 to 4.5.2 (#121)
Bumps [lxml](https://github.com/lxml/lxml) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.5.1...lxml-4.5.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Jens L <jens@beryju.org>
2020-07-10 23:31:13 +02:00
dependabot-preview[bot]
dc863a6e87 build(deps): bump boto3 from 1.14.19 to 1.14.20 (#122)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.19 to 1.14.20.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.19...1.14.20)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Jens L <jens@beryju.org>
2020-07-10 22:44:17 +02:00
Jens Langhammer
d74366f413 policies/hibp: update for flows, add unittests 2020-07-10 20:57:15 +02:00
Jens Langhammer
5bcf2aef8c policies/password: Add Password Policy tests, update password policy for flows 2020-07-10 20:53:08 +02:00
Jens Langhammer
8de3c4fbd6 sources/ldap: improve unittests 2020-07-10 20:21:51 +02:00
Jens Langhammer
c191b62245 ci: attempt to fix Coverage not being registered 2020-07-10 19:35:19 +02:00
Jens Langhammer
0babbde00e ci: fix test results not being merged correctly 2020-07-10 19:11:36 +02:00
Jens Langhammer
b8af312ab1 ci: fix artifacts being downloaded into wrong directory 2020-07-10 18:39:16 +02:00
Jens Langhammer
38cabfb325 ci: fix wrong coverage command being executed 2020-07-10 18:07:18 +02:00
Jens Langhammer
0a3528b5f4 ci: fix targetPath and artifact being swapped 2020-07-10 17:43:16 +02:00
Jens Langhammer
30a672758a ci: fix Stage names 2020-07-10 17:25:19 +02:00
Jens Langhammer
723a825085 ci: separate unittests and e2e into separate runs, combine afterwards 2020-07-10 17:12:37 +02:00
Jens Langhammer
40e794099a e2e: only initialise selenium after setting up container 2020-07-10 16:49:25 +02:00
Jens Langhammer
111b037512 e2e: use non-debug selenium docker image for CI 2020-07-10 15:37:10 +02:00
Jens Langhammer
52f66717d3 e2e: print screenshot filename after test 2020-07-10 15:28:01 +02:00
Jens Langhammer
7ac4242a38 e2e: add test for OAuth Enrollment -> OAuth Authentication 2020-07-10 00:14:48 +02:00
Jens Langhammer
4caa4be476 sources/oauth: fix UserOAuthSourceConnection not being assigned to user after enrollment
sources/oauth: separate handle_new_connection into handle_existing_user_link and handle_enroll
2020-07-10 00:07:59 +02:00
Jens Langhammer
c6d8bae147 e2e: generate dex config dynamically 2020-07-09 23:15:22 +02:00
Jens Langhammer
c70310730a sources/oauth: split up single large "core" views 2020-07-09 23:09:32 +02:00
Jens Langhammer
2d2b2d08f4 core: fix source slug not being unique 2020-07-09 23:05:46 +02:00
Jens Langhammer
8fe6a5b62d stages/prompt: fix checkbox not working, fix date and datetime not using HTML5 input types 2020-07-09 22:55:44 +02:00
Jens L
5e6221deb8 Merge pull request #120 from BeryJu/dependabot/pip/boto3-1.14.19
build(deps): bump boto3 from 1.14.18 to 1.14.19
2020-07-09 22:55:21 +02:00
Jens L
c3b493f7d4 Merge branch 'master' into dependabot/pip/boto3-1.14.19 2020-07-09 16:55:22 +02:00
Jens Langhammer
dbcb5b4f63 e2e: remove static oauth secret 2020-07-09 14:59:25 +02:00
dependabot-preview[bot]
f0640fcea9 build(deps): bump boto3 from 1.14.18 to 1.14.19
Bumps [boto3](https://github.com/boto/boto3) from 1.14.18 to 1.14.19.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.18...1.14.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-09 05:19:44 +00:00
Jens Langhammer
64c47a59f8 e2e: add tests for OAuth Source, update tests for new base templates 2020-07-09 00:53:18 +02:00
Jens Langhammer
3450b8f1fe docs: update screenshots 2020-07-09 00:26:18 +02:00
Jens Langhammer
9518cefdd7 flows: fix default-source-enrollment-if-username expression 2020-07-09 00:20:42 +02:00
Jens Langhammer
32d5c26577 core: fix base_full template missing messages 2020-07-09 00:18:45 +02:00
Jens Langhammer
ef2cdf27b3 stages/prompt: add static and separator elements 2020-07-09 00:00:15 +02:00
Jens Langhammer
e58ac7ae90 polices: add helper to remove None-value keys from dict for policies 2020-07-08 23:07:16 +02:00
Jens Langhammer
d786fa4b7c sources/oauth: rewrite to not directly create user, pre-seed data into flow 2020-07-08 20:39:20 +02:00
Jens Langhammer
0e3e73989d sources/saml: Add NameID Policy field, sent with AuthnRequest 2020-07-08 16:18:09 +02:00
Jens Langhammer
d831599608 core: make autosubmit_form generic template 2020-07-08 14:27:58 +02:00
Jens Langhammer
1e57926603 sources/saml: add POST_AUTO binding which auto redirects to IdP 2020-07-08 14:18:08 +02:00
Jens Langhammer
1524880eec core: add generic login/base_full template for static login views 2020-07-08 14:17:29 +02:00
Jens Langhammer
0bfb623f97 providers/saml: fix autosubmit_form using wrong template 2020-07-08 14:12:44 +02:00
Jens Langhammer
429627494c root: fix passbook.footer_links not being rendered 2020-07-08 13:18:33 +02:00
Jens Langhammer
9feea155fe root: fix /favicon being routed to application server 2020-07-08 13:18:08 +02:00
Jens L
2717e02d93 Merge pull request #119 from BeryJu/dependabot/pip/boto3-1.14.18
build(deps): bump boto3 from 1.14.17 to 1.14.18
2020-07-08 12:57:40 +02:00
dependabot-preview[bot]
18bd803b0d build(deps): bump boto3 from 1.14.17 to 1.14.18
Bumps [boto3](https://github.com/boto/boto3) from 1.14.17 to 1.14.18.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.17...1.14.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-08 05:16:20 +00:00
Jens Langhammer
c7f078ffcc new release: 0.9.0-pre7 2020-07-07 22:34:44 +02:00
Jens Langhammer
571cb3d65f sources/oauth: disable twitter source while its broken 2020-07-07 22:25:50 +02:00
Jens Langhammer
8c500c38b1 policies/reputation: only change score when credentials contain username 2020-07-07 22:25:37 +02:00
Jens Langhammer
5644e57e6a sources/oauth: directly call AuthorizedServiceBackend instead of authenticate() 2020-07-07 22:23:45 +02:00
Jens Langhammer
cfc181eed1 sources/oauth: fix wrong comparions
closes #118
2020-07-07 21:46:16 +02:00
Jens Langhammer
91bea38b8e lib: ignore APM errors 2020-07-07 21:45:36 +02:00
Jens Langhammer
d95c5aa739 root: allow changing of APM verify_server_cert setting 2020-07-07 19:59:32 +02:00
Jens Langhammer
0b250b897e new release: 0.9.0-pre6 2020-07-07 19:14:29 +02:00
Jens L
c6880a0f16 Merge pull request #117 from BeryJu/apm
Support for Elastic APM
2020-07-07 18:48:40 +02:00
Jens Langhammer
beb5ffcbdd ci: fix gatekeeper dockerfile path 2020-07-07 18:48:24 +02:00
Jens Langhammer
0715cac39b root: remove psutil as we have external monitoring for CPU 2020-07-07 18:24:24 +02:00
Jens Langhammer
41117d873d ci: fix gatekeeper building the wrong image 2020-07-07 18:23:15 +02:00
Jens Langhammer
231e448b1a lib/eval: fix import order 2020-07-07 18:05:38 +02:00
Jens Langhammer
b3b8cd807d root: expose APM settings in helm chart 2020-07-07 17:54:07 +02:00
Jens Langhammer
9021bbd5de root: implement APM support 2020-07-07 17:43:10 +02:00
Jens Langhammer
169475ab39 crypto: add colon seperator for fingerprint 2020-07-07 17:05:31 +02:00
Jens Langhammer
c00e01626e sources/ldap: adjust task schedule name 2020-07-07 17:04:07 +02:00
Jens Langhammer
05d4a9ef62 policies/reputation: rewrite to save score into cache and save into DB via worker 2020-07-07 17:03:57 +02:00
Jens Langhammer
17a2ac73e7 stages/user_write: add signals 2020-07-07 15:49:02 +02:00
Jens Langhammer
6bc6f947dd stages/invitation: move invite signals from core to app 2020-07-07 15:46:13 +02:00
Jens Langhammer
b048a1fb4f ci: notify sentry of new releases 2020-07-07 14:09:28 +02:00
Jens Langhammer
363940ee8d root: fix API requests erroring 2020-07-07 14:02:20 +02:00
Jens L
a64e53479c Merge pull request #115 from BeryJu/dependabot/pip/boto3-1.14.17
build(deps): bump boto3 from 1.14.16 to 1.14.17
2020-07-07 13:34:53 +02:00
Jens L
14fdbe7720 Merge pull request #116 from BeryJu/dependabot/pip/coverage-5.2
build(deps-dev): bump coverage from 5.1 to 5.2
2020-07-07 13:34:41 +02:00
Jens L
f56332c954 Merge branch 'master' into dependabot/pip/boto3-1.14.17 2020-07-07 13:14:07 +02:00
Jens L
21c53c748f Merge branch 'master' into dependabot/pip/coverage-5.2 2020-07-07 13:13:55 +02:00
Jens Langhammer
b12182c1d1 admin: improve overview layout 2020-07-07 13:13:15 +02:00
Jens Langhammer
d8f27f595a admin: use django cache for admin version (expiry) 2020-07-07 13:12:54 +02:00
dependabot-preview[bot]
b25dc2aaa3 build(deps-dev): bump coverage from 5.1 to 5.2
Bumps [coverage](https://github.com/nedbat/coveragepy) from 5.1 to 5.2.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/coverage-5.1...coverage-5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 05:24:51 +00:00
dependabot-preview[bot]
3ec3849e72 build(deps): bump boto3 from 1.14.16 to 1.14.17
Bumps [boto3](https://github.com/boto/boto3) from 1.14.16 to 1.14.17.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.16...1.14.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 05:23:18 +00:00
Jens Langhammer
2dc1b65718 ui: fix modal layout 2020-07-06 20:50:14 +02:00
Jens Langhammer
af22f507f4 sources/oauth: fix template for user settings 2020-07-06 17:48:53 +02:00
Jens Langhammer
9958019bf3 core: fix user's sidebar links for sources 2020-07-06 17:46:41 +02:00
Jens Langhammer
02d65972cb admin: fix submit button on update form 2020-07-06 17:46:30 +02:00
Jens Langhammer
24ad893350 admin: fix token_list template 2020-07-06 17:43:20 +02:00
Jens Langhammer
9c5792b1e1 docs: migrate TOTP and Static OTP devices 2020-07-06 17:42:46 +02:00
Jens Langhammer
094d191bff new release: 0.9.0-pre5 2020-07-06 12:52:34 +02:00
Jens L
49fb9f688b Merge pull request #114 from BeryJu/dependabot/pip/sentry-sdk-0.16.0
build(deps): bump sentry-sdk from 0.15.1 to 0.16.0
2020-07-06 11:51:21 +02:00
dependabot-preview[bot]
7d161e5aa1 build(deps): bump sentry-sdk from 0.15.1 to 0.16.0
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 0.15.1 to 0.16.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGES.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/0.15.1...0.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 05:18:21 +00:00
Jens Langhammer
78e5d471e3 core: fix type annotation for user settings 2020-07-05 23:49:33 +02:00
Jens Langhammer
2e2c9f5287 api: add token authentication 2020-07-05 23:37:58 +02:00
Jens Langhammer
d5a3e09a98 core: add token Intents 2020-07-05 23:14:57 +02:00
Jens Langhammer
2402cfe29d providers/* use name for __str__ 2020-07-05 23:00:40 +02:00
Jens Langhammer
26613b6ea9 core: fix application overview 2020-07-05 22:58:52 +02:00
Jens Langhammer
e5165abf04 stages/user_login: Allow changing of session duration 2020-07-04 15:20:45 +02:00
Jens Langhammer
b26882a450 flows: FlowStageBinding group Stage by type 2020-07-04 15:02:21 +02:00
Jens Langhammer
94281bee88 admin: improve policy binding listing by showing Target object type 2020-07-04 00:18:19 +02:00
Jens Langhammer
16b966c16e policies: Show grouped Dropdown for Target 2020-07-04 00:16:16 +02:00
Jens Langhammer
d3b0992456 flows: FlowStageBinding: rename .flow to .target to fix select_subclasses() 2020-07-04 00:14:21 +02:00
Jens L
dd74b73b4f Merge pull request #40 from BeryJu/azure-pipelines
Set up CI with Azure Pipelines
2020-07-03 10:47:29 +02:00
Jens Langhammer
0bdfccc1f3 ci: final cleanup 2020-07-03 10:17:24 +02:00
Jens Langhammer
ceb0793bc9 ci: publish unittest results and coverage 2020-07-03 09:54:25 +02:00
Jens Langhammer
abea85b635 ci: fix incorrect node version for pyright 2020-07-03 09:39:23 +02:00
Jens Langhammer
01c83f6f4a Merge branch 'master' into azure-pipelines
# Conflicts:
#	.github/workflows/ci.yml
#	README.md
2020-07-03 09:33:04 +02:00
Jens L
9167c9c3ba Merge pull request #112 from BeryJu/dependabot/pip/django-prometheus-2.1.0.dev46
build(deps): bump django-prometheus from 2.1.0.dev42 to 2.1.0.dev46
2020-07-03 09:09:16 +02:00
dependabot-preview[bot]
04add2e52d build(deps): bump django-prometheus from 2.1.0.dev42 to 2.1.0.dev46
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev42 to 2.1.0.dev46.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 06:53:47 +00:00
Jens L
1e9241d45b Merge pull request #111 from BeryJu/dependabot/pip/boto3-1.14.16
build(deps): bump boto3 from 1.14.15 to 1.14.16
2020-07-03 08:49:41 +02:00
dependabot-preview[bot]
22ee198a31 build(deps): bump boto3 from 1.14.15 to 1.14.16
Bumps [boto3](https://github.com/boto/boto3) from 1.14.15 to 1.14.16.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.15...1.14.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 05:20:53 +00:00
Jens Langhammer
1d9c92d548 admin: add generic form tests 2020-07-02 22:29:30 +02:00
Jens Langhammer
b30b58924f e2e: Add denied tests for oauth and oidc provider 2020-07-02 21:55:02 +02:00
Jens Langhammer
bead19c64c flows: cleanup denied view, use everywhere 2020-07-02 13:48:42 +02:00
Jens Langhammer
76e2ba4764 e2e/provider/saml: add negative case 2020-07-02 13:48:21 +02:00
Jens L
8d095d7436 Merge pull request #109 from BeryJu/dependabot/pip/django-prometheus-2.1.0.dev42
build(deps): bump django-prometheus from 2.1.0.dev40 to 2.1.0.dev42
2020-07-02 11:59:11 +02:00
dependabot-preview[bot]
d3a7fd5818 build(deps): bump django-prometheus from 2.1.0.dev40 to 2.1.0.dev42
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev40 to 2.1.0.dev42.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 09:56:06 +00:00
Jens L
247a8dbc8f Merge pull request #110 from BeryJu/dependabot/pip/boto3-1.14.15
build(deps): bump boto3 from 1.14.14 to 1.14.15
2020-07-02 11:52:16 +02:00
dependabot-preview[bot]
9241adfc68 build(deps): bump boto3 from 1.14.14 to 1.14.15
Bumps [boto3](https://github.com/boto/boto3) from 1.14.14 to 1.14.15.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.14...1.14.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 05:21:07 +00:00
Jens Langhammer
ae83ee6d31 providers/saml: fix access result not being checked properly 2020-07-02 00:23:52 +02:00
Jens Langhammer
4701374021 admin: remove duplicate code into new base classes 2020-07-02 00:13:33 +02:00
Jens Langhammer
bd40585247 providers/samlv2: remove SAMLv2 from master 2020-07-01 23:21:58 +02:00
Jens Langhammer
cc0b8164b0 providers/*: use PolicyAccessMixin to simplify 2020-07-01 23:18:10 +02:00
Jens Langhammer
310b31a8b7 core: fix linting 2020-07-01 22:35:38 +02:00
Jens Langhammer
13900bc603 lib: cleanup unused widgets 2020-07-01 22:27:58 +02:00
Jens Langhammer
6634cc2edf root: add group_membership policy 2020-07-01 21:18:05 +02:00
Jens Langhammer
3478a2cf6d admin: add filter to hide classes with __debug_only__ when Debug is disabled 2020-07-01 18:53:13 +02:00
Jens Langhammer
3b70d12a5f *: rephrase strings 2020-07-01 18:40:52 +02:00
Jens Langhammer
219acf76d5 core: fix forms for radio buttons 2020-07-01 12:47:27 +02:00
Jens Langhammer
ec6f467fa2 ui: Make Checkbox label click trigger checkbox toggle 2020-07-01 12:37:13 +02:00
Jens Langhammer
0e6561987e admin: fix user and group create not triggering sidebar 2020-07-01 12:36:44 +02:00
Jens Langhammer
62c20b6e67 admin: add list of all tokens 2020-07-01 12:27:30 +02:00
Jens Langhammer
13084562c5 admin: fix Password Recovery function not working 2020-07-01 12:10:12 +02:00
Jens Langhammer
02c1c434a2 core: update styling of impersonate banner 2020-07-01 12:01:58 +02:00
Jens Langhammer
5f04a75878 new release: 0.9.0-pre4 2020-07-01 09:50:21 +02:00
Jens L
3556c76674 Merge pull request #107 from BeryJu/dependabot/pip/django-3.0.8
build(deps): bump django from 3.0.7 to 3.0.8
2020-07-01 09:21:15 +02:00
dependabot-preview[bot]
c7d638de2f build(deps): bump django from 3.0.7 to 3.0.8
Bumps [django](https://github.com/django/django) from 3.0.7 to 3.0.8.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.7...3.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-01 07:07:06 +00:00
Jens L
143733499f Merge pull request #108 from BeryJu/dependabot/pip/docker-4.2.2
build(deps-dev): bump docker from 4.2.1 to 4.2.2
2020-07-01 09:03:38 +02:00
dependabot-preview[bot]
0d6a0ffe14 build(deps-dev): bump docker from 4.2.1 to 4.2.2
Bumps [docker](https://github.com/docker/docker-py) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/docker/docker-py/releases)
- [Commits](https://github.com/docker/docker-py/compare/4.2.1...4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-01 06:41:52 +00:00
Jens L
6d4c7312d8 Merge pull request #106 from BeryJu/dependabot/pip/boto3-1.14.14
build(deps): bump boto3 from 1.14.13 to 1.14.14
2020-07-01 08:37:37 +02:00
dependabot-preview[bot]
2cb6a179e8 build(deps): bump boto3 from 1.14.13 to 1.14.14
Bumps [boto3](https://github.com/boto/boto3) from 1.14.13 to 1.14.14.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.13...1.14.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-01 05:21:37 +00:00
Jens L
7de2ad77b5 Merge pull request #101 from BeryJu/otp-rework
OTP Stage Rework
2020-06-30 22:03:28 +02:00
Jens Langhammer
89c33060d4 core: fix user settings sidebar buttons not being enabled 2020-06-30 21:26:43 +02:00
Jens Langhammer
b61f595562 core: ensure user settings are sorted by name 2020-06-30 21:24:58 +02:00
Jens Langhammer
ce2230f774 stages/otp_*: update user setting design 2020-06-30 21:23:37 +02:00
Jens Langhammer
d18a78d04d Merge branch 'master' into otp-rework 2020-06-30 20:44:39 +02:00
Jens Langhammer
c59c6aa728 stages/*: minor UI updates, cleanup 2020-06-30 19:06:41 +02:00
Jens Langhammer
729910c383 stages/*: minor string updates 2020-06-30 18:52:18 +02:00
Jens Langhammer
37fe637422 stages/password: make template inherit form_with_user 2020-06-30 18:50:24 +02:00
Jens Langhammer
3114d064ed e2e: improve error message when using wait_for_url 2020-06-30 16:36:30 +02:00
Jens Langhammer
2ca5e1eedb stages/otp_*: fix linting 2020-06-30 16:12:19 +02:00
Jens Langhammer
d2bf579ff6 stages/otp_static: start implementing static stage 2020-06-30 15:44:34 +02:00
Jens Langhammer
3716bda76e stages/otp_time: fix linting 2020-06-30 13:44:09 +02:00
Jens Langhammer
a76eb4d30f stages/otp_time: Cleanup, use django_otp's URL generator 2020-06-30 12:42:39 +02:00
Jens Langhammer
7c191b0984 stages/otp_validate: Implement OTP Validation stage 2020-06-30 12:42:12 +02:00
Jens Langhammer
9613fcde89 Squashed commit of the following:
commit 885a2ed057
Author: Jens Langhammer <jens.langhammer@beryju.org>
Date:   Tue Jun 30 12:17:23 2020 +0200

    flows: fix linting error
2020-06-30 12:18:01 +02:00
Jens Langhammer
885a2ed057 flows: fix linting error 2020-06-30 12:17:23 +02:00
Jens Langhammer
b270fb0742 stages/otp_time: implement TOTP Setup stage 2020-06-30 12:14:40 +02:00
Jens Langhammer
285a69d91f Merge branch 'master' into otp-rework 2020-06-30 11:23:09 +02:00
Jens Langhammer
de3b753a26 flows: show error message in flow when stage raises 2020-06-30 11:18:39 +02:00
Jens Langhammer
34be1dd9f4 admin: add execute button to flow which executes flow without cache 2020-06-30 11:18:20 +02:00
Jens Langhammer
a4c0fb9e75 otp_time: fix linting 2020-06-30 10:42:27 +02:00
Jens Langhammer
f040223646 audit: move events list from admin to audit app 2020-06-30 10:23:54 +02:00
Jens Langhammer
bf297b8593 admin: add info about latest version 2020-06-30 10:23:39 +02:00
Jens L
43eea9e99c Merge pull request #105 from BeryJu/dependabot/pip/boto3-1.14.13
build(deps): bump boto3 from 1.14.12 to 1.14.13
2020-06-30 09:42:08 +02:00
dependabot-preview[bot]
8e38bc87bc build(deps): bump boto3 from 1.14.12 to 1.14.13
Bumps [boto3](https://github.com/boto/boto3) from 1.14.12 to 1.14.13.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.12...1.14.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 05:16:31 +00:00
Jens L
50a57fb3dd Merge pull request #104 from BeryJu/flows-cancel
flows: add CancelView to cancel current flow execution
2020-06-30 01:27:12 +02:00
Jens L
38b8bc182f Merge branch 'master' into flows-cancel 2020-06-30 00:47:18 +02:00
Jens Langhammer
9743ad33d6 ci: add snyk 2020-06-30 00:45:04 +02:00
Jens L
b746ce97ba Merge branch 'master' into flows-cancel 2020-06-30 00:20:33 +02:00
Jens Langhammer
dbee714dac api: fix consent stage missing from API 2020-06-30 00:19:06 +02:00
Jens Langhammer
d33f632203 flows: add CancelView to cancel current flow execution 2020-06-30 00:11:01 +02:00
Jens Langhammer
812aa4ced5 Merge branch 'master' into otp-rework 2020-06-29 23:32:36 +02:00
Jens Langhammer
63466e3384 e2e: wait for grafana URL 2020-06-29 23:04:05 +02:00
Jens Langhammer
920858ff72 Merge branch 'master' into otp-rework
# Conflicts:
#	passbook/flows/models.py
#	passbook/stages/otp/models.py
#	swagger.yaml
2020-06-29 22:54:18 +02:00
Jens L
56f599e4aa Merge pull request #103 from BeryJu/stage-password-change
stages/password: Password Change
2020-06-29 22:29:20 +02:00
Jens Langhammer
05183ed937 e2e: saml provider: wait for URL 2020-06-29 22:11:50 +02:00
Jens Langhammer
8d31eef47d stages/password: assign default password change flow to password stage
add e2e tests for password change flow
2020-06-29 21:47:20 +02:00
Jens Langhammer
96a6ac85df audit: add cleanse_dict function to ensure no passwords end in logs 2020-06-29 19:13:07 +02:00
dependabot-preview[bot]
5a60341a6e build(deps): bump boto3 from 1.14.11 to 1.14.12
Bumps [boto3](https://github.com/boto/boto3) from 1.14.11 to 1.14.12.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.11...1.14.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-29 16:26:53 +02:00
Jens Langhammer
21ba969072 stages/password: create default password change flow 2020-06-29 16:26:21 +02:00
Jens Langhammer
d6a8d8292d core: UIUserSettings: remove icon, rename view_name to URL for complete URL 2020-06-29 16:20:33 +02:00
Jens Langhammer
693a92ada5 audit: fix sanitize_dict updating source dict 2020-06-29 16:19:56 +02:00
Jens Langhammer
ec823aebed flows: update migrations to use update_or_create 2020-06-29 16:19:39 +02:00
Jens Langhammer
b8654c06bf flows: remove generic "password change" designation and add setup_stage 2020-06-29 11:12:51 +02:00
Jens Langhammer
9d03c4c7d2 flows: Stage ui_user_settings -> staticmethod with context as argument 2020-06-28 10:31:26 +02:00
Jens Langhammer
8c36ab89e8 stages/otp: start separation into 3 stages, otp_time, otp_static and otp_validate 2020-06-28 10:30:35 +02:00
dependabot-preview[bot]
e75e71a5ce build(deps): bump swagger-spec-validator from 2.7.2 to 2.7.3 (#100)
Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 2.7.2 to 2.7.3.
- [Release notes](https://github.com/Yelp/swagger_spec_validator/releases)
- [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/Yelp/swagger_spec_validator/compare/v2.7.2...v2.7.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-27 10:26:08 +02:00
dependabot-preview[bot]
bf008e368e build(deps): bump boto3 from 1.14.10 to 1.14.11 (#99)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.10 to 1.14.11.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.10...1.14.11)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-27 10:25:47 +02:00
Jens Langhammer
3c1d02bfc4 e2e: bump selenium waits even more 2020-06-26 23:38:00 +02:00
Jens Langhammer
c1b2093cf7 e2e: add utility to wait for URL 2020-06-26 16:21:59 +02:00
Jens Langhammer
cc7e4ad0e2 e2e: show browser logs to debug CI issues 2020-06-26 15:06:46 +02:00
Jens Langhammer
c07bd6e733 ci: up node version for pyright 2020-06-26 10:31:06 +02:00
Jens Langhammer
768464dc6a new release: 0.9.0-pre3 2020-06-25 20:39:50 +02:00
Jens L
a2ed53c312 Merge pull request #42 from BeryJu/e2e
e2e tests
2020-06-25 18:35:59 +02:00
Jens Langhammer
5a11206fe9 Merge branch 'master' into e2e 2020-06-25 17:58:51 +02:00
Jens Langhammer
9675fbb07d e2e: add tests for enrollment with email 2020-06-25 17:45:06 +02:00
Jens Langhammer
57a7bed99d sources/oauth: fix facebook provider 2020-06-25 10:24:53 +02:00
dependabot-preview[bot]
2dfec43750 build(deps): bump boto3 from 1.14.9 to 1.14.10
Bumps [boto3](https://github.com/boto/boto3) from 1.14.9 to 1.14.10.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.9...1.14.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-25 09:54:17 +02:00
dependabot-preview[bot]
ab9f6531c2 build(deps): bump celery from 4.4.5 to 4.4.6
Bumps [celery](https://github.com/celery/celery) from 4.4.5 to 4.4.6.
- [Release notes](https://github.com/celery/celery/releases)
- [Changelog](https://github.com/celery/celery/blob/master/Changelog.rst)
- [Commits](https://github.com/celery/celery/compare/v4.4.5...v4.4.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-25 09:53:49 +02:00
dependabot-preview[bot]
b8b5069df1 build(deps): bump @patternfly/patternfly in /passbook/static/static
Bumps [@patternfly/patternfly](https://github.com/patternfly/patternfly) from 4.10.31 to 4.16.7.
- [Release notes](https://github.com/patternfly/patternfly/releases)
- [Changelog](https://github.com/patternfly/patternfly/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/patternfly/patternfly/compare/prerelease-v4.10.31...prerelease-v4.16.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-25 09:21:20 +02:00
dependabot-preview[bot]
7045305aa8 build(deps): bump pycryptodome from 3.9.7 to 3.9.8
Bumps [pycryptodome](https://github.com/Legrandin/pycryptodome) from 3.9.7 to 3.9.8.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.9.7...v3.9.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-25 09:20:44 +02:00
dependabot-preview[bot]
49c706fde8 build(deps): bump kombu from 4.6.10 to 4.6.11
Bumps [kombu](https://kombu.readthedocs.io) from 4.6.10 to 4.6.11.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-25 09:20:22 +02:00
Jens Langhammer
9eaceb9ec6 e2e: add tests for SAML source 2020-06-24 23:24:45 +02:00
Jens Langhammer
05778d8065 sources/saml: minor formatting fixes 2020-06-24 22:46:20 +02:00
Jens Langhammer
831e228f80 api: fix SAMLSource missing from API 2020-06-24 22:28:40 +02:00
Jens Langhammer
31e0d74495 sources/saml: correctly cleanup transient users, update forms 2020-06-24 22:27:14 +02:00
Jens Langhammer
05999cb8c7 sources/saml: start implementing transient NameID format 2020-06-24 21:50:30 +02:00
dependabot-preview[bot]
6cb4773916 build(deps): bump django-otp from 0.9.2 to 0.9.3 (#91)
Bumps [django-otp](https://github.com/django-otp/django-otp) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/django-otp/django-otp/releases)
- [Changelog](https://github.com/django-otp/django-otp/blob/master/CHANGES.rst)
- [Commits](https://github.com/django-otp/django-otp/compare/v0.9.2...v0.9.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-24 14:30:20 +02:00
dependabot-preview[bot]
ec9b0600e4 build(deps): bump django-prometheus from 2.1.0.dev38 to 2.1.0.dev40 (#92)
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev38 to 2.1.0.dev40.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-24 13:24:51 +02:00
Jens Langhammer
c0d8aa2303 sources/saml: fix SAMLRequest not being encoded properly for Redirect bindings 2020-06-24 13:12:34 +02:00
dependabot-preview[bot]
599fdf193e build(deps): bump boto3 from 1.14.8 to 1.14.9 (#93)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.8 to 1.14.9.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.8...1.14.9)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-24 11:27:36 +02:00
Jens Langhammer
db6cb5ad51 core: make generic error template work with shell executor 2020-06-23 21:49:43 +02:00
Jens Langhammer
52f138d402 sources/saml: improve error handing of invalid signatures 2020-06-23 21:49:27 +02:00
dependabot-preview[bot]
bc37727758 build(deps): bump boto3 from 1.14.7 to 1.14.8 (#90)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.7...1.14.8)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-23 10:09:51 +02:00
dependabot-preview[bot]
547a728130 build(deps): bump django-prometheus from 2.1.0.dev36 to 2.1.0.dev38 (#88)
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev36 to 2.1.0.dev38.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-22 10:56:08 +02:00
dependabot-preview[bot]
178c2b6927 build(deps): bump boto3 from 1.14.6 to 1.14.7 (#89)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.6 to 1.14.7.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.6...1.14.7)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-22 10:55:38 +02:00
dependabot-preview[bot]
59b8b1e92a build(deps): bump codemirror in /passbook/static/static (#86)
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.54.0 to 5.55.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.54.0...5.55.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-22 10:55:16 +02:00
dependabot-preview[bot]
0210cdadfb build(deps): bump signxml from 2.7.3 to 2.8.0 (#87)
Bumps [signxml](https://github.com/kislyuk/signxml) from 2.7.3 to 2.8.0.
- [Release notes](https://github.com/kislyuk/signxml/releases)
- [Changelog](https://github.com/XML-Security/signxml/blob/master/Changes.rst)
- [Commits](https://github.com/kislyuk/signxml/compare/v2.7.3...v2.8.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-22 10:54:37 +02:00
Jens Langhammer
491e507d49 stages/email: check saved get params for token 2020-06-21 20:46:48 +02:00
Jens Langhammer
de1be2df88 flows: save entire GET params from shell executor 2020-06-21 20:46:38 +02:00
Jens Langhammer
39f51ec33d stages/email: fix email account confirmation email template 2020-06-21 20:13:59 +02:00
Jens Langhammer
f69e20886b e2e: use class name and timestamp for screenshots 2020-06-21 19:22:30 +02:00
Jens Langhammer
fd0f0c65e9 e2e: add more failsafe 2020-06-21 19:03:13 +02:00
Jens Langhammer
ed4daa64fe e2e: save screenshots with timestamp instead of class name 2020-06-21 18:44:08 +02:00
Jens Langhammer
887163c45c e2e: add more failsafe 2020-06-21 18:36:43 +02:00
Jens Langhammer
1b3c0adf75 e2e: cleanup, always take screenshots on teardown 2020-06-21 15:09:01 +02:00
Jens Langhammer
0838f518d4 e2e: save screenshot on failure, upload to github actions 2020-06-21 14:43:48 +02:00
Jens Langhammer
5c49cda884 e2e: add more safety checks 2020-06-21 13:40:53 +02:00
Jens Langhammer
6643cce841 ci: install node and run yarn for e2e tests 2020-06-21 13:18:06 +02:00
Jens Langhammer
3eb2cda37d e2e: add wait for codemirror 2020-06-21 12:59:18 +02:00
Jens Langhammer
6fdaac9a7d e2e: rewrite enroll test to use admin interface for setup 2020-06-21 12:42:24 +02:00
Jens Langhammer
6122dcacc7 flows: fix flow cache not being cleared correctly when stages are saved 2020-06-21 12:40:01 +02:00
Jens Langhammer
246d00bdde e2e: fix lint error 2020-06-21 00:26:29 +02:00
Jens Langhammer
7e47b64b05 e2e: SeleniumTestCase: add url() to reverse into full URL 2020-06-20 23:56:35 +02:00
Jens Langhammer
4285175bba e2e: add tests for oauth and saml provider 2020-06-20 23:53:05 +02:00
Jens Langhammer
e4a9a84646 e2e: cleanup, use USER function instead of typing static strings 2020-06-20 23:52:53 +02:00
Jens Langhammer
4d81172a48 providers/oauth: add support for consent stage, cleanup 2020-06-20 23:30:53 +02:00
Jens Langhammer
c97b946a00 providers/saml: make SAML provider compatible with consent 2020-06-20 22:30:45 +02:00
Jens Langhammer
3753275453 providers/saml: make metadata accessible without authentication 2020-06-20 21:51:52 +02:00
Jens Langhammer
e4cb9b7ff9 providers/saml: fix provider has no attribute sp_binding 2020-06-20 21:49:48 +02:00
Jens Langhammer
a0f05caf8e providers/saml: move templates into correct folder 2020-06-20 21:49:16 +02:00
Jens Langhammer
42e9ce4f72 providers/*: fix plan stages not being injected properly 2020-06-20 19:40:25 +02:00
Jens Langhammer
331faa53bc providers/saml: fix metadata template using wrong templates 2020-06-20 19:35:48 +02:00
Jens Langhammer
17424ccc3b e2e: use reverse instead of static URLs 2020-06-20 17:21:16 +02:00
Jens Langhammer
68efcc7bf2 e2e: add custom testcase class to simplify code 2020-06-20 17:06:00 +02:00
Jens Langhammer
7b7305607c root: enable debug logging when testing 2020-06-20 15:48:54 +02:00
Jens Langhammer
f1e6d91289 e2e: fix linting error 2020-06-19 22:37:48 +02:00
Jens Langhammer
0310d46314 e2e: improve race-condition 2020-06-19 22:27:44 +02:00
Jens Langhammer
14fd137f89 root: improve test detection 2020-06-19 22:27:20 +02:00
Jens Langhammer
e91a8f88a0 ci: run full coverage including e2e 2020-06-19 20:57:42 +02:00
Jens Langhammer
af8cdb34ee *: fix not all migrations using db_alias 2020-06-19 20:43:27 +02:00
Jens Langhammer
03b1a67b44 flows: change wording of consent on flows 2020-06-19 20:33:41 +02:00
Jens Langhammer
12525051b6 e2e: add test for providers/oidc with consent 2020-06-19 20:26:04 +02:00
Jens Langhammer
01f004cec6 root: move all e2e dependencies into pipfile 2020-06-19 20:25:45 +02:00
Jens Langhammer
3a40e50fa0 providers/oidc: add template for consent 2020-06-19 20:19:31 +02:00
Jens Langhammer
fa5c2bd85c stages/consent: add FlowPlan context variable for template name 2020-06-19 20:19:18 +02:00
Jens Langhammer
b83aa44c4f ci: run full coverage with e2e in one step so we get full coverage percentage 2020-06-19 19:45:46 +02:00
Jens Langhammer
73e7158178 e2e: add OIDC Provider test against grafana, more formatting, minor bug fixes 2020-06-19 19:45:27 +02:00
Jens Langhammer
8c6a4a4968 e2e: test against standalone chrome instance, start implementing oidc provider test 2020-06-19 18:19:20 +02:00
dependabot-preview[bot]
d12462fe0d build(deps): bump django-prometheus from 2.1.0.dev32 to 2.1.0.dev36 (#81)
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev32 to 2.1.0.dev36.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 15:21:29 +02:00
Jens Langhammer
c83216ece0 Merge branch 'master' into e2e
# Conflicts:
#	Pipfile.lock
#	docs/installation/docker-compose.md
2020-06-19 09:00:46 +02:00
dependabot-preview[bot]
133486f07f build(deps): bump boto3 from 1.14.5 to 1.14.6 (#83)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.5 to 1.14.6.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.5...1.14.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 08:53:47 +02:00
dependabot-preview[bot]
b0fec4f3e2 build(deps): bump @fortawesome/fontawesome-free (#80)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.13.0...5.13.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-06-19 08:53:29 +02:00
dependabot-preview[bot]
739a99f16e build(deps): bump django-otp from 0.9.1 to 0.9.2 (#82)
Bumps [django-otp](https://github.com/django-otp/django-otp) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/django-otp/django-otp/releases)
- [Changelog](https://github.com/django-otp/django-otp/blob/master/CHANGES.rst)
- [Commits](https://github.com/django-otp/django-otp/compare/v0.9.1...v0.9.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 08:53:12 +02:00
dependabot-preview[bot]
f54a1b627c build(deps): bump sentry-sdk from 0.15.0 to 0.15.1 (#85)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 0.15.0 to 0.15.1.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGES.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/0.15.0...0.15.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-06-19 08:52:57 +02:00
dependabot-preview[bot]
242d8c2b91 build(deps): bump pyuwsgi from 2.0.18.post0 to 2.0.19.1 (#84)
Bumps [pyuwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.18.post0 to 2.0.19.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-06-19 08:52:38 +02:00
Jens L
77065794da docs: clarify post-installation login 2020-06-18 23:26:15 +02:00
Jens Langhammer
dab53cfd03 flows/executor: call plan.next before pop so we can save plan
ReevaluateMarker: use PolicyEngine without cache
2020-06-18 22:54:09 +02:00
Jens L
6a4086c490 flows: introduce FlowPlan markers, which indicate when a stage needs … (#79)
* flows: introduce FlowPlan markers, which indicate when a stage needs re-evaluation

Implement re_evaluate_policies
add unittests for several different scenarios
closes #78

* flows: move markers to separate files, cleanup formatting

* flows: fix self.next is not callable
2020-06-18 22:43:51 +02:00
Jens Langhammer
5b8bdac84b Merge branch 'pr/77'
# Conflicts:
#	docs/flow/flows.md
#	docs/installation/docker-compose.md
#	docs/providers.md
2020-06-18 22:10:03 +02:00
tigattack
c71b150025 docs(upgrading-from-0.8.x.md): formatting 2020-06-18 20:19:58 +01:00
tigattack
647d56e90c docs(index.md): capitalisation & formatting 2020-06-18 20:15:15 +01:00
tigattack
e85236959b docs(index.md): capitalisation & punctuation 2020-06-18 19:57:58 +01:00
tigattack
afe3259e96 docs(index.md): capitalisation & punctuation 2020-06-18 19:55:55 +01:00
tigattack
4be2c66cdf docs(index.md): capitalisation & punctuation 2020-06-18 19:54:39 +01:00
tigattack
dc8c1ad297 docs(index.md): capitalisation 2020-06-18 19:53:02 +01:00
tigattack
9dc3b1dca0 docs(index.md): punctuation 2020-06-18 19:44:25 +01:00
tigattack
cbfb509ca9 docs(expression.md): clarity & punctuation 2020-06-18 19:34:26 +01:00
tigattack
047361600d docs(terminology.md): clarity & capitalisation 2020-06-18 19:27:20 +01:00
tigattack
a5b8c91c04 docs(expression.md): clarity 2020-06-18 19:06:30 +01:00
tigattack
4d317a21ce docs(index.md): capitalisation and clarity 2020-06-18 19:02:58 +01:00
tigattack
e07b65401e docs(user-object.md): punctuation & capitalisation 2020-06-18 18:59:03 +01:00
tigattack
71df9ea74d docs(index.md): punctuation & capitalisation 2020-06-18 18:57:25 +01:00
tigattack
1cbaf865d8 docs(providers.md): grammar and clarity 2020-06-18 18:55:01 +01:00
tigattack
cf9023269e docs(sources.md): grammar and clarity 2020-06-18 18:47:45 +01:00
Jens L
5f9e8ac89b root: update funding 2020-06-18 19:41:19 +02:00
Jens Langhammer
bdf0e74af3 docs: add supported scopes of oauth provider 2020-06-18 19:39:58 +02:00
tigattack
6dedb17029 docs(validation.md): grammar and typo fix 2020-06-18 18:35:59 +01:00
Jens Langhammer
5e8a1e3c0d *: make email naming consistent 2020-06-18 19:35:59 +02:00
tigattack
703e67a060 docs(prompt.md): grammar and clarity 2020-06-18 18:34:40 +01:00
tigattack
de00f9f41a docs(password.md): clarity and punctuation 2020-06-18 18:28:56 +01:00
tigattack
a05f841bed docs(invitation.md): new words 2020-06-18 18:19:24 +01:00
tigattack
c23646e6f3 docs(identification.md): punctuation 2020-06-18 18:16:28 +01:00
tigattack
f0600b5482 docs(email.md): grammar and clarity 2020-06-18 18:14:56 +01:00
Jens Langhammer
afc8baff5f flows/shell: check for elements with autofocus attribute and call .focus();
closes #76
2020-06-18 19:09:12 +02:00
tigattack
8a0b3bd299 docs(dummy.md): punctuation and grammar 2020-06-18 18:07:11 +01:00
Jens Langhammer
3713d111a4 core: fix integrity error for default user
closes #75
2020-06-18 19:04:13 +02:00
tigattack
111459dc25 docs(captcha.md): grammar and clarity 2020-06-18 18:02:58 +01:00
tigattack
cdad8bb0c3 docs(flows.md): grammar and clarity 2020-06-18 18:00:05 +01:00
tigattack
96c41f399e docs(kubernetes.md): grammar 2020-06-18 17:37:52 +01:00
tigattack
c4d7d0213f docs(docker-compose.md): grammar and clarity
Improved grammar and clarified some points.
2020-06-18 16:59:01 +01:00
dependabot-preview[bot]
2a5ee9b185 build(deps): bump swagger-spec-validator from 2.7.1 to 2.7.2 (#70)
Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 2.7.1 to 2.7.2.
- [Release notes](https://github.com/Yelp/swagger_spec_validator/releases)
- [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/Yelp/swagger_spec_validator/compare/v2.7.1...v2.7.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-18 15:38:29 +02:00
dependabot-preview[bot]
9aa3b16c92 build(deps): bump boto3 from 1.14.3 to 1.14.5 (#72)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.3 to 1.14.5.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.3...1.14.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-18 15:28:11 +02:00
dependabot-preview[bot]
4c3de09f6a build(deps): bump django-prometheus from 2.1.0.dev30 to 2.1.0.dev32 (#73)
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev30 to 2.1.0.dev32.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-18 15:27:39 +02:00
dependabot-preview[bot]
f4650ead40 build(deps): bump sentry-sdk from 0.14.4 to 0.15.0 (#74)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 0.14.4 to 0.15.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGES.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/0.14.4...0.15.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-18 15:26:49 +02:00
Jens Langhammer
1d59af7491 root: fix docker-compose not correctly redirecting to https 2020-06-16 21:34:48 +02:00
dependabot-preview[bot]
8605e62503 build(deps): bump boto3 from 1.14.2 to 1.14.3 (#69)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.2 to 1.14.3.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.2...1.14.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-16 10:21:36 +02:00
Jens Langhammer
3f779fe766 ci: use gh- prefix for auto-build docker images for easier cleanup 2020-06-15 19:27:44 +02:00
Jens Langhammer
1d3460b670 new release: 0.9.0-pre2 2020-06-15 19:08:17 +02:00
Jens Langhammer
feba3e2430 stages/prompt: Add username type field
add autocomplete attributes for username and password
2020-06-15 19:05:18 +02:00
Jens Langhammer
b49d39a685 stages/identification: improve support for password managers 2020-06-15 18:38:09 +02:00
Jens Langhammer
34c1b3b68b stages/password: Improve support for password managers 2020-06-15 18:37:59 +02:00
Jens Langhammer
e3d6ca6ab4 root: revert to non-prometheus db backend 2020-06-15 12:12:32 +02:00
Jens Langhammer
6f0e292c43 root: add lgtm 2020-06-15 11:56:20 +02:00
Jens Langhammer
9df1e7900d stages/email: add noopener noreferrer 2020-06-15 11:56:14 +02:00
dependabot-preview[bot]
9920d121e5 build(deps): bump django-prometheus from 2.1.0.dev14 to 2.1.0.dev30 (#67)
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0.dev14 to 2.1.0.dev30.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-15 11:47:03 +02:00
dependabot-preview[bot]
7e77c88407 build(deps): bump boto3 from 1.14.1 to 1.14.2 (#68)
Bumps [boto3](https://github.com/boto/boto3) from 1.14.1 to 1.14.2.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.14.1...1.14.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-15 09:05:30 +02:00
dependabot-preview[bot]
3fa982cb2a build(deps): bump boto3 from 1.13.26 to 1.14.1 (#66)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.26 to 1.14.1.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.26...1.14.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-06-12 22:49:58 +02:00
dependabot-preview[bot]
4f1e767488 build(deps): bump swagger-spec-validator from 2.7.0 to 2.7.1 (#64)
Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 2.7.0 to 2.7.1.
- [Release notes](https://github.com/Yelp/swagger_spec_validator/releases)
- [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/Yelp/swagger_spec_validator/compare/v2.7.0...v2.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-06-11 12:47:55 +02:00
dependabot-preview[bot]
8e6b503c0d build(deps): bump signxml from 2.7.2 to 2.7.3 (#65)
Bumps [signxml](https://github.com/kislyuk/signxml) from 2.7.2 to 2.7.3.
- [Release notes](https://github.com/kislyuk/signxml/releases)
- [Changelog](https://github.com/XML-Security/signxml/blob/master/Changes.rst)
- [Commits](https://github.com/kislyuk/signxml/compare/v2.7.2...v2.7.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-11 12:44:23 +02:00
dependabot-preview[bot]
17f1cad468 build(deps): bump boto3 from 1.13.25 to 1.13.26 (#62)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.25 to 1.13.26.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.25...1.13.26)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-10 13:56:40 +02:00
dependabot-preview[bot]
0b8eaff874 build(deps): bump celery from 4.4.4 to 4.4.5 (#60)
Bumps [celery](https://github.com/celery/celery) from 4.4.4 to 4.4.5.
- [Release notes](https://github.com/celery/celery/releases)
- [Changelog](https://github.com/celery/celery/blob/master/Changelog.rst)
- [Commits](https://github.com/celery/celery/compare/v4.4.4...v4.4.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-09 13:48:25 +02:00
dependabot-preview[bot]
33a6d4cdeb build(deps-dev): bump pylint from 2.5.2 to 2.5.3 (#59)
Bumps [pylint](https://github.com/PyCQA/pylint) from 2.5.2 to 2.5.3.
- [Release notes](https://github.com/PyCQA/pylint/releases)
- [Changelog](https://github.com/PyCQA/pylint/blob/master/ChangeLog)
- [Commits](https://github.com/PyCQA/pylint/compare/pylint-2.5.2...pylint-2.5.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-09 13:42:34 +02:00
dependabot-preview[bot]
d3224f4ee8 build(deps): bump boto3 from 1.13.24 to 1.13.25 (#61)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.24 to 1.13.25.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.24...1.13.25)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-09 13:42:14 +02:00
Jens Langhammer
2a3166bf7e ui: (pf4) Update pagination and toolbar 2020-06-09 13:40:03 +02:00
Jens Langhammer
62fe4d617b ui: (pf4) update admin overview 2020-06-09 13:39:44 +02:00
Jens Langhammer
b86b36f947 ui: (pf4) update forms 2020-06-09 13:39:35 +02:00
Jens Langhammer
d6b9e67e78 ui: (pf4) fix navbar 2020-06-09 13:11:54 +02:00
Jens Langhammer
f589da4e72 ui: (pf4) fix empty state 2020-06-09 09:52:25 +02:00
dependabot-preview[bot]
2e5170f631 build(deps): bump @patternfly/patternfly in /passbook/static/static (#58)
Bumps [@patternfly/patternfly](https://github.com/patternfly/patternfly) from 2.71.6 to 4.10.31.
- [Release notes](https://github.com/patternfly/patternfly/releases)
- [Changelog](https://github.com/patternfly/patternfly/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/patternfly/patternfly/compare/v2.71.6...prerelease-v4.10.31)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-09 09:32:56 +02:00
Jens Langhammer
bd312b60fc gatekeeper: update upstream docker image 2020-06-09 09:26:03 +02:00
Jens Langhammer
26aa7e1fef sources/ldap: fix 'LDAPSource' object has no attribute '_connection' 2020-06-09 01:17:17 +02:00
Jens Langhammer
9495956fae docs: add login credentials to kubernetes install 2020-06-08 22:13:38 +02:00
Jens Langhammer
089ee86d43 docs: add initial login instructions 2020-06-08 22:11:01 +02:00
Jens Langhammer
d321e2f52c docs: update docker-compose install form README 2020-06-08 22:09:04 +02:00
Jens Langhammer
5265064b10 new release: 0.9.0-pre1 2020-06-08 15:47:22 +02:00
Jens Langhammer
ee8313142f Merge branch 'docs-flows'
# Conflicts:
#	passbook/core/templates/partials/form_horizontal.html
2020-06-08 15:43:46 +02:00
Jens Langhammer
0963b68f4e e2e: use separate network 2020-06-08 11:23:18 +02:00
Jens Langhammer
a4a7ecd493 e2e: use normal selenium grid 2020-06-08 11:21:14 +02:00
Jens Langhammer
3b6e414d0f ci: use docker-compose pull -q 2020-06-08 10:58:44 +02:00
Jens Langhammer
8859806d64 ci: fix missing selenium 2020-06-08 10:57:48 +02:00
Jens Langhammer
56198e503b ci: Run e2e tests in one stage 2020-06-08 10:50:31 +02:00
Jens Langhammer
b1b3a23d1e ci: docker-compose without TTY 2020-06-08 10:21:22 +02:00
dependabot-preview[bot]
45dd004d00 build(deps): bump boto3 from 1.13.23 to 1.13.24 (#55)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.23 to 1.13.24.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.23...1.13.24)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 10:16:49 +02:00
dependabot-preview[bot]
c4ebc5c085 build(deps): bump swagger-spec-validator from 2.6.0 to 2.7.0 (#56)
Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/Yelp/swagger_spec_validator/releases)
- [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/Yelp/swagger_spec_validator/compare/v2.6.0...v2.7.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 10:04:42 +02:00
dependabot-preview[bot]
31c42f1104 build(deps): bump django-filter from 2.2.0 to 2.3.0 (#54)
Bumps [django-filter](https://github.com/carltongibson/django-filter) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/carltongibson/django-filter/releases)
- [Changelog](https://github.com/carltongibson/django-filter/blob/master/CHANGES.rst)
- [Commits](https://github.com/carltongibson/django-filter/compare/2.2.0...2.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 09:02:34 +02:00
dependabot-preview[bot]
8b7f665c82 build(deps): bump django-guardian from 2.2.0 to 2.3.0 (#57)
Bumps [django-guardian](https://github.com/django-guardian/django-guardian) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/django-guardian/django-guardian/releases)
- [Changelog](https://github.com/django-guardian/django-guardian/blob/devel/CHANGES)
- [Commits](https://github.com/django-guardian/django-guardian/compare/v2.2.0...v2.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 09:01:33 +02:00
Jens Langhammer
0ca7579d19 ci: attempt to fix e2e not a tty error 2020-06-07 19:57:01 +02:00
Jens Langhammer
2291ae98c3 e2e: fix lint error 2020-06-07 19:50:01 +02:00
Jens Langhammer
16c6e29801 root: add missing selenium 2020-06-07 19:44:28 +02:00
Jens Langhammer
fc2eb003ea e2e: add apply_default_data to load data from migrations after tables have been truncated 2020-06-07 19:31:16 +02:00
Jens Langhammer
aa440c17b7 Merge branch 'master' into e2e 2020-06-07 17:52:51 +02:00
Jens L
4915205678 WIP Use Flows for Sources and Providers (#32)
* core: start migrating to flows for authorisation

* sources/oauth: start type-hinting

* core: create default user

* core: only show user delete button if an unenrollment flow exists

* flows: Correctly check initial policies on flow with context

* policies: add more verbosity to engine

* sources/oauth: migrate to flows

* sources/oauth: fix typing errors

* flows: add more tests

* sources/oauth: start implementing unittests

* sources/ldap: add option to disable user sync, move connection init to model

* sources/ldap: re-add default PropertyMappings

* providers/saml: re-add default PropertyMappings

* admin: fix missing stage count

* stages/identification: fix sources not being shown

* crypto: fix being unable to save with private key

* crypto: re-add default self-signed keypair

* policies: rewrite cache_key to prevent wrong cache

* sources/saml: migrate to flows for auth and enrollment

* stages/consent: add new stage

* admin: fix PropertyMapping widget not rendering properly

* core: provider.authorization_flow is mandatory

* flows: add support for "autosubmit" attribute on form

* flows: add InMemoryStage for dynamic stages

* flows: optionally allow empty flows from FlowPlanner

* providers/saml: update to authorization_flow

* sources/*: fix flow executor URL

* flows: fix pylint error

* flows: wrap responses in JSON object to easily handle redirects

* flow: dont cache plan's context

* providers/oauth: rewrite OAuth2 Provider to use flows

* providers/*: update docstrings of models

* core: fix forms not passing help_text through safe

* flows: fix HttpResponses not being converted to JSON

* providers/oidc: rewrite to use flows

* flows: fix linting
2020-06-07 16:35:08 +02:00
Jens Langhammer
07da5f7122 Merge branch 'master' into docs-flows 2020-06-05 20:30:59 +02:00
Jens Langhammer
f91e02a0ec flows: allow username for default flow 2020-06-05 20:30:47 +02:00
Jens Langhammer
c62794c738 admin: fix PropertyMapping widget not rendering properly 2020-06-05 20:27:18 +02:00
Jens Langhammer
7664b428e7 sources/ldap: fix expression field not being CodeMirror 2020-06-05 20:18:45 +02:00
Jens Langhammer
9f3f34389e root: update docs URL 2020-06-05 20:18:26 +02:00
Jens Langhammer
30ca926b38 docs: remove last occurrences to jinja2 2020-06-05 20:18:11 +02:00
Jens Langhammer
eeb62f543f docs: fix wrong paths in nav section 2020-06-05 17:31:41 +02:00
Jens Langhammer
6a7ffa855e docs: add example for login flow 2020-06-05 17:29:08 +02:00
Jens Langhammer
0c5aff21bc stages/identification: minor UI fixes 2020-06-05 17:02:50 +02:00
Jens Langhammer
b0f426e51a core: fix help_text not always being shown on horizontal form 2020-06-05 17:01:46 +02:00
tigattack
57b91eb128 docs(terminology.md): grammar and clarity
Improved grammar and clarified some points.
2020-06-05 15:51:21 +01:00
Jens Langhammer
ed0094eba2 docs: add runtime 2020-06-05 15:58:10 +02:00
Jens Langhammer
4c1b6d5f48 docs: add requirements for docs 2020-06-05 15:54:59 +02:00
Jens Langhammer
41a7e1ef07 docs: simplify index, update, add screenshots 2020-06-05 12:51:28 +02:00
Jens Langhammer
4ff41be74a Merge branch 'master' into docs-flows
# Conflicts:
#	mkdocs.yml
2020-06-05 12:51:10 +02:00
Jens Langhammer
7067d1f236 docs: fix typo'd URL 2020-06-05 12:10:28 +02:00
Jens L
73116b9d1a policies/expression: migrate to raw python instead of jinja2 (#49)
* policies/expression: migrate to raw python instead of jinja2

* lib/expression: create base evaluator, custom subclass for policies

* core: rewrite propertymappings to use python

* providers/saml: update to new PropertyMappings

* sources/ldap: update to new PropertyMappings

* docs: update docs for new propertymappings

* root: remove jinja2

* root: re-add jinja to lock file as its implicitly required
2020-06-05 12:00:27 +02:00
dependabot-preview[bot]
147212a5f9 build(deps): bump boto3 from 1.13.22 to 1.13.23 (#53)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.22 to 1.13.23.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.22...1.13.23)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-05 10:27:07 +02:00
dependabot-preview[bot]
5502c319d4 build(deps): bump celery from 4.4.2 to 4.4.4 (#50)
Bumps [celery](https://github.com/celery/celery) from 4.4.2 to 4.4.4.
- [Release notes](https://github.com/celery/celery/releases)
- [Changelog](https://github.com/celery/celery/blob/master/Changelog.rst)
- [Commits](https://github.com/celery/celery/compare/4.4.2...v4.4.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 09:15:42 +02:00
dependabot-preview[bot]
d18b76a47d build(deps): bump boto3 from 1.13.21 to 1.13.22 (#51)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.21 to 1.13.22.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.21...1.13.22)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 09:15:31 +02:00
dependabot-preview[bot]
90ce704def build(deps): bump django from 3.0.6 to 3.0.7 (#52)
Bumps [django](https://github.com/django/django) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.6...3.0.7)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-04 09:15:11 +02:00
Jens Langhammer
790139f8bc stages/email: Add test to check if user is pending 2020-06-03 21:00:04 +02:00
dependabot-preview[bot]
f4be007803 build(deps): bump boto3 from 1.13.20 to 1.13.21 (#47)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.20 to 1.13.21.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.20...1.13.21)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 08:56:13 +02:00
dependabot-preview[bot]
448ca62661 build(deps): bump kombu from 4.6.9 to 4.6.10 (#48)
Bumps [kombu](https://kombu.readthedocs.io) from 4.6.9 to 4.6.10.

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-03 08:55:23 +02:00
Jens Langhammer
4824e5c8ba docs: add docs for flows and all stages 2020-06-02 23:52:02 +02:00
Jens Langhammer
9882342ed1 Merge branch 'master' into azure-pipelines
# Conflicts:
#	.github/workflows/ci.yml
2020-06-02 20:40:04 +02:00
Jens Langhammer
c4facd53b4 Merge branch 'master' into docs-flows 2020-06-02 20:25:43 +02:00
Jens Langhammer
ef913abc7a sources/ldap: add option to disable user sync, move connection init to model 2020-06-02 17:15:59 +02:00
Jens Langhammer
55fc5a6068 policies: rewrite cache_key to prevent wrong cache
# Conflicts:
#	passbook/core/signals.py
#	passbook/policies/engine.py
#	passbook/policies/process.py
2020-06-02 17:06:18 +02:00
Jens Langhammer
f22c89c998 crypto: re-add default self-signed keypair 2020-06-02 17:01:15 +02:00
Jens Langhammer
2a78d2d0a0 crypto: fix being unable to save with private key 2020-06-02 17:01:15 +02:00
Jens Langhammer
b0ddc6a8c0 admin: fix missing stage count 2020-06-02 17:00:26 +02:00
Jens Langhammer
8080b0380e providers/saml: re-add default PropertyMappings 2020-06-02 17:00:03 +02:00
Jens Langhammer
ddfa2abbaa sources/ldap: re-add default PropertyMappings 2020-06-02 17:00:03 +02:00
Jens Langhammer
5fc5e54f47 sources/oauth: fix typing errors
# Conflicts:
#	passbook/sources/oauth/clients.py
2020-06-02 16:57:38 +02:00
Jens Langhammer
7462d56182 policies/engine: add more verbosity 2020-06-02 16:56:58 +02:00
Jens Langhammer
3f92d1c420 flows: Correctly check initial policies on flow with context
# Conflicts:
#	passbook/flows/planner.py
#	passbook/flows/tests/test_planner.py
#	passbook/flows/tests/test_views.py
#	passbook/flows/views.py
2020-06-02 16:53:40 +02:00
Jens Langhammer
d4fa60f509 core: only show user delete button if an unenrollment flow exists 2020-06-02 16:44:29 +02:00
Jens Langhammer
052bf88c3d core: create default user
# Conflicts:
#	README.md
2020-06-02 16:42:44 +02:00
Jens Langhammer
07d047c887 stages/identification: fix *_flows missing in edit form 2020-06-02 16:39:55 +02:00
Jens Langhammer
23193314f1 Merge branch 'master' into docs-flows 2020-06-02 15:20:24 +02:00
Jens Langhammer
1912b29dc5 policies/expression: fix lint error 2020-06-02 15:20:02 +02:00
dependabot-preview[bot]
46410428d9 build(deps): bump boto3 from 1.13.19 to 1.13.20 (#45)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.19 to 1.13.20.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.19...1.13.20)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-02 09:38:17 +02:00
dependabot-preview[bot]
1774e33c24 build(deps): bump kombu from 4.6.8 to 4.6.9 (#46)
Bumps [kombu](https://kombu.readthedocs.io) from 4.6.8 to 4.6.9.

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-02 09:37:53 +02:00
Jens Langhammer
c961327d27 stages/identification: fix recovery template 2020-06-01 19:08:14 +02:00
Jens Langhammer
fe1ff7fc76 core: fix form not showing general errors 2020-06-01 19:08:01 +02:00
Jens Langhammer
82d12ecfdf policies/expression: use pb_message() for messages instead of returning a tuple 2020-06-01 15:25:38 +02:00
dependabot-preview[bot]
6ed822fa38 build(deps-dev): bump autopep8 from 1.5.2 to 1.5.3 (#44)
Bumps [autopep8](https://github.com/hhatto/autopep8) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/hhatto/autopep8/releases)
- [Commits](https://github.com/hhatto/autopep8/compare/v1.5.2...v1.5.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-01 12:40:08 +02:00
Jens Langhammer
4d1658b35e stages/identification: explicitly define enrollment and recovery 2020-05-31 23:01:08 +02:00
Jens Langhammer
08302a04bf docs: add docs for flows, start docs for stages 2020-05-30 22:36:01 +02:00
Jens Langhammer
1c906b12be ci: set static network for static build 2020-05-29 10:04:23 +02:00
Jens Langhammer
4d835b18cc ci: fix network for static build 2020-05-29 09:43:00 +02:00
Jens L
e02ff7ec30 ci: fix codecov token not being set correctly 2020-05-29 09:18:17 +02:00
Jens L
2e67b0194b Update azure-pipelines.yml for Azure Pipelines 2020-05-29 09:15:57 +02:00
dependabot-preview[bot]
8b4558fcd0 build(deps): bump boto3 from 1.13.18 to 1.13.19 (#41)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.18 to 1.13.19.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.18...1.13.19)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-29 08:53:41 +02:00
Jens Langhammer
27728abe99 e2e: start implementing e2e tests 2020-05-29 00:45:56 +02:00
Jens Langhammer
467b95cf02 Merge branch 'master' into e2e 2020-05-29 00:23:47 +02:00
Jens Langhammer
80a36a3441 stages/user_write: don't use create_user, create empty object and set attributes 2020-05-28 23:22:15 +02:00
Jens Langhammer
b1b63fbb7f stages/prompt: add prompt order field 2020-05-28 23:21:43 +02:00
Jens Langhammer
0302a95dd7 Squashed commit of the following:
commit fe6bfb1620
Author: Jens Langhammer <jens.langhammer@beryju.org>
Date:   Thu May 28 22:44:42 2020 +0200

    stages/identification: fix wrong link
2020-05-28 22:44:59 +02:00
Jens Langhammer
fe6bfb1620 stages/identification: fix wrong link 2020-05-28 22:44:42 +02:00
Jens Langhammer
3cad746407 Merge branch 'master' into e2e 2020-05-28 22:43:56 +02:00
Jens Langhammer
e6d64bf5b3 stages/identification: fix sources and recovery/enrollment not being shown 2020-05-28 22:43:44 +02:00
Jens Langhammer
8dd05d5431 Squashed commit of the following:
commit 270739a45a
Author: Jens Langhammer <jens.langhammer@beryju.org>
Date:   Thu May 28 21:50:43 2020 +0200

    admin: fix policy testing form not showing the correct result

commit df8995deed
Author: Jens L <jens@beryju.org>
Date:   Thu May 28 21:45:54 2020 +0200

    policies/*: remove Policy.negate, order, timeout (#39)

    policies: rewrite engine to use PolicyBinding for order/negate/timeout
    policies: rewrite engine to use PolicyResult instead of tuple

commit fdfc6472d2
Author: Jens Langhammer <jens.langhammer@beryju.org>
Date:   Thu May 28 10:36:10 2020 +0200

    admin: fixup some urls

commit bc495828e7
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Thu May 28 09:39:28 2020 +0200

    build(deps): bump django-redis from 4.11.0 to 4.12.1 (#38)

    Bumps [django-redis](https://github.com/jazzband/django-redis) from 4.11.0 to 4.12.1.
    - [Release notes](https://github.com/jazzband/django-redis/releases)
    - [Changelog](https://github.com/jazzband/django-redis/blob/master/CHANGES.rst)
    - [Commits](https://github.com/jazzband/django-redis/compare/4.11.0...4.12.1)

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

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

commit fa138a273f
Author: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Date:   Thu May 28 08:59:19 2020 +0200

    build(deps): bump boto3 from 1.13.17 to 1.13.18 (#37)

    Bumps [boto3](https://github.com/boto/boto3) from 1.13.17 to 1.13.18.
    - [Release notes](https://github.com/boto/boto3/releases)
    - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
    - [Commits](https://github.com/boto/boto3/compare/1.13.17...1.13.18)

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

    Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-28 21:56:18 +02:00
Jens Langhammer
270739a45a admin: fix policy testing form not showing the correct result 2020-05-28 21:50:43 +02:00
Jens L
df8995deed policies/*: remove Policy.negate, order, timeout (#39)
policies: rewrite engine to use PolicyBinding for order/negate/timeout
policies: rewrite engine to use PolicyResult instead of tuple
2020-05-28 21:45:54 +02:00
Jens Langhammer
02f0712934 ci: fix static being built on wrong docker image 2020-05-28 21:19:06 +02:00
Jens Langhammer
7e7ea47f39 ci: fix level of stages on build jobs 2020-05-28 21:00:30 +02:00
Jens Langhammer
7e52711e3a ci: fix names of build jobs 2020-05-28 19:46:10 +02:00
Jens Langhammer
40fd1c9c1f ci: fix duplicate key 2020-05-28 19:45:25 +02:00
Jens Langhammer
4037a444eb ci: migrate building 2020-05-28 19:44:25 +02:00
Jens Langhammer
1ed7e900f2 ci: migrate unittests and coverage 2020-05-28 19:29:28 +02:00
Jens Langhammer
cfc8d0a0f7 ci: migrate lint to az 2020-05-28 19:15:18 +02:00
Jens L
df33616544 Set up CI with Azure Pipelines
[skip ci]
2020-05-28 18:57:48 +02:00
Jens Langhammer
fdfc6472d2 admin: fixup some urls 2020-05-28 10:36:27 +02:00
dependabot-preview[bot]
bc495828e7 build(deps): bump django-redis from 4.11.0 to 4.12.1 (#38)
Bumps [django-redis](https://github.com/jazzband/django-redis) from 4.11.0 to 4.12.1.
- [Release notes](https://github.com/jazzband/django-redis/releases)
- [Changelog](https://github.com/jazzband/django-redis/blob/master/CHANGES.rst)
- [Commits](https://github.com/jazzband/django-redis/compare/4.11.0...4.12.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-05-28 09:39:28 +02:00
dependabot-preview[bot]
fa138a273f build(deps): bump boto3 from 1.13.17 to 1.13.18 (#37)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.17 to 1.13.18.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.17...1.13.18)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-28 08:59:19 +02:00
Jens Langhammer
5555dd4dde root: update readme 2020-05-27 17:57:43 +02:00
Jens Langhammer
084ff2994f ci: add cleanup to CI to remove old tags 2020-05-27 17:33:27 +02:00
Jens Langhammer
ee8a61d164 root: update readme 2020-05-27 17:26:35 +02:00
dependabot-preview[bot]
60a363e4bf build(deps): bump boto3 from 1.13.15 to 1.13.17 (#35)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.15 to 1.13.17.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.15...1.13.17)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-27 11:53:59 +02:00
Jens Langhammer
e2804b9755 root: fix linting errors 2020-05-27 11:26:48 +02:00
Jens Langhammer
9330a03273 root: fix pylint not correctly ignoring migrations 2020-05-27 11:15:10 +02:00
Jens L
beabba2890 flows: Load Stages without refreshing the whole page (#33)
* flows: initial implementation of FlowExecutorShell

* flows: load messages dynamically upon card refresh
2020-05-24 00:57:25 +02:00
Jens Langhammer
eeeb14a045 admin: fix urls for applications 2020-05-22 23:22:40 +02:00
dependabot-preview[bot]
ff3f126832 build(deps): bump boto3 from 1.13.14 to 1.13.15 (#31)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.14 to 1.13.15.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.14...1.13.15)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-22 09:55:25 +02:00
dependabot-preview[bot]
73225917cd build(deps): bump codemirror in /passbook/static/static (#29)
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.53.2 to 5.54.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.53.2...5.54.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-21 19:12:14 +02:00
dependabot-preview[bot]
8b7a285f4a build(deps): bump swagger-spec-validator from 2.5.0 to 2.6.0 (#28)
Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/Yelp/swagger_spec_validator/releases)
- [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/Yelp/swagger_spec_validator/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-21 19:11:27 +02:00
dependabot-preview[bot]
3a4c6a5d67 build(deps): bump boto3 from 1.13.13 to 1.13.14 (#30)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.13 to 1.13.14.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.13...1.13.14)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-21 14:20:51 +02:00
Jens Langhammer
0664f0b6b2 flows: add support for default_context, etc
default_context can be used to influence policies during the planning. This should be used when the Planner is called from other views to correctly preseed the plan.
This also checks if there is a PENDING_USER set, and uses that user for the cache key instead
2020-05-20 16:15:16 +02:00
Jens Langhammer
fab9f1cb1b root: clear cache on debug startup 2020-05-20 16:13:48 +02:00
Jens Langhammer
b3c54308b7 policies/expression: validate syntax on form clean 2020-05-20 16:13:36 +02:00
Jens Langhammer
c1a72a0474 crypto: fix clean_ methods not returning values 2020-05-20 16:10:12 +02:00
Jens Langhammer
4377d1e86e admin: fix flow ordering, fix source URLs 2020-05-20 16:09:53 +02:00
Jens Langhammer
cafe2f1e1f admin: fix linting 2020-05-20 13:59:56 +02:00
Jens Langhammer
c329a724e8 admin: fix wrong name in template 2020-05-20 13:55:17 +02:00
Jens Langhammer
969da05437 admin: show object's docstring on inheritance based lists 2020-05-20 13:47:58 +02:00
Jens Langhammer
c61c84e9f3 admin: remove inline JS, add CodeMirror widget for jinja and yaml 2020-05-20 13:00:45 +02:00
Jens Langhammer
e08c5ff875 helm: fully remove domain, add log_level 2020-05-20 12:16:56 +02:00
dependabot-preview[bot]
d1fd616b8d build(deps): bump packaging from 20.3 to 20.4 (#25)
Bumps [packaging](https://github.com/pypa/packaging) from 20.3 to 20.4.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/20.3...20.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-20 09:41:31 +02:00
dependabot-preview[bot]
cc4bbc049b build(deps): bump boto3 from 1.13.12 to 1.13.13 (#27)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.12 to 1.13.13.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.12...1.13.13)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-20 09:38:04 +02:00
Jens L
24a3e787dd migrate to per-model UUID Primary key, remove UUIDModel (#26)
* *: migrate to per-model UUID Primary key, remove UUIDModel

* *: fix import order, fix unittests
2020-05-20 09:17:06 +02:00
Jens Langhammer
13a20478fd sources/oauth: add OIDC client 2020-05-19 21:53:46 +02:00
Jens Langhammer
f58ee7fb52 sources/oauth: fix handling of sources with spaces in their name 2020-05-19 21:53:36 +02:00
Jens Langhammer
4d45dc31a9 helm: limit deployments to their respective components 2020-05-19 21:25:56 +02:00
Jens Langhammer
f6b5fbc2cf admin: fix sidebar 2020-05-19 21:02:10 +02:00
Jens Langhammer
db69c3e38d admin: add generic tests 2020-05-19 20:59:43 +02:00
Jens Langhammer
5ba55356a9 admin: cleanup templates, cleanup templatetags 2020-05-19 20:29:02 +02:00
dependabot-preview[bot]
6104b7c9ba build(deps): bump lxml from 4.5.0 to 4.5.1 (#24)
Bumps [lxml](https://github.com/lxml/lxml) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.5.0...lxml-4.5.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-05-19 15:58:30 +02:00
dependabot-preview[bot]
bcef8369ff build(deps): bump boto3 from 1.13.11 to 1.13.12 (#23)
Bumps [boto3](https://github.com/boto/boto3) from 1.13.11 to 1.13.12.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.13.11...1.13.12)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-19 07:40:00 +02:00
Jens L
0fe555a76e Merge pull request #17 from BeryJu/dependabot/pip/pylint-2.5.2
build(deps-dev): bump pylint from 2.4.4 to 2.5.2
2020-05-19 07:33:17 +02:00
Jens Langhammer
c903c81bd5 root: update pylint ignore list 2020-05-18 18:15:39 +02:00
Jens L
2c43bfb13f Merge pull request #22 from BeryJu/dependabot/pip/urllib3-1.25.9
build(deps): bump urllib3 from 1.25.8 to 1.25.9
2020-05-18 16:04:40 +02:00
Jens L
24ecab0878 Merge pull request #21 from BeryJu/dependabot/pip/sentry-sdk-0.14.4
build(deps): bump sentry-sdk from 0.14.3 to 0.14.4
2020-05-18 15:53:32 +02:00
Jens L
6285c79341 Merge pull request #20 from BeryJu/dependabot/pip/django-otp-0.9.1
build(deps): bump django-otp from 0.8.1 to 0.9.1
2020-05-18 15:35:23 +02:00
Jens L
5f7c56fab4 Merge pull request #19 from BeryJu/dependabot/pip/coverage-5.1
build(deps-dev): bump coverage from 5.0.4 to 5.1
2020-05-18 15:01:29 +02:00
Jens L
6338b14a5b Merge pull request #18 from BeryJu/dependabot/pip/django-3.0.6
build(deps): bump django from 3.0.5 to 3.0.6
2020-05-18 14:51:44 +02:00
dependabot-preview[bot]
62ff3667f9 build(deps): bump urllib3 from 1.25.8 to 1.25.9
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.25.8 to 1.25.9.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/master/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.25.8...1.25.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:29:33 +00:00
dependabot-preview[bot]
3b97eef641 build(deps): bump sentry-sdk from 0.14.3 to 0.14.4
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 0.14.3 to 0.14.4.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGES.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/0.14.3...0.14.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:28:09 +00:00
dependabot-preview[bot]
b05d66466b build(deps): bump django-otp from 0.8.1 to 0.9.1
Bumps [django-otp](https://github.com/django-otp/django-otp) from 0.8.1 to 0.9.1.
- [Release notes](https://github.com/django-otp/django-otp/releases)
- [Changelog](https://github.com/django-otp/django-otp/blob/master/CHANGES.rst)
- [Commits](https://github.com/django-otp/django-otp/compare/v0.8.1...v0.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:26:41 +00:00
dependabot-preview[bot]
220144c919 build(deps-dev): bump coverage from 5.0.4 to 5.1
Bumps [coverage](https://github.com/nedbat/coveragepy) from 5.0.4 to 5.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/coverage-5.0.4...coverage-5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:25:16 +00:00
dependabot-preview[bot]
3b9402420d build(deps): bump django from 3.0.5 to 3.0.6
Bumps [django](https://github.com/django/django) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.5...3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:23:42 +00:00
Jens L
1324143146 Merge pull request #13 from BeryJu/dependabot/pip/autopep8-1.5.2
build(deps-dev): bump autopep8 from 1.5.1 to 1.5.2
2020-05-18 14:20:01 +02:00
dependabot-preview[bot]
595144cdd9 build(deps-dev): bump pylint from 2.4.4 to 2.5.2
Bumps [pylint](https://github.com/PyCQA/pylint) from 2.4.4 to 2.5.2.
- [Release notes](https://github.com/PyCQA/pylint/releases)
- [Changelog](https://github.com/PyCQA/pylint/blob/master/ChangeLog)
- [Commits](https://github.com/PyCQA/pylint/compare/pylint-2.4.4...pylint-2.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 12:19:16 +00:00
Jens L
b3e714a741 Merge pull request #12 from BeryJu/dependabot/npm_and_yarn/passbook/static/static/codemirror-5.53.2
build(deps): bump codemirror from 5.52.0 to 5.53.2 in /passbook/static/static
2020-05-18 14:15:29 +02:00
Jens L
2b3ae1e2d5 Merge pull request #10 from BeryJu/dependabot/pip/pylint-django-2.0.15
build(deps-dev): bump pylint-django from 2.0.14 to 2.0.15
2020-05-18 14:15:18 +02:00
dependabot-preview[bot]
886845306a build(deps): bump codemirror in /passbook/static/static
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.52.0 to 5.53.2.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.52.0...5.53.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:50:33 +00:00
Jens L
de6aaec088 Merge pull request #11 from BeryJu/dependabot/npm_and_yarn/passbook/static/static/fortawesome/fontawesome-free-5.13.0
build(deps): bump @fortawesome/fontawesome-free from 5.12.1 to 5.13.0 in /passbook/static/static
2020-05-18 13:49:21 +02:00
Jens L
137e0854ab Merge pull request #15 from BeryJu/dependabot/pip/bumpversion-0.6.0
build(deps-dev): bump bumpversion from 0.5.3 to 0.6.0
2020-05-18 13:48:52 +02:00
dependabot-preview[bot]
b6a0e895bc build(deps): bump @fortawesome/fontawesome-free
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.12.1 to 5.13.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.12.1...5.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:03:22 +00:00
dependabot-preview[bot]
05c791b1c0 build(deps-dev): bump bumpversion from 0.5.3 to 0.6.0
Bumps [bumpversion](https://github.com/peritus/bumpversion) from 0.5.3 to 0.6.0.
- [Release notes](https://github.com/peritus/bumpversion/releases)
- [Commits](https://github.com/peritus/bumpversion/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:02:36 +00:00
dependabot-preview[bot]
669f3051e8 build(deps-dev): bump pylint-django from 2.0.14 to 2.0.15
Bumps [pylint-django](https://github.com/PyCQA/pylint-django) from 2.0.14 to 2.0.15.
- [Release notes](https://github.com/PyCQA/pylint-django/releases)
- [Changelog](https://github.com/PyCQA/pylint-django/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/PyCQA/pylint-django/compare/v2.0.14...v2.0.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:02:17 +00:00
Jens L
d945b56561 Merge pull request #14 from BeryJu/dependabot/npm_and_yarn/passbook/static/static/patternfly/patternfly-2.71.6
build(deps): bump @patternfly/patternfly from 2.65.3 to 2.71.6 in /passbook/static/static
2020-05-18 13:02:08 +02:00
dependabot-preview[bot]
27333bbff1 build(deps-dev): bump autopep8 from 1.5.1 to 1.5.2
Bumps [autopep8](https://github.com/hhatto/autopep8) from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/hhatto/autopep8/releases)
- [Commits](https://github.com/hhatto/autopep8/compare/v1.5.1...v1.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:02:07 +00:00
Jens L
80c800f233 Merge pull request #16 from BeryJu/dependabot/pip/boto3-1.13.11
build(deps): bump boto3 from 1.12.39 to 1.13.11
2020-05-18 12:58:40 +02:00
dependabot-preview[bot]
5d17d3dd31 build(deps): bump boto3 from 1.12.39 to 1.13.11
Bumps [boto3](https://github.com/boto/boto3) from 1.12.39 to 1.13.11.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.12.39...1.13.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 09:51:42 +00:00
dependabot-preview[bot]
8c64fcd17f build(deps): bump @patternfly/patternfly in /passbook/static/static
Bumps [@patternfly/patternfly](https://github.com/patternfly/patternfly) from 2.65.3 to 2.71.6.
- [Release notes](https://github.com/patternfly/patternfly/releases)
- [Changelog](https://github.com/patternfly/patternfly/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/patternfly/patternfly/compare/v2.65.3...v2.71.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 09:49:27 +00:00
Jens Langhammer
753110583e admin: fix incorrect URL 2020-05-17 23:55:42 +02:00
Jens Langhammer
4206a8c43e stages/password: fix button without labeling 2020-05-17 23:55:25 +02:00
Jens Langhammer
7cc9ae45bc static: fix any click on menu triggering collapse 2020-05-17 23:55:13 +02:00
Jens Langhammer
09ef58350c flows: rename AuthenticationStage to StageView as its a general base view 2020-05-17 00:03:06 +02:00
Jens Langhammer
0b70007926 docs: add upgrade page 2020-05-16 23:46:25 +02:00
Jens Langhammer
2c5d6e8187 docker: fix import order on wait_for_db 2020-05-16 22:56:14 +02:00
Jens Langhammer
10d3f9ac2f root: rewrite bootstrap in python, remove management command 2020-05-16 22:46:17 +02:00
Jens Langhammer
a6301055f0 root: remove need for PASSBOOK_DOMAIN 2020-05-16 21:47:51 +02:00
Jens Langhammer
9a1b8eb7c8 admin: add empty views to all lists, move invitation to stage-invitations 2020-05-16 21:43:48 +02:00
Jens Langhammer
2ee45f388c crypto: validate PEM data before saving 2020-05-16 21:25:10 +02:00
Jens Langhammer
9a9feea5ff static: make hamburger menu work 2020-05-16 21:11:48 +02:00
Jens Langhammer
8540e787d3 admin: fix create buttons disappearing on small screens 2020-05-16 21:11:38 +02:00
Jens Langhammer
db26ce808e core: remove policies from application form 2020-05-16 20:48:45 +02:00
Jens Langhammer
802d568273 admin: fix urls applications and sources 2020-05-16 20:48:30 +02:00
Jens Langhammer
7b6524357f stages/user_logout: fix dependency on PENDING_USER 2020-05-16 20:46:21 +02:00
Jens Langhammer
83013f063d core: remove stub data from user settings 2020-05-16 20:45:43 +02:00
Jens Langhammer
333ee3eed4 dc: fix compose, remove SESSION_COOKIE_DOMAIN 2020-05-16 20:39:38 +02:00
Jens Langhammer
e68352b09c admin: add flow-stage-bindings, add policy-bindings, add prompts 2020-05-16 19:55:59 +02:00
Jens Langhammer
df1cb88abc admin: fix slow load for templates using get_links 2020-05-16 19:00:43 +02:00
Jens L
5596caedbc Merge pull request #9 from BeryJu/db-reset
DB Reset
2020-05-16 18:20:03 +02:00
Jens Langhammer
7bd65120b9 *: migrate from PolicyModel to PolicyBindingModel, move Policy to passbook_policies 2020-05-16 18:07:00 +02:00
Jens Langhammer
227966e727 core: rename nonce to token 2020-05-16 16:11:53 +02:00
Jens Langhammer
406f69080b Revert "*: providers and sources -> channels, PolicyModel to PolicyBindingModel that uses custom M2M through"
This reverts commit 7ed3ceb960.
2020-05-16 16:02:42 +02:00
Jens Langhammer
2ce31dfaa5 root: upgrade django-dbbackup 2020-05-16 14:54:18 +02:00
Jens Langhammer
b23afcfc3b helm: expose backup settings through helm chart 2020-05-16 14:17:43 +02:00
Jens Langhammer
7ed3ceb960 *: providers and sources -> channels, PolicyModel to PolicyBindingModel that uses custom M2M through 2020-05-16 14:03:57 +02:00
Jens Langhammer
615cd7870d stages/email: add field to select E-Mail and subject 2020-05-15 14:50:23 +02:00
Jens Langhammer
b907105f4a policies/expression: expose python requests via expression, remove webhook policy 2020-05-15 12:02:41 +02:00
Jens Langhammer
023423c6e7 stages/password: show password forgotten prompt when recovery flow configured 2020-05-15 11:01:02 +02:00
Jens Langhammer
a5319fc2fe *: rename templatetags to clearly identify 2020-05-15 10:54:31 +02:00
Jens L
8cfd3f9a2b Merge pull request #8 from BeryJu/flows-stage1
Flows Stage 1
2020-05-14 16:07:22 +02:00
Jens Langhammer
814c797c64 stages/prompt: add policy verification logic 2020-05-14 15:48:23 +02:00
Jens Langhammer
776ad3cfbf policies/expression: add pb_log function to debug 2020-05-14 15:48:08 +02:00
Jens Langhammer
74ddf70cb7 policy: add context to PolicyRequest 2020-05-14 15:47:56 +02:00
Jens Langhammer
a7a839a29c stages/prompt: promptstage based on PolicyBindingModel 2020-05-14 13:51:35 +02:00
Jens Langhammer
9859c5db0a policies: add API for policybindings 2020-05-14 13:51:05 +02:00
Jens Langhammer
fe503c8de0 root: add swagger to repository 2020-05-14 13:45:46 +02:00
Jens Langhammer
43a583e2d2 stages/invitation: add unittests 2020-05-13 23:20:27 +02:00
Jens Langhammer
f289025d8e stages/user_delete: fix missing API, fix missing tests 2020-05-13 23:20:07 +02:00
Jens Langhammer
19cb310446 gh/actions: run coverage xml before codecov 2020-05-13 22:40:09 +02:00
Jens Langhammer
47f6d0ac59 gh/actions: fix invalid path for codecov 2020-05-13 22:27:18 +02:00
Jens Langhammer
922cbf932d : update readme 2020-05-13 19:05:01 +02:00
Jens Langhammer
c104eeebe6 gh/actions: add codecov 2020-05-13 18:52:37 +02:00
Jens Langhammer
80c3246333 policies/expression: add pb_flow_plan variable 2020-05-13 18:44:36 +02:00
Jens Langhammer
461fed5567 admin: remove more duplicate code 2020-05-13 13:45:57 +02:00
Jens Langhammer
d5f6714ed7 admin: remove redundant code 2020-05-13 11:57:19 +02:00
Jens Langhammer
c42ed6bc99 admin: sort types, minor fixups 2020-05-13 11:57:10 +02:00
Jens Langhammer
57fed2b92b stages/user_delete: fix formatting 2020-05-12 15:23:17 +02:00
Jens Langhammer
e45b33c6c2 stages/user_delete: add user delete stage, remove view from core 2020-05-12 14:50:00 +02:00
Jens Langhammer
137e90355b flows: default-auth -> default-authentication 2020-05-12 14:49:47 +02:00
Jens Langhammer
7500e622f6 stages/invitation: start extracting invitation from core 2020-05-11 21:58:02 +02:00
Jens Langhammer
d49c58f326 flows: fix linting 2020-05-11 21:27:46 +02:00
Jens Langhammer
9814d3be03 flows: add Planner and Executor unittests 2020-05-11 15:01:14 +02:00
Jens Langhammer
fc9f86cccc lib: use TemplateResponse for bad_request_message 2020-05-11 14:08:04 +02:00
Jens Langhammer
6fd19c0a37 flows: add caching of plan, add planner unittests 2020-05-11 11:39:58 +02:00
Jens Langhammer
10cb412532 flows: fix linting of migrations 2020-05-11 09:08:15 +02:00
Jens Langhammer
e12780f78f flows: add invalidation designation, use as default logout action 2020-05-11 01:12:57 +02:00
Jens Langhammer
9dec13c225 stages/user_logout: add logout stage 2020-05-11 01:12:14 +02:00
Jens Langhammer
69120da45c core: remove redundant views/forms 2020-05-11 00:49:48 +02:00
Jens Langhammer
5b2bf7519a stages/user_create -> user_write: Stage can create and update existing users 2020-05-10 23:38:15 +02:00
Jens Langhammer
631cf77f89 stages/captcha: add tests 2020-05-10 21:43:30 +02:00
Jens Langhammer
6676e95011 stages/email: add tests, cleanup 2020-05-10 21:43:22 +02:00
Jens Langhammer
3219cffb52 stages/email: add logic to verify token 2020-05-10 21:00:04 +02:00
Jens Langhammer
d4f149bc02 stages/email: add form for sending email to prevent spam
stages/email: make token validity configurable
2020-05-10 20:50:27 +02:00
Jens Langhammer
206cf4967d stages/identification: add more templates 2020-05-10 20:24:47 +02:00
Jens Langhammer
a67c53f46a stages/email: start rewriting templates, add template tags to embed CSS and images 2020-05-10 20:16:58 +02:00
Jens Langhammer
e989c61793 core: reduce default nonce time to 30 minutes 2020-05-10 20:15:56 +02:00
Jens Langhammer
99bab03cce flows: add check if current plan matches current flow 2020-05-10 20:15:24 +02:00
Jens Langhammer
a7567ad8c6 stages/identification: add recovery support 2020-05-10 18:45:16 +02:00
Jens Langhammer
2ffa2fc6b8 admin: update templates and stage views 2020-05-10 18:44:58 +02:00
Jens Langhammer
8de87d9acb stages/identification: test signup notice 2020-05-10 18:17:24 +02:00
Jens Langhammer
1d03b36750 stages/identification: show sign up url when related flow exists 2020-05-10 18:14:10 +02:00
Jens Langhammer
8dc3c49a2f stages/user_create: add stage to create user after prompts 2020-05-10 18:04:23 +02:00
Jens Langhammer
f6461b08d7 stages/prompt: add unittests 2020-05-10 17:52:26 +02:00
Jens Langhammer
a3a3dde1c8 stages/dummy: add unittests
stages/password: improve coverage
stages/user_login: improve coverage
2020-05-10 17:02:01 +02:00
Jens Langhammer
f111604b70 stages/login: -> stages/user_login: rename login to user_login for user_create stage 2020-05-10 16:20:44 +02:00
Jens Langhammer
4315d1a03c stages/prompt: add prompt stage: dynamically created forms based on database 2020-05-10 16:20:17 +02:00
Jens Langhammer
9def45c8d7 stages/identification: fix label for inputs 2020-05-10 15:29:27 +02:00
Jens Langhammer
358922b09b lib/ui: fix human_list for lists with one item 2020-05-10 15:29:10 +02:00
Jens Langhammer
fbc3ac6b30 flows: make FlowExecutor fully working without pending user 2020-05-10 15:28:52 +02:00
Jens Langhammer
4f785da452 root: fix migrations for CI 2020-05-10 13:06:38 +02:00
Jens Langhammer
ff4bd1c91f root: increase testing verbosity to debug CI 2020-05-10 12:50:58 +02:00
Jens Langhammer
7a96f9e894 policies/dummy: fix migrations 2020-05-10 12:27:10 +02:00
Jens Langhammer
c27d257146 core: fix migrations 2020-05-10 12:07:40 +02:00
Jens Langhammer
9bccf9bb0a policies/dummy: separate dummy policy from core into app 2020-05-10 02:14:55 +02:00
Jens Langhammer
c0b05a62f4 stages/password: add unittests 2020-05-10 02:00:38 +02:00
Jens Langhammer
c140c39d07 stages/login: add unittests 2020-05-10 01:02:04 +02:00
Jens Langhammer
9a700e506b stages/identification: simplify unittests 2020-05-10 01:01:58 +02:00
Jens Langhammer
8e488670ad stages/identification: load uid_fields from stage in form, add more unit tests 2020-05-10 00:05:36 +02:00
Jens Langhammer
fd5b2298e5 flows: fix unittests and migrations 2020-05-09 23:31:35 +02:00
Jens Langhammer
caeaf8d5a9 stages/identification: optimise User lookup query 2020-05-09 23:20:20 +02:00
Jens Langhammer
c46f0781fc flows: separate final login step from flow executor 2020-05-09 23:19:36 +02:00
Jens Langhammer
0aad0604d8 stages/identification: migrate from core to separate stage 2020-05-09 21:31:29 +02:00
Jens Langhammer
131c3fdb32 stages/password: fix broken authentication 2020-05-09 21:30:12 +02:00
Jens Langhammer
8a6009c278 flows: enum to django TextChoices 2020-05-09 20:54:56 +02:00
Jens Langhammer
3456527f10 providers/saml: fix minor typing issue 2020-05-09 20:54:11 +02:00
Jens Langhammer
28b913136d root: set log level based on DEBUG flag 2020-05-09 20:53:47 +02:00
Jens Langhammer
f700899640 stages/password: fix possibility of password in logs 2020-05-09 20:53:32 +02:00
Jens Langhammer
5ba45d3037 root: add fossa 2020-05-08 21:08:36 +02:00
Jens Langhammer
212e966dd4 factors: -> stage 2020-05-08 20:59:51 +02:00
Jens Langhammer
08c0eb2ec6 admin: add flows 2020-05-08 18:45:53 +02:00
Jens Langhammer
872ecd93a6 flows: add to api and add forms 2020-05-08 18:29:18 +02:00
Jens Langhammer
f8af9d6ce0 flows: make sure flow_slug is logged consistently 2020-05-08 17:18:43 +02:00
Jens Langhammer
c3e43a7c2f flows: fix denied view not being registered 2020-05-08 16:50:50 +02:00
Jens Langhammer
273af0f1cb core/auth: fix unittests for flows 2020-05-08 16:43:22 +02:00
Jens Langhammer
2a85e5ae87 flows: complete migration to FlowExecutorView, fully use context 2020-05-08 16:10:27 +02:00
Jens Langhammer
114bb1b0bd flows: implement planner, start new executor 2020-05-08 14:33:14 +02:00
Jens Langhammer
97b5d120f8 providers/oauth: fix default cors settings 2020-05-08 11:26:26 +02:00
Jens Langhammer
e1f0fe45cb static: fix dashes being removed from slugs 2020-05-08 11:26:12 +02:00
Jens Langhammer
bc0f4973d8 helm: fix bootstrap not being used correctly 2020-05-08 09:42:21 +02:00
Jens Langhammer
5400882d78 flows/: more migration progress, consolidate views 2020-05-07 21:30:52 +02:00
Jens Langhammer
8de66b27ad flows/*: Initial flows stage1 implementation 2020-05-07 20:51:06 +02:00
Jens Langhammer
179f0097c0 provider/samlv2: more samlv2 progres 2020-05-07 19:25:15 +02:00
Jens Langhammer
b40bffdf38 providers/samlv2: start implementing new SAML Provider 2020-05-07 01:20:08 +02:00
Jens Langhammer
2e9496bb74 gh/ci: run pyright in python venv 2020-05-07 00:38:41 +02:00
Jens Langhammer
d9d765c6cd gh/ci: fix ci syntax 2020-05-07 00:36:13 +02:00
Jens Langhammer
10cc6856a4 gh/ci: fix pyright not being installed 2020-05-07 00:33:42 +02:00
Jens Langhammer
813dd2894f *: add pyright type checking 2020-05-07 00:32:03 +02:00
Jens Langhammer
80d90b91e8 core: add general admin.py loader, remove individual files 2020-05-07 00:05:10 +02:00
Jens Langhammer
fff05e35ac providers/saml: optionally verify SAML Signature 2020-05-06 18:03:12 +02:00
Jens Langhammer
75bb59a22a ui: fix help text not being shown for checkboxes 2020-05-06 17:59:19 +02:00
Jens Langhammer
3ce69bb391 compose: remove explicit bootstrapping 2020-04-22 11:45:43 +02:00
Jens Langhammer
4eb7c5f94b helm: remove explicit bootstrapping 2020-04-22 11:45:36 +02:00
Jens Langhammer
aac7e6be90 lib: fix ram usage due to bootstrap
bootstrap now exits (0) when all services are up, instead continuously running. This is combined with a simple bash script, which does this job instead.

This also adds /bootstrap.sh as docker ENTRYPOINT
2020-04-22 11:45:11 +02:00
Jens Langhammer
c77f4204c0 new release: 0.8.15-beta 2020-04-10 21:57:20 +02:00
Jens Langhammer
5f4452470b providers/saml: fix metadata rendering when no singing keypair is selected
closes PASSBOOK-44
2020-04-10 21:54:23 +02:00
Jens Langhammer
9a1270c693 providers/saml: fix wrong signing property being checked
closes PASSBOOK-45
2020-04-10 21:52:03 +02:00
Jens Langhammer
7b9d1a1159 new release: 0.8.14-beta 2020-04-10 21:23:55 +02:00
Jens Langhammer
cdbe1f6161 bump dependencies 2020-04-10 21:17:31 +02:00
Jens Langhammer
e43db2e065 new release: 0.8.13-beta 2020-04-10 21:11:24 +02:00
Jens Langhammer
d1c74d2160 lib: fix imports being changed every time 2020-03-05 17:28:03 +01:00
Jens Langhammer
f2119ce567 providers/saml: fix signing_kp typo 2020-03-05 17:09:08 +01:00
Jens Langhammer
2c4dcb9cf0 actions: remove cache 2020-03-04 21:15:44 +01:00
Jens Langhammer
93b8266821 actions: install pipenv as root 2020-03-04 21:13:40 +01:00
Jens Langhammer
443797d9b0 actions: install wheel package 2020-03-04 21:11:26 +01:00
Jens Langhammer
a4365ca02c actions: don't update system pip 2020-03-04 21:09:46 +01:00
Jens Langhammer
3750083667 actions: don't setup custom python, use system pip 2020-03-04 21:08:24 +01:00
Jens Langhammer
66ef067ecf actions: don't update pip to fix CI 2020-03-04 20:10:46 +01:00
Jens L
b489b0e691 Merge pull request #7 from BeryJu/crypto
generic cert management
2020-03-04 19:43:52 +01:00
Jens Langhammer
f2154d9875 crypto: add property for private_key 2020-03-04 19:43:18 +01:00
Jens Langhammer
80a50f9bdb providers/saml: switch to new crypto 2020-03-03 23:35:50 +01:00
Jens Langhammer
dc8b89a6b9 sources/saml: switch to new crypto 2020-03-03 23:35:38 +01:00
Jens Langhammer
8df55f22aa crypto: implement simple certificate-key pair for easier management 2020-03-03 23:35:25 +01:00
Jens Langhammer
f6c322be27 providers/oidc: fix skip_authorization not being synced to oidc_client 2020-03-02 17:40:38 +01:00
Jens Langhammer
a144552059 providers/oidc: fill claims with userinfo 2020-03-01 22:55:56 +01:00
Jens Langhammer
535d529193 ui: fix title, fix navigation on user settings 2020-02-29 14:46:58 +01:00
Jens Langhammer
6ed2e137a2 new release: 0.8.12-beta 2020-02-28 11:54:03 +01:00
Jens Langhammer
45bd63c720 api: update old field names 2020-02-28 11:48:55 +01:00
Jens Langhammer
736e13fc35 ui: add template for csrf errors 2020-02-28 11:41:28 +01:00
Jens Langhammer
966fff008c ui: re-enable branding on navbar 2020-02-28 11:37:07 +01:00
Jens Langhammer
64f15eadbd providers/saml: fix CSRF errors with POST binding 2020-02-28 10:50:16 +01:00
Jens Langhammer
81b66ecdcd core: remove some more dead code, add more help texts for factors 2020-02-27 16:39:30 +01:00
Jens Langhammer
53e5cf7826 admin: fix some models not being paginated 2020-02-27 15:30:28 +01:00
Jens Langhammer
82654b3fd9 ui: re-organize some of the navigation to make it cleaner for end-users 2020-02-27 14:59:34 +01:00
Jens Langhammer
9b72c604dd docs: fix some typos 2020-02-27 13:00:55 +01:00
Jens Langhammer
5fb1b8044c new release: 0.8.11-beta 2020-02-25 11:38:50 +01:00
Jens Langhammer
b8daab4377 providers/saml: fix AccessRequiredView.dispatch not being called 2020-02-25 11:38:26 +01:00
Jens Langhammer
c5b91bdae8 providers/saml: fix CannotHandleAssertion Error still being sent to sentry 2020-02-24 19:14:43 +01:00
Jens Langhammer
39a208c55f providers/saml: fix wrong key being used for params 2020-02-24 17:48:03 +01:00
Jens Langhammer
a5bfef9b6b providers/saml: fix leftover data in session, fix IdP initiated login
move can_handle calls to binding endpoints (/login/ and /login/initiate/), so that /login/authorize/ works either way, can clean up the session and audit
2020-02-24 17:34:52 +01:00
Jens Langhammer
f1f4cbef9b lib/sentry: fix SentryIgnoredException not being ignored correctly 2020-02-24 17:01:31 +01:00
Jens Langhammer
8388120b06 new release: 0.8.10-beta 2020-02-24 15:30:57 +01:00
Jens Langhammer
2bf96828f1 root: fix logging.basicConfig being called by pyjwkest 2020-02-24 15:30:28 +01:00
Jens Langhammer
22838e66fe providers/saml: fix users being able to authenticate without audit logs being created 2020-02-24 14:40:12 +01:00
Jens Langhammer
484dd6de09 providers/oidc: add error template 2020-02-24 14:19:02 +01:00
Jens Langhammer
b743736c26 lib/logging: fix typo 2020-02-24 14:10:58 +01:00
Jens Langhammer
af91e2079b core: sort provider by pk when selection application provider 2020-02-24 14:10:51 +01:00
Jens Langhammer
cad1c17f14 helm: fix inconsistent labels 2020-02-24 13:49:42 +01:00
Jens Langhammer
120d32e4dc new release: 0.8.9-beta 2020-02-24 13:23:20 +01:00
Jens Langhammer
238b489e07 root: add process ID to logging output 2020-02-24 13:20:32 +01:00
Jens Langhammer
4daa70c894 core: fix saving of policy not correctly clearing it's cache 2020-02-24 13:15:52 +01:00
Jens Langhammer
f8599438df ui: fix lists not being rendered correctly 2020-02-24 13:13:42 +01:00
Jens Langhammer
155c9a4c3f ui: update remaining forms, completely remove jQuery 2020-02-24 13:13:28 +01:00
Jens Langhammer
8433b5e583 ui: fix automatic slug generation 2020-02-24 12:40:16 +01:00
Jens Langhammer
dc5ba144f1 ui: fix height of multiple select input 2020-02-24 12:40:06 +01:00
Jens Langhammer
521a8b5356 ui: update more remaining templates 2020-02-23 22:49:56 +01:00
Jens Langhammer
3453077d7b root: set SameSite to None when debugging 2020-02-23 22:49:33 +01:00
Jens Langhammer
70ede8581a core: sort sources on login view 2020-02-23 20:19:01 +01:00
Jens Langhammer
6e9d297f02 deploy: use new bootstrap command 2020-02-23 20:12:48 +01:00
Jens Langhammer
6a7545fd43 lib: add bootstrap command 2020-02-23 19:52:41 +01:00
Jens Langhammer
a8926cbd07 lib: add more errors to sentry ignore 2020-02-23 19:48:14 +01:00
Jens Langhammer
64d7b009ab sources/oauth: fix invalid headers, fix invalid function signature 2020-02-23 19:42:57 +01:00
Jens Langhammer
2b5fddb7bf policies: add unittests for evaluator 2020-02-23 15:54:26 +01:00
Jens Langhammer
b99d23c119 all: remove dead code 2020-02-23 15:32:20 +01:00
Jens Langhammer
03905b74ff admin: exclude anonymous user from listing 2020-02-23 15:27:28 +01:00
Jens Langhammer
6b8a59cfbd admin: show prettified yaml 2020-02-23 15:27:11 +01:00
Jens Langhammer
d6fdcd3ef9 ui: re-add automatic slug generation 2020-02-23 15:20:41 +01:00
Jens Langhammer
53ebc551d2 ui: fix icon sizing on login 2020-02-23 15:13:18 +01:00
Jens Langhammer
3d4f43d6e3 ui: show default icon for source without icon 2020-02-23 15:09:58 +01:00
Jens Langhammer
074cde7cd5 audit: save model's name or string representation 2020-02-23 15:04:30 +01:00
Jens Langhammer
382e563590 new release: 0.8.8-beta 2020-02-23 14:45:45 +01:00
Jens Langhammer
ca61a7cc21 audit: don't pop password as its censored already 2020-02-23 14:43:33 +01:00
Jens Langhammer
fa2870afe0 sources: remove policies as they are not used currently 2020-02-23 14:40:06 +01:00
Jens Langhammer
0f46207ea4 admin: fix provider list not having pagination 2020-02-23 14:29:21 +01:00
Jens Langhammer
1e7d912144 actions: build :<branch-name> on push 2020-02-23 13:54:19 +01:00
Jens Langhammer
f4a676e2fb sources/oauth: slugify provider type instead of just lowercase 2020-02-23 13:53:16 +01:00
Jens Langhammer
b2c10e2387 ui: add missing discord and twitter icons 2020-02-23 13:47:21 +01:00
Jens Langhammer
8c329dca7d core: add migration to fix null fields in core.application 2020-02-22 19:26:34 +01:00
Jens Langhammer
83da175749 policies/expression: add pb_client_ip field 2020-02-22 19:26:16 +01:00
Jens Langhammer
995c87938f core: fix default Null causing issues in translation 2020-02-21 23:10:00 +01:00
Jens Langhammer
40678b2f84 new release: 0.8.7-beta 2020-02-21 22:17:11 +01:00
Jens Langhammer
8dbbe9102b ui: fix application grid icons, fix SAML Authorize 2020-02-21 22:16:58 +01:00
Jens Langhammer
2f51f354de ui: fix app icon not showing 2020-02-21 22:02:44 +01:00
Jens Langhammer
04b815a33e admin: show object usage count instead of list 2020-02-21 22:02:03 +01:00
Jens Langhammer
2a4d68911b helm: change static healthcheck and port 2020-02-21 21:50:16 +01:00
Jens Langhammer
4d5a2d61ff new release: 0.8.6-beta 2020-02-21 21:36:04 +01:00
Jens Langhammer
efd88c27ad audit: *crit* fix audit log not being protected correctly 2020-02-21 21:33:42 +01:00
Jens Langhammer
80d361ccd2 audit: fix failed login events not being logged 2020-02-21 21:27:25 +01:00
Jens Langhammer
6ed4501615 ui: fix branding viewport 2020-02-21 21:18:55 +01:00
Jens L
8d34faa28e Merge pull request #5 from BeryJu/pf4
PatternFly v4
2020-02-21 21:03:48 +01:00
Jens Langhammer
a3ae827839 ui: centrally load CodeMirror and init via data tag 2020-02-21 21:02:03 +01:00
Jens Langhammer
88c1ad4c1c providers/saml: fix 500 when SAML Provider not assigned to application 2020-02-21 20:54:00 +01:00
Jens Langhammer
1147c4901b ui: clean up some more remaining templates 2020-02-21 20:40:40 +01:00
Jens Langhammer
063181d7a7 ui: use compact templates 2020-02-21 20:24:02 +01:00
Jens Langhammer
1285ba6fbb ui: include font-awesome 2020-02-21 18:00:09 +01:00
Jens Langhammer
a09a1793ec ui: update templates for jinja2-related fields 2020-02-21 15:36:37 +01:00
Jens Langhammer
50caa3ac3e ui: update static docker image to download NPM modules 2020-02-21 15:33:54 +01:00
Jens Langhammer
9440d24358 static: use codemirror from npm 2020-02-21 15:18:13 +01:00
Jens Langhammer
26bf6fd22f all: add more helpful help_text to models 2020-02-21 15:12:16 +01:00
Jens Langhammer
e2f836feae all: fix left over references to error templates 2020-02-21 15:05:32 +01:00
Jens Langhammer
b6326f399c ui: clean up more generic forms, remove is_login everywhere 2020-02-21 15:00:45 +01:00
Jens Langhammer
ea6a1422f7 ui: rewrite admin templates to pf4, add some helper scripts 2020-02-21 14:20:16 +01:00
Jens Langhammer
8fd86a28ff ui: fixup minor issues, add static app 2020-02-21 11:20:55 +01:00
Jens Langhammer
d88283a7a9 Merge branch 'master' into pf4
# Conflicts:
#	passbook/core/static/img/logos/discord.svg
#	passbook/core/static/js/passbook.js
#	passbook/core/templates/login/with_sources.html
#	passbook/core/templates/overview/index.html
#	passbook/core/views/authentication.py
2020-02-21 09:05:40 +01:00
Jens Langhammer
32a15f84c0 root: run bandit as part of pre-commit 2020-02-21 09:03:59 +01:00
Jens Langhammer
93ba4b7f62 root: use defusedxml's defuse_stdlib globally 2020-02-21 09:00:28 +01:00
Jens Langhammer
187780dab2 new release: 0.8.5-beta 2020-02-20 21:39:13 +01:00
Jens Langhammer
d988f37afc lib: add SentryIgnoredException, to easily ignore exceptions from sentry 2020-02-20 21:38:53 +01:00
Jens Langhammer
295c0bae3f sources/saml: validate SAMLResponse signature 2020-02-20 21:34:25 +01:00
Jens Langhammer
38a22ddf13 providers/saml: cleanup encoding 2020-02-20 21:33:10 +01:00
Jens Langhammer
d06f1abb89 providers/saml: add POST binding support to Metadata 2020-02-20 17:38:42 +01:00
Jens Langhammer
027a64fad2 providers/saml: change default NameID Format to emailAddress 2020-02-20 17:37:09 +01:00
Jens Langhammer
84fc54ddaa sources/saml: entity_id -> issuer 2020-02-20 17:23:27 +01:00
Jens Langhammer
0b5caa85f5 all: sort imports and cleanup 2020-02-20 17:23:05 +01:00
Jens Langhammer
14e0a17dbc ui: don't remove dashes when auto generating slug 2020-02-20 17:13:50 +01:00
Jens Langhammer
3c04afa31f root: use different cookie names for dev instance 2020-02-20 17:08:11 +01:00
Jens Langhammer
40a2a26904 sources/saml: fix Metadata cert including PEM header 2020-02-20 17:05:11 +01:00
Jens Langhammer
c8b3c6e51a sources/saml: fix build_full_url using incorrect URL parameter 2020-02-20 17:04:54 +01:00
Jens Langhammer
e0272a6422 providers/saml: Show error message when trying to get metadata without assigning application 2020-02-20 17:04:20 +01:00
Jens Langhammer
b290bbf6d7 new release: 0.8.4-beta 2020-02-20 16:17:23 +01:00
Jens Langhammer
8d875cb01d providers/saml: fix /login/ pointing to wrong view 2020-02-20 16:13:55 +01:00
Jens Langhammer
36b1f8ba36 new release: 0.8.3-beta 2020-02-20 15:14:49 +01:00
Jens Langhammer
6c889eff27 core: fix application icons not loading, fix with_sources being broken 2020-02-20 14:30:06 +01:00
Jens Langhammer
9d8675e54b new release: 0.8.2-beta 2020-02-20 13:57:46 +01:00
Jens Langhammer
22ae986c0b root: add logger name to log output 2020-02-20 13:52:14 +01:00
Jens Langhammer
2bef5f3911 policies: struct -> types to match core 2020-02-20 13:52:05 +01:00
Jens Langhammer
3c2b8e5ee1 all: prefix all UI related methods with ui_, switch to property and return dataclass 2020-02-20 13:51:41 +01:00
Jens Langhammer
c96571bdba core: fix discord logo being hard to see 2020-02-20 13:50:05 +01:00
Jens Langhammer
2dfd93afb1 core: add more fields for metadata of applications 2020-02-20 13:45:22 +01:00
Jens Langhammer
f1d77d475c ui: start patternfly v4 migration 2020-02-19 21:03:39 +01:00
Jens Langhammer
1d22e30c70 lib: sentry ignore Redis and OSError 2020-02-19 17:13:44 +01:00
Jens Langhammer
07b7951390 sources/ldap: handle user_sync errors better, show warning when user exists already 2020-02-19 16:20:33 +01:00
Jens Langhammer
995615d0a0 policies/expression: Return False if Policy returns Undefined and log warning 2020-02-19 16:19:02 +01:00
Jens Langhammer
ac273aab75 core: raise PropertyMappingExpressionException when PropertyMapping returns Undefined 2020-02-19 16:18:31 +01:00
Jens Langhammer
44cd03654d core: base set maximum-scale to 1 2020-02-19 15:11:25 +01:00
Jens Langhammer
3e2375f970 new release: 0.8.1-beta 2020-02-19 11:31:05 +01:00
Jens Langhammer
38ad8e5fd3 policies/expression: fix pb_is_sso_flow 2020-02-19 11:01:20 +01:00
Jens Langhammer
c481558a46 helm: fix error that FLUSHDB Command is not available 2020-02-19 10:57:57 +01:00
Jens Langhammer
e27a05a7fc lib/sentry: ignore django validation error 2020-02-19 10:54:29 +01:00
Jens Langhammer
e4886f0c6f new release: 0.8.0-beta 2020-02-19 10:29:52 +01:00
Jens Langhammer
8b2ce5476a policies/expression: add annotation to update docs, name jinja filters/funcs more clearly 2020-02-19 10:23:42 +01:00
Jens Langhammer
1b82283a20 docs: update policy types, add docs for expression policies 2020-02-19 10:21:28 +01:00
Jens Langhammer
7f3d0113c2 policies: remove redundant policies which can be easily implemented with expressions 2020-02-19 09:51:15 +01:00
Jens Langhammer
0f6dd33a6b api: add expression policy to API URLs 2020-02-19 09:49:57 +01:00
Jens Langhammer
5b79b3fd22 policies/expression: move evaluation code into separate class 2020-02-19 09:49:38 +01:00
Jens Langhammer
d68c72f1fa lib: remove method_decorator Mixins 2020-02-18 22:28:47 +01:00
Jens Langhammer
9267d0c1dd all: general maintenance, prepare for pyright 2020-02-18 22:12:51 +01:00
Jens Langhammer
865abc005a sources/oauth: remove leading spaces in default URLs 2020-02-18 21:49:53 +01:00
Jens Langhammer
a2725d5b82 sources/oauth: remove redundant OAuth2Clients 2020-02-18 21:49:40 +01:00
Jens Langhammer
4a05bc6e02 sources/oauth: improve default OAuth2 Client, send access_token as Bearer Authz 2020-02-18 21:49:23 +01:00
Jens Langhammer
4e8238603a all: cleanup logging to be structured 2020-02-18 21:35:58 +01:00
Jens Langhammer
ff25c1c057 admin: load custom policy templates 2020-02-18 21:35:21 +01:00
Jens Langhammer
78cddca0d7 admin: fix user object being overwritten when deleting a user 2020-02-18 21:35:06 +01:00
Jens Langhammer
4742ee1d93 docs: add aws integration 2020-02-18 20:14:54 +01:00
Jens Langhammer
0c2dc309e7 providers/saml: fix metadata URLs using incorrect params 2020-02-18 20:14:28 +01:00
Jens Langhammer
144935d10f docs: add ansible tower/awx integration guide 2020-02-18 17:33:31 +01:00
Jens Langhammer
74ad1b6759 factors: strip port for domain check 2020-02-18 17:05:30 +01:00
Jens Langhammer
591d2f89a1 audit: log event creation on save 2020-02-18 17:05:11 +01:00
Jens Langhammer
7c353f9297 sources/oauth: remove supervisr 2020-02-18 17:01:08 +01:00
Jens Langhammer
cd1af15c56 core: sort applications by name 2020-02-18 17:00:56 +01:00
Jens Langhammer
878169ea2e core: only show icon on login page if defined 2020-02-18 17:00:26 +01:00
Jens Langhammer
38dfb03668 new release: 0.7.17-beta 2020-02-18 16:29:23 +01:00
Jens Langhammer
e2631cec0e factors/view: show concise error message when domain is mis-configured 2020-02-18 16:29:04 +01:00
Jens Langhammer
5dad853f8a docs: use note blocks instead of code blocks for product description 2020-02-18 15:34:41 +01:00
Jens Langhammer
9f00843441 policies/expression: add Expression based policy 2020-02-18 15:12:50 +01:00
Jens Langhammer
f31cd7dec6 core: check PropertyMapping's expression syntax before save 2020-02-18 15:12:05 +01:00
Jens Langhammer
1c1afca31f providers/saml: fix linting error 2020-02-18 11:34:04 +01:00
Jens Langhammer
fbd4bdef33 providers/saml: add modal to show metadata without download 2020-02-18 10:57:43 +01:00
Jens Langhammer
5b22f9b6c3 providers/saml: transition to dataclass from dict, cleanup unused templates, add missing autosubmit_form 2020-02-18 10:57:30 +01:00
Jens Langhammer
083e317028 lib: add helper method for 400 response with message 2020-02-18 10:13:53 +01:00
Jens Langhammer
95416623b3 sources/ldap: better handle property mapping evaluation errors 2020-02-18 10:13:05 +01:00
Jens Langhammer
813b2676de providers/saml: better handle PropertyMapping evaluation errors 2020-02-18 10:12:42 +01:00
Jens Langhammer
aeca66a288 providers/saml: change assertion_valid_not_before default to -5 minutes 2020-02-17 21:32:23 +01:00
Jens Langhammer
04a5428148 new release: 0.7.16-beta 2020-02-17 21:02:54 +01:00
Jens Langhammer
73b173b92a admin: fix form missing on update pages 2020-02-17 21:02:47 +01:00
Jens Langhammer
7cbf20a71c admin: fix CodeMirror field not loading correctly 2020-02-17 21:02:35 +01:00
Jens Langhammer
7a98e6d92b new release: 0.7.15-beta 2020-02-17 20:45:56 +01:00
Jens L
49e915f98b Merge pull request #4 from BeryJu/propertymapping-jinja
PropertyMappings using Jinja
2020-02-17 20:45:04 +01:00
Jens Langhammer
3aa2f1e892 *: propertymapping template -> expression 2020-02-17 20:38:14 +01:00
Jens Langhammer
bc4b7ef44d providers/saml: add custom help text for templates, add docs for User Object reference 2020-02-17 20:30:14 +01:00
Jens Langhammer
9400b01a55 admin: parameterise generic from's base template 2020-02-17 20:29:41 +01:00
Jens Langhammer
e57da71dcf sources/ldap: update LDAP source to use new property mappings 2020-02-17 17:55:48 +01:00
Jens Langhammer
7268afaaf9 providers/saml: update to new PropertyMappings 2020-02-17 17:50:11 +01:00
Jens Langhammer
205183445c admin: add support for template field and Jinja2 highlighting 2020-02-17 17:48:53 +01:00
Jens Langhammer
a08bdfdbcd root: remove prospector from Pipfile as it causes lock issues, install in CI 2020-02-17 17:48:18 +01:00
Jens Langhammer
e6c47fee26 core: add template field to PropertyMapping 2020-02-17 17:47:51 +01:00
Jens Langhammer
a5629c5155 providers/saml: add changeable signature and digest algorithm 2020-02-17 16:28:18 +01:00
Jens Langhammer
41689fe3ce sources/* add missing migrations 2020-02-17 16:27:35 +01:00
Jens Langhammer
8e84208e2c new release: 0.7.14-beta 2020-02-17 15:42:14 +01:00
Jens Langhammer
32a48fa07a providers/saml: more typehints 2020-02-17 15:40:49 +01:00
Jens Langhammer
773a9c0692 policies/engine: fix cached policy results being ignored 2020-02-17 15:37:51 +01:00
Jens Langhammer
8808e3afe0 policies/engine: set mp start method to fork to fix issues under macOS 2020-02-17 15:20:30 +01:00
Jens Langhammer
ecea85f8ca lib/config: remove autoreload handler as this API is gone in django 3 2020-02-17 15:20:11 +01:00
Jens Langhammer
5dfa141e35 root/wsgi: log requests with event name of request 2020-02-16 14:36:31 +01:00
Jens Langhammer
447e81d0b8 providers/saml: handle uncompressed SAML AuthNRequest 2020-02-16 14:08:35 +01:00
Jens Langhammer
e138076e1d sources/saml: move labels from forms to models 2020-02-16 12:34:46 +01:00
Jens Langhammer
721d133dc3 sources/oauth: move labels from form to models 2020-02-16 12:34:33 +01:00
Jens Langhammer
75b687ecbe sources/ldap: move labels from form to models 2020-02-16 12:30:45 +01:00
Jens Langhammer
bdd1863177 providers/saml: move field labels from Form into models 2020-02-16 12:30:26 +01:00
Jens Langhammer
e5b85e8e6a providers/saml: move default saml properties to DB 2020-02-16 12:29:53 +01:00
Jens Langhammer
d7481c9de7 new release: 0.7.13-beta 2020-02-14 15:35:05 +01:00
Jens Langhammer
571373866e providers/saml: some more cleanup, fix get_time_string when called without argument 2020-02-14 15:34:24 +01:00
Jens Langhammer
e36d7928e4 providers/saml: big cleanup, simplify base processor
add New fields for
 - assertion_valid_not_before
 - assertion_valid_not_on_or_after
 - session_valid_not_on_or_after
allow flexible time durations for these fields
fall back to Provider's ACS if none is specified in AuthNRequest
2020-02-14 15:19:48 +01:00
Jens Langhammer
2be026dd44 global: fix import order 2020-02-14 15:17:40 +01:00
Jens L
d5b9de3569 Merge pull request #3 from BeryJu/dependabot/pip/django-2.2.10
build(deps): bump django from 2.2.9 to 2.2.10
2020-02-12 09:31:13 +01:00
dependabot[bot]
e22620b0ec build(deps): bump django from 2.2.9 to 2.2.10
Bumps [django](https://github.com/django/django) from 2.2.9 to 2.2.10.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/2.2.9...2.2.10)

Signed-off-by: dependabot[bot] <support@github.com>
2020-02-12 03:20:09 +00:00
Jens Langhammer
ba74a3213d *: upgrade python 3.7 to 3.8 2020-01-19 21:03:01 +01:00
Jens Langhammer
d9ecb7070d core: add more prometheus metrics 2020-01-19 21:01:26 +01:00
Jens Langhammer
fc4a46bd9c root: fix credential variables overwriting each other 2020-01-17 11:16:23 +01:00
Jens Langhammer
78301b7bab docs: fix site_url 2020-01-17 10:55:20 +01:00
Jens Langhammer
7bf7bde856 root: fix prometheus path in ServiceMonitor, return WWW-Authenticate header so basic auth is sent 2020-01-17 10:55:11 +01:00
Jens Langhammer
9bdff14403 providers/app_gw: fix wrong UPSTREAM parameter 2020-01-03 09:15:07 +01:00
Jens Langhammer
f124314eab new release: 0.7.12-beta 2020-01-02 20:22:44 +01:00
Jens Langhammer
684e4ffdcf providers/app_gw: fix formatting 2020-01-02 20:22:36 +01:00
Jens Langhammer
d9ff5c69c8 providers/app_gw: fix assignment of response_types 2020-01-02 20:20:10 +01:00
Jens Langhammer
8142e3df45 providers/oidc: fix application property of wrong object being used 2020-01-02 20:19:53 +01:00
Jens Langhammer
73920899de static: use current pixie image 2020-01-02 20:09:30 +01:00
Jens Langhammer
13666965a7 actions: fix build over gatekeeper 2020-01-02 16:55:30 +01:00
Jens Langhammer
86f16e2781 providers/oidc: fix incorrectly sorted imports 2020-01-02 16:42:52 +01:00
Jens Langhammer
2ed8e72c62 new release: 0.7.11-beta 2020-01-02 16:38:11 +01:00
Jens Langhammer
edeed18ae8 providers/oidc: fix error when using with app_gw 2020-01-02 16:38:01 +01:00
Jens Langhammer
d24133d8a2 core: fix _redirect_with_qs appending an array to the URL 2020-01-02 16:14:56 +01:00
Jens Langhammer
b9733e56aa providers/app_gw: fix passbook domain being empty 2020-01-02 16:09:17 +01:00
Jens Langhammer
cd34413914 providers/app_gw: separate host field into external_ and internal_ 2020-01-02 16:09:04 +01:00
Jens Langhammer
c3a4a76d43 providers/app_gw: fix Client's response_type not being set 2020-01-02 16:06:32 +01:00
Jens Langhammer
a59a29b256 actions: also build gatekeeper on release 2020-01-02 15:55:39 +01:00
Jens Langhammer
dce1edbe53 new release: 0.7.10-beta 2020-01-02 14:54:52 +01:00
Jens Langhammer
264d43827a actions: create release based on version number, not tag name 2020-01-02 14:46:44 +01:00
Jens Langhammer
6207226bdf new release: 0.7.9-beta 2020-01-02 14:09:58 +01:00
Jens Langhammer
ebf33f39c9 actions: fix missing backslash for dockerbuild 2020-01-02 14:09:42 +01:00
Jens Langhammer
696cd1f247 new release: 0.7.8-beta 2020-01-02 14:03:36 +01:00
Jens Langhammer
b7b3abc462 actions: automatically create release when version/* tag is created, run tests before creating release 2020-01-02 13:49:24 +01:00
Jens Langhammer
575739d07c ci: add bandit for static security checks 2020-01-02 13:41:49 +01:00
Jens Langhammer
2d7e70eebf audit: fix import order 2020-01-02 13:20:41 +01:00
Jens Langhammer
387f3c981f audit: fix error when trying to save models with UUID as PK 2020-01-02 13:12:23 +01:00
Jens Langhammer
865435fb25 actions: fix path to helm chart 2020-01-02 11:38:54 +01:00
Jens Langhammer
b10c5306b9 actions: ensure release gets only executed on release creation 2020-01-02 11:37:46 +01:00
Jens Langhammer
7c706369cd new release: 0.7.7-beta 2020-01-02 11:22:08 +01:00
Jens Langhammer
20dd6355c1 actions: run unittests in final docker images after build 2020-01-02 11:20:32 +01:00
Jens Langhammer
ba8d5d6e27 actions: push both versioned and :latest tags 2020-01-02 11:19:55 +01:00
Jens Langhammer
c448f87027 new release: 0.7.6-beta 2020-01-02 10:34:34 +01:00
Jens Langhammer
2b8c70a61f actions: separate actions files for ci and release 2020-01-02 10:33:04 +01:00
Jens Langhammer
9d7ed9a0ed new release: 0.7.7-beta 2019-12-31 14:02:01 +01:00
Jens Langhammer
ff69b4affe actions: fix build not running correctly 2019-12-31 14:01:58 +01:00
Jens Langhammer
d77afd1ded new release: 0.7.6-beta 2019-12-31 13:47:39 +01:00
Jens Langhammer
c3909f9196 actions: run build only on release 2019-12-31 13:44:27 +01:00
Jens Langhammer
fa55ba5ef0 actions: since actions has no easy way to get tags, hardcode version in ci and bump with bumpversion 2019-12-31 13:40:24 +01:00
Jens Langhammer
766518ee0e audit: sanitize kwargs when creating audit event 2019-12-31 13:33:07 +01:00
Jens Langhammer
74b2b26a20 ci: disable pylint's bad-continuation to please black 2019-12-31 13:17:35 +01:00
Jens Langhammer
4ebbc6f065 gh-actions: fix dependencies on isort 2019-12-31 12:52:15 +01:00
Jens Langhammer
3bd1eadd51 all: implement black as code formatter 2019-12-31 12:51:16 +01:00
Jens Langhammer
8eb3f0f708 ci: upgrade pylint to latest version
core: also upgrade kombu as https://github.com/celery/kombu/issues/1101 is fixed now
2019-12-31 12:45:29 +01:00
Jens Langhammer
31ea2e7139 audit: fix internal server error from passing models 2019-12-31 11:40:03 +01:00
Jens Langhammer
323b4b4a5d actions: fix helm using wrong path for chart 2019-12-30 10:42:46 +01:00
Jens Langhammer
7b8e1bea92 docker: fix old dockerfiles being used, remove all gitlab references 2019-12-30 10:34:31 +01:00
Jens Langhammer
f986dc89ad all: migrate to github 2019-12-30 10:25:35 +01:00
Jens Langhammer
b21fd10093 new release: 0.7.5-beta 2019-12-16 22:05:22 +01:00
Jens Langhammer
6f9c19b142 misc: update bumpversion config 2019-12-16 22:05:16 +01:00
Jens Langhammer
f45643ca87 Merge branch '45-helm-3' into 'master'
Resolve "Upgrade to helm 3 for packaging"

Closes #45

See merge request BeryJu.org/passbook!35
2019-12-16 20:49:34 +00:00
Jens Langhammer
85f8bea784 ci: replace helm with helm3 2019-12-14 14:34:34 +01:00
Jens Langhammer
b428ec5237 providers/oidc: remove duplicate fields 2019-12-14 14:28:36 +01:00
Jens Langhammer
92428529ad docs: add sentry 2019-12-14 14:28:14 +01:00
Jens Langhammer
f6761b5b0b docs: fix harbor site not being included 2019-12-13 15:45:50 +01:00
Jens Langhammer
307b04f4ca docs: add harbor integration, cleanup 2019-12-13 15:36:09 +01:00
Jens Langhammer
6a520a5697 docs: add rancher integration 2019-12-13 13:53:30 +01:00
Jens Langhammer
f22dbba931 providers/saml: add UID field 2019-12-13 13:45:10 +01:00
Jens Langhammer
82cf482fba Merge branch 'docs' into 'master'
Docs

See merge request BeryJu.org/passbook!33
2019-12-12 22:06:20 +00:00
Jens Langhammer
a6afb99edd docs: build docs on new version 2019-12-12 18:13:38 +01:00
Jens Langhammer
ac5f8465b9 docs: add GitLab integration docs 2019-12-12 18:12:14 +01:00
Jens Langhammer
218acb9e38 docs: add providers and sources 2019-12-12 18:00:23 +01:00
Jens Langhammer
927c718fdd docs: add some more info to mkdocs 2019-12-12 09:55:10 +01:00
Jens Langhammer
b7a6d6e739 docs: add docs for property mappings, switch to material theme 2019-12-10 11:25:34 +01:00
Jens Langhammer
0946d6a25d docs: add initial structure, add docs for policies and factors 2019-12-09 21:00:45 +01:00
Jens Langhammer
c1e98e2f0c Merge branch 'master' into docs 2019-12-09 16:49:05 +01:00
Jens Langhammer
807cbbeaaf audit: rewrite to be independent of django http requests, allow custom actions 2019-12-05 16:14:08 +01:00
Jens Langhammer
6c358c4e0a misc: run coverage before other tasks to find bugs easier 2019-12-05 16:03:31 +01:00
Jens Langhammer
74cd0bc08f all(minor): remove old, unused code 2019-12-05 15:07:37 +01:00
Jens Langhammer
b08ec0477e all(minor): replace django-ipware with custom implementation 2019-12-05 14:33:55 +01:00
Jens Langhammer
328c999cb9 ci(minor): reenable prospector 2019-12-05 14:31:51 +01:00
Jens Langhammer
c37e382c15 root(minor): fix incorrect user IP being shown 2019-12-02 18:05:06 +01:00
Jens Langhammer
784dd0fdd6 root(minor): fix unnecessary redirect for prometheus 2019-12-02 18:04:55 +01:00
Jens Langhammer
e6256cb9c8 root(minor): add script to run coverage 2019-12-02 16:43:50 +01:00
Langhammer, Jens
4520e3f8b8 deploy(minor): fix wrong health-check for static deployment 2019-11-20 15:55:39 +01:00
Langhammer, Jens
23146de2bf new release: 0.7.4-beta 2019-11-20 13:15:46 +01:00
Langhammer, Jens
e24f4fe3a8 compose(minor): add error_reporting flag 2019-11-20 13:13:10 +01:00
Langhammer, Jens
8e6b69f96f ci(minor): disable gatekeeper build due to quay issue 2019-11-20 13:12:51 +01:00
Langhammer, Jens
979bea17ed root(minor): disable error reporting by default 2019-11-20 13:12:37 +01:00
Langhammer, Jens
30dba285d9 root(minor): remove build stanza from docker-compose as it causes issues 2019-11-20 13:08:32 +01:00
Langhammer, Jens
99fadf2e55 new release: 0.7.3-beta 2019-11-19 18:14:06 +01:00
Langhammer, Jens
b606e3d0cb static(minor): remove nginx config from bumpversion 2019-11-19 18:14:03 +01:00
Langhammer, Jens
be642bc874 root(major): fix dbbackup not working with prometheus 2019-11-19 18:08:25 +01:00
Langhammer, Jens
49a347b32f static(major): switch to pixie for static files 2019-11-19 18:00:29 +01:00
Langhammer, Jens
089b48aad1 Merge branch 'agw' 2019-11-11 18:14:03 +01:00
Langhammer, Jens
2997cb83b1 providers/appgw(major): rewrite to use oauth2_proxy 2019-11-11 18:13:46 +01:00
Langhammer, Jens
08f0aca894 provider/oidc(minor): include claims in id_token 2019-11-11 13:19:54 +01:00
Langhammer, Jens
80ea7c40b7 helm(minor): fix monitoring username not being in b64 2019-11-08 15:00:08 +01:00
Langhammer, Jens
019a0cb14d new release: 0.7.2-beta 2019-11-08 14:26:52 +01:00
Langhammer, Jens
97290755e7 root(major): re-add missing dependencies 2019-11-08 14:26:49 +01:00
Langhammer, Jens
7f150c96b4 new release: 0.7.1-beta 2019-11-08 14:04:59 +01:00
Langhammer, Jens
73558f30d1 root(minor): revert to django_redis cache 2019-11-08 13:58:10 +01:00
Langhammer, Jens
dfcfd87644 root(minor): remove old deps from pipfile 2019-11-08 13:55:58 +01:00
Langhammer, Jens
2c0f0a68a8 helm(major): add prometheus rules, add switch to enable/disable monitoring 2019-11-08 13:49:28 +01:00
Langhammer, Jens
3d73aac3ab helm(minor): add service monitors 2019-11-08 12:24:42 +01:00
Langhammer, Jens
e4fbcd3735 root(major): add prometheus 2019-11-08 12:23:51 +01:00
Langhammer, Jens
44c0eb37cf sources/saml(minor): fix lint issue 2019-11-07 18:02:59 +01:00
Langhammer, Jens
adc3dcc2c4 sources/saml(minor): disallow login if source is not enabled 2019-11-07 17:35:25 +01:00
Langhammer, Jens
bac8227371 sources/saml(minor): fix fields not being shown 2019-11-07 17:28:59 +01:00
Langhammer, Jens
73d4d9dfe0 admin(major): fix incorrect permissions being set 2019-11-07 17:25:36 +01:00
Jens Langhammer
afdac5f3f8 Merge branch '10-saml-sp' into 'master'
Resolve "Add SAML SP"

Closes #10

See merge request BeryJu.org/passbook!31
2019-11-07 16:05:28 +00:00
Langhammer, Jens
dabce36667 sources/saml(major): add saml SP 2019-11-07 17:02:56 +01:00
Langhammer, Jens
3bd56ce522 api(minor): fix invalid fieldls being selected 2019-11-07 10:30:22 +01:00
Langhammer, Jens
540419d5c1 helm(minor): update chart to use apps/v1, remove deps from git 2019-11-07 10:24:27 +01:00
Jens Langhammer
ed1fcc3930 new release: 0.7.0-beta 2019-11-02 16:31:23 +00:00
Jens Langhammer
c22ddc5394 root(minor): catch keyboardinput and s3 error from sentry 2019-11-02 16:27:28 +00:00
Jens Langhammer
0544864a3f Merge branch '42-attributeerror-nonetype-object-has-no-attribute-startswith' into 'master'
Resolve "AttributeError: 'NoneType' object has no attribute 'startswith'"

Closes #42

See merge request BeryJu.org/passbook!32
2019-11-01 12:53:43 +00:00
Jens Langhammer
0b9fc9e444 root(minor): fallback to empty string if no Host header ise set 2019-11-01 12:50:38 +00:00
Langhammer, Jens
e862b97005 all(major): add API for all objects 2019-10-28 17:55:36 +01:00
Langhammer, Jens
cffe09b02e all(major): add most models to API 2019-10-28 17:40:57 +01:00
Langhammer, Jens
846a86fb62 fix lint 2019-10-28 14:44:46 +01:00
Langhammer, Jens
463c130351 core(major): add api for most simple objects 2019-10-28 14:27:43 +01:00
Langhammer, Jens
ffca957838 audit(major): AuditEntry -> Event 2019-10-28 14:26:34 +01:00
Langhammer, Jens
543e949a48 api(minor): start with api v2 2019-10-28 14:26:07 +01:00
Langhammer, Jens
feb80049aa Merge branch 'master' into guardian 2019-10-25 22:18:13 +02:00
Langhammer, Jens
5c59c8ccb6 new release: 0.6.11-beta 2019-10-15 16:56:24 +02:00
Jens Langhammer
1fadd82c65 Merge branch '41-commandconnectorerror-error-running-pg_dump-passbook-host-passbook-postgresql-username-pos' into 'master'
Resolve "CommandConnectorError: Error running:  pg_dump passbook --host=passbook-postgresql --username=pos..."

Closes #41

See merge request BeryJu.org/passbook!30
2019-10-15 14:53:59 +00:00
Langhammer, Jens
7e7736126d docker(minor): install pg client for pg_dump 2019-10-15 16:51:42 +02:00
Langhammer, Jens
5e0915afce helm(major): update postgresql to 11 2019-10-15 16:51:21 +02:00
Langhammer, Jens
bf6c9e8c4a new release: 0.6.10-beta 2019-10-15 16:05:51 +02:00
Langhammer, Jens
3353aa0298 root(minor): disable uwsgi request loggin and use custom logging instead 2019-10-15 15:57:37 +02:00
Langhammer, Jens
d4cb1a98c7 policy(major): simplify PolicyEngine API, add flag to ignore cache for debug purposes 2019-10-15 15:44:59 +02:00
Langhammer, Jens
13f4ea0b8b root(minor): sort keys in log output 2019-10-15 15:40:38 +02:00
Langhammer, Jens
261d57ad7b Merge branch 'master' into guardian
# Conflicts:
#	Pipfile
#	Pipfile.lock
#	passbook/admin/views/invitations.py
#	passbook/admin/views/policy.py
#	passbook/admin/views/providers.py
#	passbook/admin/views/sources.py
#	passbook/admin/views/users.py
2019-10-15 15:09:11 +02:00
Langhammer, Jens
4086252979 core(major): add integrated database backup 2019-10-15 13:52:33 +02:00
Langhammer, Jens
8bdf12cff1 recovery(minor): add unittests 2019-10-14 17:12:56 +02:00
Langhammer, Jens
65a065c4ee policy(minor): add unittests for policy engine 2019-10-14 16:08:24 +02:00
Langhammer, Jens
a691ee529c new release: 0.6.9-beta 2019-10-14 15:00:30 +02:00
Langhammer, Jens
f1c4a62612 policy(major): fix error when policy.negate is enabled 2019-10-14 15:00:20 +02:00
Langhammer, Jens
358e39ced0 core(major): remove action field from policy 2019-10-14 13:57:38 +02:00
Langhammer, Jens
48c3f68cfc deploy(minor): fix helm syntax for configmap 2019-10-14 13:45:27 +02:00
Langhammer, Jens
1849a7c383 ci(minor): use getsentry/sentry-cli for sentry notification, use set-commits 2019-10-14 13:42:43 +02:00
Langhammer, Jens
82d14f37c3 new release: 0.6.8-beta 2019-10-14 13:18:51 +02:00
Langhammer, Jens
a0261eafa3 ci(minor): notify sentry about new releases 2019-10-14 13:16:36 +02:00
Langhammer, Jens
2a27325dfd admin(major): add pagination to all listviews 2019-10-14 13:15:42 +02:00
Langhammer, Jens
a6dee2e8ed admin(minor): fix sidebar disappearing when editing user 2019-10-14 13:14:54 +02:00
Langhammer, Jens
2ff1635696 core/sources(minor): refactor Source's property 2019-10-13 16:47:13 +02:00
Langhammer, Jens
1cb6b5e984 new release: 0.6.7-beta 2019-10-12 14:23:14 +02:00
Langhammer, Jens
1fe420fd80 admin(major): add YAMLField for attributes, add codemirror editor 2019-10-12 14:23:03 +02:00
Langhammer, Jens
50172e58d8 sources/ldap(minor): save ldap password for user upon successful bind 2019-10-12 14:00:34 +02:00
Langhammer, Jens
d7483d129f sources/ldap(minor): call set_unusable_password when creating new user 2019-10-12 13:59:52 +02:00
Langhammer, Jens
34ed0b3594 new release: 0.6.6-beta 2019-10-11 14:33:36 +02:00
Langhammer, Jens
f008a3e20c docker(minor): copy requirements-dev.txt from builder image 2019-10-11 14:33:30 +02:00
Langhammer, Jens
9de950220f core(minor): small css adjustment 2019-10-11 14:32:19 +02:00
Langhammer, Jens
567c90b4c6 new release: 0.6.5-beta 2019-10-11 14:26:20 +02:00
Langhammer, Jens
ae19236366 factors/email(minor): fix default timeout being 0, which breaks task 2019-10-11 14:24:58 +02:00
Langhammer, Jens
f9babe7089 core(minor): fix timezone warning when cleaning nonces 2019-10-11 14:23:59 +02:00
Jens Langhammer
78c74cd469 Merge branch 'ldap-rewrite' into 'master'
LDAP rewrite

See merge request BeryJu.org/passbook!28
2019-10-11 12:22:39 +00:00
Langhammer, Jens
32abb27e61 sources/ldap(minor): fix lint 2019-10-11 13:43:35 +02:00
Langhammer, Jens
8478b03892 sources/ldap(major): implement membership sync, add more settings 2019-10-11 13:41:12 +02:00
Langhammer, Jens
e972f2b289 Merge branch 'master' into ldap-rewrite 2019-10-11 12:53:56 +02:00
Langhammer, Jens
22c4fb1414 sources/ldap(major): add sync_users and sync_groups, rewrite auth_user method 2019-10-11 12:53:48 +02:00
Langhammer, Jens
0154def916 root(minor): allow subapps to define CELERY_BEAT_SCHEDULE 2019-10-11 12:47:29 +02:00
Langhammer, Jens
fc69b6851d core(minor): tags -> attributes, add attributes to user, add propertymappings to source 2019-10-11 12:47:06 +02:00
Langhammer, Jens
44a3c7fa5f Merge branch 'master' into ldap-rewrite 2019-10-11 10:24:12 +02:00
Langhammer, Jens
37111fd07b core(minor): merge migrations 2019-10-10 17:41:22 +02:00
Jens Langhammer
4e6653e299 ldap(major): start rewrite 2019-10-10 17:36:09 +02:00
Langhammer, Jens
143a575369 Merge branch 'master' into guardian
# Conflicts:
#	Pipfile
#	Pipfile.lock
#	passbook/core/models.py
2019-10-10 17:29:34 +02:00
Langhammer, Jens
c782585287 ci(minor): re-enable pylint 2019-10-10 17:22:56 +02:00
Langhammer, Jens
7718b3b3b8 deploy(minor): move celerybeat-schedule to /tmp 2019-10-10 17:13:23 +02:00
Langhammer, Jens
8ff9e72972 docker(major): use buster instead of stretch, simplify base image, use pyuwsgi for wheels 2019-10-10 17:13:06 +02:00
Langhammer, Jens
ef6ef68a39 ci(minor): only keep latest base and dev images 2019-10-10 16:11:18 +02:00
Langhammer, Jens
48a04744e0 new release: 0.6.4-beta 2019-10-10 16:09:38 +02:00
Jens Langhammer
6446ca8bb2 Merge branch '19-lockout-prevention' into 'master'
add lockout prevention

See merge request BeryJu.org/passbook!27
2019-10-10 12:37:14 +00:00
Langhammer, Jens
b9991465ee recovery(new): add recovery app to create recovery links 2019-10-10 14:05:16 +02:00
Langhammer, Jens
3d8242be06 core(minor): add new, optional description field to nonce 2019-10-10 14:04:58 +02:00
Langhammer, Jens
344a8817c3 admin(minor): fix linting 2019-10-10 13:05:03 +02:00
Langhammer, Jens
3afb0d4f6d admin(minor): remove partial API 2019-10-10 13:04:20 +02:00
Langhammer, Jens
c9714893bb admin(major): rewrite all views to use guardian mixins 2019-10-10 13:01:49 +02:00
Langhammer, Jens
3185a86b22 core(minor): add separate permission to reset user's password 2019-10-10 13:01:36 +02:00
Langhammer, Jens
a53f7a49ac root(minor): start implementing guardian 2019-10-10 10:45:51 +02:00
Langhammer, Jens
ca3bcc565d ui(minor): simplify top navigation 2019-10-10 10:02:48 +02:00
Langhammer, Jens
432176ea2f docker(minor): give user a fixed UID, use --chown flag for docker COPY 2019-10-10 09:36:28 +02:00
Jens Langhammer
c1dae0b599 sources/oauth(minor): fix wrong settings reference 2019-10-09 19:46:23 +02:00
Langhammer, Jens
e70d3b6286 new release: 0.6.3-beta 2019-10-09 14:44:50 +02:00
Langhammer, Jens
17e6bc921b core(minor): fix import order 2019-10-09 14:37:40 +02:00
Langhammer, Jens
46111e7cac deploy(minor): downgrade kombu to fix redis error
https://github.com/celery/kombu/issues/1063
2019-10-09 14:32:20 +02:00
Langhammer, Jens
3b7e47dbe2 settings(minor): use cached_db for session, use localhost as domain 2019-10-09 14:30:53 +02:00
Langhammer, Jens
fff99f0e3d deploy(minor): use SERVER_TAG, fix static container 2019-10-09 14:29:44 +02:00
Langhammer, Jens
2e15b24f0a *(minor): switch has_user_settings to return Optional dataclass instead of tuple 2019-10-09 12:47:14 +02:00
Langhammer, Jens
088b9592cd core(minor): remove unused code 2019-10-08 15:04:38 +02:00
Langhammer, Jens
b1e4e32b83 providers/oidc(minor): correctly create audit entry on authz 2019-10-08 14:34:59 +02:00
Langhammer, Jens
d91a852eda factors/email(minor): start rebuilding email integration as factor 2019-10-08 14:30:17 +02:00
Langhammer, Jens
171c5b9759 factors/password(minor): remove form from core 2019-10-08 14:23:02 +02:00
Langhammer, Jens
64290b2a37 admin(minor): add view to create user 2019-10-08 11:27:19 +02:00
Langhammer, Jens
72769b8a0a lib(minor): cleanup default settings 2019-10-08 10:44:44 +02:00
Langhammer, Jens
1018309413 helm(minor): cleanup configmap, move secret_key to k8s secret 2019-10-08 10:44:25 +02:00
Jens Langhammer
6d0ecd228e new release: 0.6.2-beta 2019-10-07 21:24:56 +02:00
Jens Langhammer
40a651e66c docker(minor): ensure passbook user can write 2019-10-07 21:23:38 +02:00
Jens Langhammer
a390bb7b59 factors/otp(minor): fix old URLs 2019-10-07 21:23:25 +02:00
Jens Langhammer
245ec65cbb helm(minor): remove default postgres password 2019-10-07 21:23:15 +02:00
Langhammer, Jens
17eea4a10c new release: 0.6.1-beta 2019-10-07 18:53:04 +02:00
Langhammer, Jens
862fb0f5d2 deploy(minor): deploy more servers with more resources 2019-10-07 18:41:43 +02:00
Langhammer, Jens
ec73b53340 providers/saml(minor): fix last wrong urls names 2019-10-07 18:36:09 +02:00
Langhammer, Jens
9110f7fee3 helm(minor): fix worker not starting correctly 2019-10-07 17:41:26 +02:00
Langhammer, Jens
54cc1fdeef helm(minor): re-add volumes 2019-10-07 17:22:35 +02:00
Langhammer, Jens
8f42a7f0b4 new release: 0.6.0-beta 2019-10-07 17:18:19 +02:00
Langhammer, Jens
2c221ea819 providers/oauth(minor): fix import order 2019-10-07 17:14:52 +02:00
Langhammer, Jens
93e0441b58 helm(minor): don't directly mount configmap 2019-10-07 17:14:08 +02:00
Langhammer, Jens
7f1455cb12 helm(minor): disable redis cluster & persistence by default 2019-10-07 17:01:27 +02:00
Langhammer, Jens
59fc223a85 factors/captcha(minor): load correct keys 2019-10-07 16:58:06 +02:00
Langhammer, Jens
0a6f555c23 otp(minor): disable autocomplete for code input 2019-10-07 16:57:54 +02:00
Langhammer, Jens
6a4233d6fd providers/oauth(minor): fix urls not being mounted in the right path 2019-10-07 16:57:36 +02:00
Langhammer, Jens
15fa7e9652 ui(minor): merge menus 2019-10-07 16:50:13 +02:00
Langhammer, Jens
f2acc154cd *(minor): small refactor 2019-10-07 16:33:48 +02:00
Langhammer, Jens
d21ec6c9a5 root(minor): get rid of duplicate settings 2019-10-04 16:09:35 +02:00
Langhammer, Jens
43dd858cd5 ci(minor): fix from in dockerfile 2019-10-04 14:04:51 +02:00
Langhammer, Jens
34cbf5f702 new release: 0.5.0-beta 2019-10-04 13:55:13 +02:00
Langhammer, Jens
3c6e94b6a8 ci(minor): fix path in bumpversion config 2019-10-04 13:55:12 +02:00
Langhammer, Jens
1cd149c815 policy(minor): fix linting 2019-10-04 13:49:27 +02:00
Langhammer, Jens
4c6f562805 policy(minor): fix deadlock issue 2019-10-04 13:44:26 +02:00
Langhammer, Jens
e59c4ec1c7 root(minor): cleanup, remove unused log 2019-10-04 13:43:47 +02:00
Langhammer, Jens
1169db7530 docker(minor): move docker-related files into separate folder 2019-10-04 12:45:19 +02:00
Langhammer, Jens
1453008796 wsgi(minor): add proper request logging 2019-10-04 12:44:59 +02:00
Langhammer, Jens
2209b6d603 deploy(minor): fix robots.txt not being in the right path
fix path matching in docker compose
2019-10-04 12:01:38 +02:00
Langhammer, Jens
ccbc0384f9 deploy(minor): remove app-gw, add robots.txt 2019-10-04 11:57:41 +02:00
Langhammer, Jens
a48924c896 docker(minor): switch to debian based image so we can use wheels 2019-10-04 11:50:52 +02:00
Langhammer, Jens
dc8d8dd2b6 deploy(minor): add docker-compose file for easy testing 2019-10-04 11:50:26 +02:00
Langhammer, Jens
afca94ceb8 policy(minor): improve loading of policy subclasses 2019-10-04 10:22:06 +02:00
Langhammer, Jens
0b86231a36 *(minor): make better use of structured logging 2019-10-04 10:21:33 +02:00
Langhammer, Jens
c0df1f38b8 *(minor): remove __name__ param from get_logger 2019-10-04 10:08:53 +02:00
Langhammer, Jens
2b8fed8f4e saml_idp(minor): rewrite to use defusedxml instead of bs4 2019-10-04 09:50:25 +02:00
Langhammer, Jens
c7322a32a0 app_gw(minor): remove current implementation 2019-10-04 09:28:28 +02:00
Jens Langhammer
64b75cab84 policy(minor): add data class for policy request 2019-10-03 10:45:31 +02:00
Jens Langhammer
f58bc61999 new release: 0.4.2-beta 2019-10-02 21:05:51 +00:00
Jens Langhammer
fb8ccc0283 lint(minor): fix import order 2019-10-02 21:05:37 +00:00
Jens Langhammer
c38012f147 new release: 0.4.1-beta 2019-10-02 21:04:16 +00:00
Jens Langhammer
3676ff21c2 helm(minor): use postgres 4.2.2 2019-10-02 21:03:39 +00:00
Jens Langhammer
920e705d75 policy(minor): lookup correct policy subclass 2019-10-02 22:28:58 +02:00
Jens Langhammer
de0b137b1e policy(minor): improve error handling 2019-10-02 22:28:39 +02:00
Jens Langhammer
d44ac6e2a3 static(minor): fix build path for static image 2019-10-02 22:16:48 +02:00
Jens Langhammer
71039a4012 helm(minor): fix p2 to passbook 2019-10-02 22:16:32 +02:00
Langhammer, Jens
8745ac7932 new release: 0.4.0-beta 2019-10-01 17:01:30 +02:00
Langhammer, Jens
7f70048423 ci(minor): disable pylint since its currently broken upstream 2019-10-01 16:53:09 +02:00
Langhammer, Jens
97dbfc8885 req(minor): fix dependency issue by downgrading prospector 2019-10-01 15:54:29 +02:00
Langhammer, Jens
149ea22a93 k8s(minor): switch to uwsgi 2019-10-01 15:43:06 +02:00
Langhammer, Jens
404ed5406d k8s(minor): remove passwords from configmap 2019-10-01 15:42:55 +02:00
Langhammer, Jens
b8656858ec k8s(minor): load secrets as env vars 2019-10-01 15:42:14 +02:00
Langhammer, Jens
6b0f0e8993 deploy(minor): use 5.x postgresql chart for psql 10.x 2019-10-01 15:33:43 +02:00
Langhammer, Jens
aec1ccd88d root(minor): fix redis password not being loaded 2019-10-01 15:30:35 +02:00
Langhammer, Jens
bee5c200b6 docker(minor): fix static build failing 2019-10-01 15:30:22 +02:00
Langhammer, Jens
9d640efc88 new release: 0.3.0-beta 2019-10-01 13:50:50 +02:00
Langhammer, Jens
f0907841dd docker(minor): remove virtualenv from pipenv 2019-10-01 13:50:37 +02:00
Langhammer, Jens
2bffc12ef9 ci(minor): fix default settings so CI works 2019-10-01 13:22:38 +02:00
Langhammer, Jens
2ff9ec6522 ci(minor): fix not all packages being installed 2019-10-01 11:34:34 +02:00
Langhammer, Jens
43a54f5c54 ci(minor): install pipenv before testing 2019-10-01 11:12:59 +02:00
Langhammer, Jens
7bff2734aa lint(minor): fix all remaining pylint and prospector errors 2019-10-01 11:08:56 +02:00
Langhammer, Jens
84768c0ec6 helm(minor): remove rabbitmq 2019-10-01 10:48:55 +02:00
Langhammer, Jens
f4499a5459 *(minor): stdlib logging to structlog 2019-10-01 10:24:10 +02:00
Langhammer, Jens
b3aede5bba policy(minor): Move policy-related code to separate package 2019-10-01 10:17:39 +02:00
Langhammer, Jens
531ea1c039 build(minor): rename dockerfiles to be detected correctly 2019-09-30 18:05:42 +02:00
Langhammer, Jens
c2c5ff6912 config(minor): CONFIG.get -> CONFIG.y 2019-09-30 18:04:04 +02:00
Langhammer, Jens
9cddab8fd5 deploy(minor): switch to pipfile 2019-09-10 17:00:13 +02:00
Langhammer, Jens
06d15d8a27 new release: 0.2.8-beta 2019-07-22 17:18:07 +02:00
Langhammer, Jens
b5c711854b deploy: fix static deployment and static container 2019-07-22 17:17:53 +02:00
Langhammer, Jens
4cf6c36f34 new release: 0.2.7-beta 2019-07-22 15:54:34 +02:00
Langhammer, Jens
75a6f6c875 deploy: remove old files from bumpversion 2019-07-22 15:54:10 +02:00
Langhammer, Jens
62abe3f256 suspicious_policy: fix Request IP lookup 2019-07-22 15:46:41 +02:00
Langhammer, Jens
9296c41650 ci: add missing packaging dependency 2019-07-22 15:35:11 +02:00
Langhammer, Jens
7fb48fde6d deploy: add static deployment, add resource reservations/limits 2019-07-22 15:22:10 +02:00
Langhammer, Jens
174472bb45 all: get rid of individual requirements file, remove version from every module 2019-07-22 15:20:17 +02:00
Langhammer, Jens
17575ed921 deploy: rewrite docker files to be more stackable 2019-07-22 15:18:33 +02:00
Langhammer, Jens
b1b1a27444 client-packages: now deprecated 2019-07-22 15:17:58 +02:00
Jens Langhammer
f97a5eeefb api: *actually* fix drf dependency issue 2019-07-15 15:05:54 +00:00
Jens Langhammer
10fd96981e new release: 0.2.6-beta 2019-07-15 13:42:18 +00:00
Jens Langhammer
67e3eb549c api: fix wrong django-rest-framework dependency 2019-07-15 13:42:03 +00:00
Jens Langhammer
30a6d1f0b1 new release: 0.2.5-beta 2019-07-15 13:31:04 +00:00
Langhammer, Jens
3d1fa9f048 app_gw: Rewrite redirect responses (replace upstream location with server_name) 2019-07-09 15:28:52 +02:00
Jens Langhammer
1d2be6e68b root: fix sentry sending wrong release 2019-07-05 16:00:01 +02:00
Jens Langhammer
c21e343986 oidc_provider: fix error when creating a new provider 2019-07-05 15:59:52 +02:00
Jens Langhammer
ff37ed095c new release: 0.2.4-beta 2019-07-05 15:30:13 +02:00
Jens Langhammer
8623a2c3fc oidc_provider: fix error trying to create RSA Key before migrations are run 2019-07-05 15:27:04 +02:00
Jens Langhammer
23d277eaf1 remove oidc from OAuth2, add dedicated OIDC provider 2019-07-05 15:21:48 +02:00
Jens Langhammer
75ced59451 helm: fix syntax error 2019-07-05 15:21:12 +02:00
Jens Langhammer
bccf424c5e new release: 0.2.3-beta 2019-07-04 16:25:33 +02:00
Jens Langhammer
2f9ae40d20 client-sentry: fix 400 failing upload 2019-07-04 16:25:17 +02:00
Jens Langhammer
11e1eec3fb ci: fix new dependencies not being installed on the fly 2019-07-04 16:21:35 +02:00
Jens Langhammer
765c5633df helm: add appgw to ingress 2019-07-04 16:07:16 +02:00
Jens Langhammer
6344b1aafb helm: add deployment for appgw 2019-07-04 15:25:36 +02:00
Jens Langhammer
ed25801e6e core: revert to cherrypy for main webserver and use daphne only for app_gw 2019-07-04 15:23:05 +02:00
Jens Langhammer
4d0148193f root: migrate to new sentry instance 2019-07-03 17:35:54 +02:00
Jens Langhammer
804ae15c2e new release: 0.2.2-beta 2019-06-25 18:50:41 +02:00
Jens Langhammer
b35a9fad86 Fix linting errors with current build-base image 2019-06-25 18:50:37 +02:00
Jens Langhammer
a4f83bd28a new release: 0.2.1-beta 2019-06-25 18:25:27 +02:00
Jens Langhammer
796f83c3d0 Fix requirements file importing wrong path 2019-06-25 18:24:07 +02:00
Jens Langhammer
2099bbb713 new release: 0.2.0-beta 2019-06-25 18:16:14 +02:00
Jens Langhammer
67beba8f78 Fix wrong URLConf being loaded 2019-06-25 18:11:08 +02:00
Jens Langhammer
a798412e17 separate passbook.core into passbook.root and passbook.core
Move Main Django Project into passbook.root while passbook.core holds core functionality.

passbook.root contains main settings, ASGI & WSGI, celery and URLs.
2019-06-25 18:00:54 +02:00
Jens Langhammer
3b2c2d781f Fix typo 2019-06-25 17:59:51 +02:00
Jens Langhammer
98c844f3d6 improve OIDC compatibility 2019-06-25 17:57:25 +02:00
Jens Langhammer
2645bd0132 new release: 0.1.38-beta 2019-04-29 23:26:18 +02:00
Jens Langhammer
2c4fc56b49 Merge branch '27-rewrite-oauth-client-as-factor' into 'master'
Resolve "Rewrite OAuth Client as Factor"

Closes #27

See merge request BeryJu.org/passbook!14
2019-04-29 21:25:04 +00:00
Jens Langhammer
0ec1468058 remove unused import 2019-04-29 23:22:54 +02:00
Jens Langhammer
5d1a3043b2 create SSOLoginPolicy, which allows factors to be applied when user comes from SSO login
implement SESSIION_IS_SSO_LOGIN for OAuth Client and core MFA
2019-04-29 23:19:37 +02:00
Jens Langhammer
b46958d1f9 send session to task 2019-04-29 23:18:51 +02:00
Jens Langhammer
5daa8d5fe3 fix missing/wrong widget inputs 2019-04-29 23:16:04 +02:00
Jens Langhammer
31846f1d05 Show redirect URL in <pre> element 2019-04-29 22:32:22 +02:00
Jens Langhammer
1fac964b8b increase application close timeout 2019-04-29 22:19:26 +02:00
Jens Langhammer
dfa6ed8ac2 add help to show how SAML Property Mapping substitutes variables 2019-04-29 22:19:13 +02:00
Jens Langhammer
66fe10299e new release: 0.1.37-beta 2019-04-29 21:43:18 +02:00
Jens Langhammer
e0a3ec033f fix IDP-Initiated SAML Login 2019-04-29 21:39:41 +02:00
Jens Langhammer
7033ec0ab9 remove debug print 2019-04-29 21:39:30 +02:00
Jens Langhammer
4004579905 remove nexus_upload command 2019-04-29 21:39:16 +02:00
Jens Langhammer
9fe9e48a5c new release: 0.1.36-beta 2019-04-29 20:57:57 +02:00
Jens Langhammer
595a6c7fe6 remove guardian completely 2019-04-29 20:57:54 +02:00
Jens Langhammer
11b5860d4a new release: 0.1.35-beta 2019-04-29 20:47:32 +02:00
Jens Langhammer
9bdbff4cda fix gitlab-ci using incorrect variables for docker access 2019-04-29 20:42:24 +02:00
Jens Langhammer
e0d597eeac show cache on admin overview, add modal to clear cache, re-add logging to policy 2019-04-29 20:37:44 +02:00
Jens Langhammer
f576985cc9 remove django guardian and check application access via PolicyEngine 2019-04-29 20:07:18 +02:00
Jens Langhammer
22a6aef60b fix wrong import 2019-04-29 20:06:52 +02:00
Jens Langhammer
ec0a6e7854 new release: 0.1.34-beta 2019-04-29 19:22:20 +02:00
Jens Langhammer
6904608e6f fix clicking on administration always loading admin interface 2019-04-29 19:22:14 +02:00
Jens Langhammer
cb3732cb2b filter out connection errors for sentry 2019-04-29 19:16:49 +02:00
Jens Langhammer
57de6cbafc repo cleanup, switch to new docker registry 2019-04-29 17:05:39 +02:00
Jens Langhammer
b1dda764a9 Merge branch 'master' of git.beryju.org:BeryJu.org/passbook
# Conflicts:
#	debian/etc/passbook/config.yml
#	helm/passbook/templates/passbook-configmap.yaml
2019-04-18 11:34:13 +02:00
Jens Langhammer
5ec2102487 Merge branch '39-saml-audience-as-database-field' into 'master'
Resolve "SAML: Audience as Database field"

Closes #39

See merge request BeryJu.org/passbook!25
2019-04-18 09:31:56 +00:00
Jens Langhammer
9f8fb7378a add audience field, switch base processor, better handle processor loading failure 2019-04-18 11:30:21 +02:00
Jens Langhammer
98cd646044 remove unneeded processors 2019-04-18 11:09:12 +02:00
Jens Langhammer
0cba1b4c45 fix SAML RancherProcessor not being loaded by default 2019-04-18 11:01:44 +02:00
Jens Langhammer
53918462b6 new release: 0.1.33-beta 2019-04-18 10:28:12 +02:00
Jens Langhammer
8a7e74b523 better release commit messages 2019-04-18 10:28:09 +02:00
Jens Langhammer
4dc7065e97 prepare 0.1.33 2019-04-18 10:25:22 +02:00
Jens Langhammer
3c93bb9f9f remove included CI file 2019-04-18 10:18:47 +02:00
Jens Langhammer
8143fae2d6 switch to custom CI base image with dependencies installed 2019-04-18 10:15:44 +02:00
Jens Langhammer
3cfe45d3cb fix broken icon for helm chart 2019-04-17 17:53:56 +02:00
Jens Langhammer
8e5c3f2f31 remove unused import 2019-04-17 17:53:45 +02:00
Jens Langhammer
5a3b2fdd49 add Rancher SAML processor 2019-04-17 17:53:15 +02:00
Jens Langhammer
e47b9f0d57 fix SAML Request not being parsed all the time 2019-04-17 17:53:05 +02:00
Jens Langhammer
146dd747f1 fix EntityID being None in SAML Metadata 2019-04-17 17:52:24 +02:00
Jens Langhammer
f2ce56063b bump version: 0.1.31-beta -> 0.1.32-beta 2019-04-17 14:27:41 +02:00
Jens Langhammer
b26f378e4c prepare 0.1.32 2019-04-17 14:27:03 +02:00
Jens Langhammer
9072b836c6 automatically add response_type if not given in OAuth Request 2019-04-17 14:25:51 +02:00
Jens Langhammer
2fa57d064e bump version: 0.1.30-beta -> 0.1.31-beta 2019-04-13 17:58:09 +02:00
Jens Langhammer
146705c60a prepare 0.1.31-beta 2019-04-13 17:58:03 +02:00
Jens Langhammer
5029a99df6 Merge branch '37-guardian' into 'master'
Resolve "Guardian"

Closes #37

See merge request BeryJu.org/passbook!23
2019-04-13 15:56:54 +00:00
Jens Langhammer
e7129d18f6 fix inconsistent migrations 2019-04-13 17:52:11 +02:00
Jens Langhammer
d2bf9f81d6 remove raven middleware 2019-04-13 17:46:51 +02:00
Jens Langhammer
30acf0660b Merge branch 'master' into 37-guardian 2019-04-13 17:43:02 +02:00
Jens Langhammer
dda41af5c8 remove logging to increase speed, add more caching to policy and rewriter 2019-04-13 17:22:03 +02:00
Jens Langhammer
9b5b03647b move actual proxying logic to separate class 2019-04-13 16:05:11 +02:00
Jens Langhammer
940b3eb943 move logging to separate thread 2019-04-13 16:04:48 +02:00
Jens Langhammer
16eb629b71 only enable sentry when not DEBUG 2019-04-11 15:30:42 +02:00
Jens Langhammer
755045b226 try to fix app_gw being null 2019-04-11 15:30:07 +02:00
Jens Langhammer
61478db94e use global urllib Pools 2019-04-11 15:29:35 +02:00
Jens Langhammer
f69f959bdb allow setting authentication_header to empty string (disabling the header) 2019-04-11 15:29:01 +02:00
Jens Langhammer
146edb45d4 bump version: 0.1.29-beta -> 0.1.30-beta 2019-04-11 14:22:34 +02:00
Jens Langhammer
045a802365 don't use context manager in web command 2019-04-11 14:22:32 +02:00
Jens Langhammer
c90d8ddcff bump version: 0.1.28-beta -> 0.1.29-beta 2019-04-11 14:03:08 +02:00
Jens Langhammer
3ff2ec929f prepare 0.1.29 2019-04-11 14:03:05 +02:00
Jens Langhammer
a3ef26b7ad Run collectstatic before coverage, use autoreload on celery worker 2019-04-11 13:54:11 +02:00
Jens Langhammer
19cd1624c1 replace cherrypy with daphne 2019-04-11 13:43:49 +02:00
Jens Langhammer
366ef352c6 switch to whitenoise for static files 2019-04-11 13:43:08 +02:00
Jens Langhammer
a9031a6abc Add libpq-dev dependency so psycopg2 build works 2019-04-11 12:44:26 +02:00
Jens Langhammer
a1a5223b58 bump version: 0.1.27-beta -> 0.1.28-beta 2019-04-11 10:48:31 +02:00
Jens Langhammer
c723b0233f prepare 0.1.28 2019-04-11 10:48:28 +02:00
Jens Langhammer
b369eb28f1 set default log level to warn, fix clean_nonces not working 2019-04-11 10:43:13 +02:00
Jens Langhammer
9b8f390e31 Merge branch '38-websocket-proxying' into 'master'
Resolve "Websocket Proxying"

Closes #38

See merge request BeryJu.org/passbook!24
2019-04-10 20:42:24 +00:00
Jens Langhammer
11630c9a74 switch kubernetes deployment to daphne server 2019-04-10 22:38:25 +02:00
Jens Langhammer
c9ac10f6f6 Implement websocket proxy 2019-04-10 19:03:42 +02:00
Jens Langhammer
04d613cb28 Move code from django-revproxy to app_gw to fix cookie bug 2019-04-10 19:03:22 +02:00
Jens Langhammer
40866f9ecd Choose upstream more cleverly 2019-04-10 18:49:33 +02:00
Jens Langhammer
d8585eb872 trigger autoreload from config files 2019-04-10 18:48:55 +02:00
Jens Langhammer
15aaeda475 remove unused import 2019-04-10 18:47:21 +02:00
Jens Langhammer
8536ef9e23 Add guardian for Application permissions 2019-04-10 18:46:33 +02:00
Jens Langhammer
35b6bb6b3f fix failing CI 2019-04-09 17:26:53 +02:00
Jens Langhammer
eaa573c715 fully remove raven and switch WSGI and logging to sentry_sdk 2019-04-05 16:11:53 +02:00
Jens Langhammer
660972e303 add ability to have non-expiring nonces, clean up expired nonces 2019-04-04 21:49:10 +02:00
Jens Langhammer
a21012bf0c switch from raven to sentry_sdk 2019-04-04 21:48:50 +02:00
Jens Langhammer
8dbafa4bda fix allauth client's formatting 2019-04-04 21:47:28 +02:00
Jens Langhammer
80049413f0 bump version: 0.1.26-beta -> 0.1.27-beta 2019-03-22 14:51:13 +01:00
Jens Langhammer
2739442d4a prepare 0.1.27 2019-03-22 14:51:09 +01:00
Jens Langhammer
c679f0a67c bump version: 0.1.25-beta -> 0.1.26-beta 2019-03-22 12:48:00 +01:00
Jens Langhammer
d9a952dd03 prepare 0.1.26 2019-03-22 12:47:57 +01:00
Jens Langhammer
9a1a0f0aa8 Merge branch '35-better-error-templates' into 'master'
Resolve "Better Error templates"

Closes #35

See merge request BeryJu.org/passbook!20
2019-03-22 11:19:42 +00:00
Jens Langhammer
4d6bb60134 add custom template views 2019-03-22 12:16:30 +01:00
Jens Langhammer
80e6d59382 Merge branch '34-parsed-url-cached' into 'master'
Resolve "InvalidUpstream: Upstream URL scheme must be either 'http' or 'https' (https://ory1-esxi-prod-1.ory1.beryju.org)."

Closes #34

See merge request BeryJu.org/passbook!19
2019-03-22 09:58:44 +00:00
Jens Langhammer
81ac951872 validate upstream in form 2019-03-22 10:55:26 +01:00
Jens Langhammer
f33e553cfd always parse url instead of once 2019-03-22 10:55:04 +01:00
Jens Langhammer
9b0240dc26 bump version: 0.1.24-beta -> 0.1.25-beta 2019-03-21 16:50:00 +01:00
Jens Langhammer
c327310392 prepare 0.1.24-beta release 2019-03-21 16:49:57 +01:00
Jens Langhammer
457375287c Merge branch '30-application-security-gateway' into 'master'
Resolve "Application Security Gateway (Reverse Proxy)"

Closes #30

See merge request BeryJu.org/passbook!17
2019-03-21 15:41:34 +00:00
Jens Langhammer
7e87bfef5b validate server_name in form 2019-03-21 16:36:38 +01:00
Jens Langhammer
a7af5268de Invalidate cache when ApplicationGateway instance is saved 2019-03-21 16:27:37 +01:00
Jens Langhammer
6d916029bb implement actual Rewriting logic 2019-03-21 16:22:07 +01:00
Jens Langhammer
81fdcbadad add compiled regex to RewriteRule 2019-03-21 16:21:51 +01:00
Jens Langhammer
ec1e25fe71 cleanup property_mapping list 2019-03-21 16:21:11 +01:00
Jens Langhammer
b5306e4a94 Redirect to login on reverse proxy 2019-03-21 15:15:01 +01:00
Jens Langhammer
801b8a1e59 prevent ZeroDivisionError 2019-03-21 15:05:04 +01:00
Jens Langhammer
3a52059793 cleanup post-migration mess 2019-03-21 15:02:33 +01:00
Jens Langhammer
10b7d99b37 Merge branch 'master' into 30-application-security-gateway
# Conflicts:
#	passbook/core/policies.py
#	passbook/core/settings.py
2019-03-21 14:58:10 +01:00
Jens Langhammer
6be8d0cbb2 Better handle policy timeouts 2019-03-21 14:53:57 +01:00
Jens Langhammer
5b8e3689ec Check for policies in app_gw 2019-03-21 14:53:47 +01:00
Jens Langhammer
25a5d8f5da Don't use LoginRequired for PermissionDenied View 2019-03-21 14:53:38 +01:00
Jens Langhammer
883d439544 add timeout field to policy to prevent stuck policies 2019-03-21 14:48:51 +01:00
Jens Langhammer
1c3b5889e5 Merge branch '33-cache-policy-results' into 'master'
Resolve "Cache Policy Results"

Closes #33

See merge request BeryJu.org/passbook!18
2019-03-21 10:40:36 +00:00
Jens Langhammer
87012b65e1 add redis as service in CI for unittests 2019-03-21 11:35:40 +01:00
Jens Langhammer
29913773a7 invalidate cache when policy is saved 2019-03-21 11:29:11 +01:00
Jens Langhammer
0bc6a4fed4 explicitly use redis db 2019-03-21 11:28:57 +01:00
Jens Langhammer
4645d8353f utilise cache in PolicyEngine 2019-03-21 11:08:32 +01:00
Jens Langhammer
260c5555fa add redis dependency back in for caching 2019-03-21 11:08:08 +01:00
Jens Langhammer
6f7b917c38 bump version: 0.1.23-beta -> 0.1.24-beta 2019-03-20 23:00:33 +01:00
Jens Langhammer
1456ee6d3e prepare 0.1.24 2019-03-20 23:00:22 +01:00
Jens Langhammer
ae3d3d0295 fix TypeError: can only concatenate list (not "str") to list 2019-03-20 22:50:09 +01:00
Jens Langhammer
c23ceacd0b initial implementation of reverse proxy, using django-revproxy from within a middleware
add new config entry "primary_domain" which is used to set the cookie domain
2019-03-20 22:42:47 +01:00
Jens Langhammer
5155204283 Merge branch '32-automatically-set-owner-field-when-creating-oauth-provider' into 'master'
Resolve "Automatically set owner field when creating OAuth Provider"

Closes #32

See merge request BeryJu.org/passbook!16
2019-03-20 21:20:54 +00:00
Jens Langhammer
5509ec9b0f Merge branch '29-oauth-provider-add-extra-info-button-to-show-urls' into 'master'
Resolve "OAuth Provider: Add extra info button to show URLs"

Closes #29

See merge request BeryJu.org/passbook!15
2019-03-20 21:17:36 +00:00
Jens Langhammer
d6f9b2e47d remove user field from form. Closes #32 2019-03-20 20:09:27 +01:00
Jens Langhammer
67aa4aef11 add modal for OAuth Providers showing the URLs 2019-03-20 20:03:28 +01:00
Jens Langhammer
9e46c8bfec bump version: 0.1.22-beta -> 0.1.23-beta 2019-03-18 20:54:31 +01:00
Jens Langhammer
1eaa9b9733 prepare 0.1.23 2019-03-18 20:54:23 +01:00
Jens Langhammer
ee05834b69 Merge branch '28-openid-connect-discovery' into 'master'
set issuer to root address instead of well-known path

Closes #28

See merge request BeryJu.org/passbook!13
2019-03-18 19:52:13 +00:00
Jens Langhammer
fccc8f4959 set issuer to root address instead of well-known path 2019-03-18 20:42:32 +01:00
Jens Langhammer
c721620f96 Merge branch '28-openid-connect-discovery' into 'master'
Resolve "OpenID Connect Discovery support"

Closes #28

See merge request BeryJu.org/passbook!12
2019-03-18 19:42:08 +00:00
Jens Langhammer
c9f73d718e start implementing openid connect discovery 2019-03-18 20:35:11 +01:00
Jens Langhammer
bfa58be721 bump version: 0.1.21-beta -> 0.1.22-beta 2019-03-14 21:22:15 +01:00
Jens Langhammer
4bb602149e perapre 0.1.22 2019-03-14 21:20:55 +01:00
Jens Langhammer
81ab9092fc Fix OAuth Client's disconnect view having invalid URL names 2019-03-14 21:19:14 +01:00
Jens Langhammer
29d5962c4c add Azure AD Source 2019-03-14 21:18:55 +01:00
Jens Langhammer
5c75339946 point to correct icons 2019-03-14 21:18:13 +01:00
Jens Langhammer
4774d9a46c fix delete form not working 2019-03-14 21:17:41 +01:00
Jens Langhammer
dbe16ba4fd fix layout when on mobile viewport and scrolling 2019-03-14 21:17:28 +01:00
Jens Langhammer
6972cf00a0 move icons to single folder, cleanup 2019-03-14 21:17:07 +01:00
Jens Langhammer
0445be9712 fix missing debug template 2019-03-14 21:16:27 +01:00
Jens Langhammer
89dbdd9585 bump version: 0.1.20-beta -> 0.1.21-beta 2019-03-14 18:08:02 +01:00
Jens Langhammer
da88ce7150 prepare 0.1.21 2019-03-14 18:02:13 +01:00
Jens Langhammer
5f50fcfcf5 detect HTTPS from reverse proxy 2019-03-14 18:01:41 +01:00
Jens Langhammer
96be087221 add request debug view 2019-03-14 18:01:27 +01:00
Jens Langhammer
a53a269a8c bump version: 0.1.19-beta -> 0.1.20-beta 2019-03-13 16:51:43 +01:00
Jens Langhammer
59565a5286 prepare 0.1.20 2019-03-13 16:51:38 +01:00
Jens Langhammer
ae3c092238 add user settings for Sources 2019-03-13 16:49:30 +01:00
Jens Langhammer
e98e5e4e3e fix GitHub Pretend again 2019-03-13 15:52:05 +01:00
Jens Langhammer
d50c7ec8d4 bump version: 0.1.18-beta -> 0.1.19-beta 2019-03-13 15:16:48 +01:00
Jens Langhammer
c0fdf377d1 prepare 0.1.18 2019-03-13 15:14:36 +01:00
Jens Langhammer
70c11c8988 fix GitHub Pretend throwing a 500 error 2019-03-13 15:12:13 +01:00
Jens Langhammer
67b19becc1 fix API Call for sentry-client, add missing template 2019-03-13 14:27:34 +01:00
Jens Langhammer
ae64024ef4 bump version: 0.1.17-beta -> 0.1.18-beta 2019-03-13 11:31:05 +01:00
Jens Langhammer
e6571826cb adjust versions for client packages, auto build client-packages 2019-03-12 17:30:57 +01:00
Jens Langhammer
c621e61978 fix included yaml file 2019-03-12 17:19:13 +01:00
Jens Langhammer
3626fa4b98 add sentry client 2019-03-12 17:18:08 +01:00
Jens Langhammer
01b0eb159a fix Server Error when downloading metadata 2019-03-12 17:08:53 +01:00
Jens Langhammer
63aa48d981 bump version: 0.1.16-beta -> 0.1.17-beta 2019-03-12 15:55:18 +01:00
Jens Langhammer
2e0ba05d55 prepare 0.1.17 2019-03-12 15:55:14 +01:00
Jens Langhammer
b2ac57bb67 switch to vertical navigation 2019-03-12 13:35:09 +01:00
Jens Langhammer
4c22e5c2c8 don't use celery heartbeat, use TCP keepalive instead 2019-03-12 13:34:54 +01:00
Jens Langhammer
4a7b0ec8a9 remove Application.user_is_authorized 2019-03-12 10:56:01 +01:00
Jens Langhammer
330118249e bump version: 0.1.15-beta -> 0.1.16-beta 2019-03-11 21:35:11 +01:00
Jens Langhammer
8d4dabde02 finalize RabbitMQ replacement, update debian package, remove redis tgz 2019-03-11 21:35:06 +01:00
Jens Langhammer
cf7323c41b bump version: 0.1.14-beta -> 0.1.15-beta 2019-03-11 21:01:18 +01:00
Jens Langhammer
edd856df7d redis -> rabbitmq 2019-03-11 20:46:19 +01:00
Jens Langhammer
5e35859db6 bump version: 0.1.13-beta -> 0.1.14-beta 2019-03-11 11:44:34 +01:00
Jens Langhammer
acabb2df54 fix unittests 2019-03-11 11:44:12 +01:00
Jens Langhammer
e6376a05f7 bump version: 0.1.12-beta -> 0.1.13-beta 2019-03-11 11:31:12 +01:00
Jens Langhammer
1f45aff7ad prepare 0.1.13 2019-03-11 11:31:06 +01:00
Jens Langhammer
e1f1f617b6 fix UserChangePasswordView not requiring Login 2019-03-11 11:25:59 +01:00
Jens Langhammer
2690675dca allow custom email server for helm installs 2019-03-11 11:03:25 +01:00
Jens Langhammer
7529b51358 Fix DoesNotExist error when running PolicyEngine against None user 2019-03-11 10:52:50 +01:00
Jens Langhammer
c394066d99 bump version: 0.1.11-beta -> 0.1.12-beta 2019-03-11 09:51:00 +01:00
Jens Langhammer
9c585032ef prepare 0.1.12-beta 2019-03-11 09:50:57 +01:00
Jens Langhammer
d408031304 fix OAuth Authorization View not requiring authentication 2019-03-11 09:48:36 +01:00
Jens Langhammer
c47bc11ec0 disable automatic k8s deployment for now 2019-03-11 09:47:06 +01:00
Jens Langhammer
1deb094afe install updated helm release from local folder 2019-03-10 21:47:22 +01:00
Jens Langhammer
501fed1922 rewrite PasswordFactor to use backends setting instead of trying all backends 2019-03-10 21:47:08 +01:00
1110 changed files with 37697 additions and 207555 deletions

View File

@@ -1,10 +1,10 @@
[bumpversion]
current_version = 0.1.11-beta
current_version = 0.9.0-rc1
tag = True
commit = True
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\-(?P<release>.*)
serialize = {major}.{minor}.{patch}-{release}
message = bump version: {current_version} -> {new_version}
message = new release: {new_version}
tag_name = version/{new_version}
[bumpversion:part:release]
@@ -15,37 +15,14 @@ values =
beta
stable
[bumpversion:file:helm/passbook/values.yaml]
[bumpversion:file:README.md]
[bumpversion:file:helm/passbook/Chart.yaml]
[bumpversion:file:docs/installation/docker-compose.md]
[bumpversion:file:.gitlab-ci.yml]
[bumpversion:file:helm/values.yaml]
[bumpversion:file:helm/Chart.yaml]
[bumpversion:file:.github/workflows/release.yml]
[bumpversion:file:passbook/__init__.py]
[bumpversion:file:passbook/api/__init__.py]
[bumpversion:file:passbook/core/__init__.py]
[bumpversion:file:passbook/admin/__init__.py]
[bumpversion:file:passbook/captcha_factor/__init__.py]
[bumpversion:file:passbook/oauth_client/__init__.py]
[bumpversion:file:passbook/ldap/__init__.py]
[bumpversion:file:passbook/lib/__init__.py]
[bumpversion:file:passbook/hibp_policy/__init__.py]
[bumpversion:file:passbook/password_expiry_policy/__init__.py]
[bumpversion:file:passbook/saml_idp/__init__.py]
[bumpversion:file:passbook/audit/__init__.py]
[bumpversion:file:passbook/oauth_provider/__init__.py]
[bumpversion:file:passbook/otp/__init__.py]

View File

@@ -1,14 +1,10 @@
[run]
source = passbook
omit =
env/
*/wsgi.py
manage.py
*/migrations/*
*/apps.py
passbook/management/commands/nexus_upload.py
passbook/management/commands/web.py
passbook/management/commands/worker.py
docs/
[report]
@@ -23,6 +19,7 @@ exclude_lines =
def __str__
def __repr__
if self\.debug
if TYPE_CHECKING
# Don't complain if tests don't hit defensive assertion code:
raise AssertionError

View File

@@ -2,3 +2,5 @@ env
helm
passbook-ui
static
*.env.yml
node_modules/

View File

@@ -9,3 +9,6 @@ insert_final_newline = true
[html]
indent_size = 2
[yaml]
indent_size = 2

20
.fossa.yml Executable file
View File

@@ -0,0 +1,20 @@
# Generated by FOSSA CLI (https://github.com/fossas/fossa-cli)
# Visit https://fossa.com to learn more
version: 2
cli:
server: https://app.fossa.com
fetcher: custom
project: git@github.com:BeryJu/passbook.git
analyze:
modules:
- name: static
type: npm
target: passbook/static/static
path: passbook/static/static
- name: .
type: pip
target: .
path: .
options:
strategy: pipenv

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
custom: ["https://www.paypal.me/beryju"]

104
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,104 @@
name: passbook-release
on:
release
jobs:
# Build
build-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: docker build
--no-cache
-t beryju/passbook:0.9.0-rc1
-t beryju/passbook:latest
-f Dockerfile .
- name: Push Docker Container to Registry (versioned)
run: docker push beryju/passbook:0.9.0-rc1
- name: Push Docker Container to Registry (latest)
run: docker push beryju/passbook:latest
build-gatekeeper:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: |
cd gatekeeper
docker build \
--no-cache \
-t beryju/passbook-gatekeeper:0.9.0-rc1 \
-t beryju/passbook-gatekeeper:latest \
-f Dockerfile .
- name: Push Docker Container to Registry (versioned)
run: docker push beryju/passbook-gatekeeper:0.9.0-rc1
- name: Push Docker Container to Registry (latest)
run: docker push beryju/passbook-gatekeeper:latest
build-static:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
redis:
image: redis:latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: docker build
--no-cache
--network=$(docker network ls | grep github | awk '{print $1}')
-t beryju/passbook-static:0.9.0-rc1
-t beryju/passbook-static:latest
-f static.Dockerfile .
- name: Push Docker Container to Registry (versioned)
run: docker push beryju/passbook-static:0.9.0-rc1
- name: Push Docker Container to Registry (latest)
run: docker push beryju/passbook-static:latest
test-release:
needs:
- build-server
- build-static
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run test suite in final docker images
run: |
docker-compose pull -q
docker-compose up --no-start
docker-compose start postgresql redis
docker-compose run -u root server bash -c "pip install --no-cache -r requirements-dev.txt && ./manage.py test"
sentry-release:
needs:
- test-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Create a Sentry.io release
uses: tclindner/sentry-releases-action@v1.2.0
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: beryjuorg
SENTRY_PROJECT: passbook
SENTRY_URL: https://sentry.beryju.org
with:
tagName: 0.9.0-rc1
environment: production

59
.github/workflows/tag.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
on:
push:
tags:
- 'version/*'
name: passbook-version-tag
jobs:
build:
name: Create Release from Tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Pre-release test
run: |
docker-compose pull -q
docker build \
--no-cache \
-t beryju/passbook:latest \
-f Dockerfile .
docker-compose up --no-start
docker-compose start postgresql redis
docker-compose run -u root server bash -c "pip install --no-cache -r requirements-dev.txt && ./manage.py test"
- name: Install Helm
run: |
apt update && apt install -y curl
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
- name: Helm package
run: |
helm dependency update helm/
helm package helm/
mv passbook-*.tgz passbook-chart.tgz
- name: Extract verison number
id: get_version
uses: actions/github-script@0.2.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
return context.payload.ref.replace(/\/refs\/tags\/version\//, '');
- name: Create Release
id: create_release
uses: actions/create-release@v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ steps.get_version.outputs.result }}
draft: false
prerelease: false
- name: Upload packaged Helm Chart
id: upload-release-asset
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./passbook-chart.tgz
asset_name: passbook-chart.tgz
asset_content_type: application/gzip

10
.gitignore vendored
View File

@@ -63,6 +63,7 @@ coverage.xml
*.cover
.hypothesis/
.pytest_cache/
unittest.xml
# Translations
*.mo
@@ -184,10 +185,17 @@ dmypy.json
[Ii]nclude
[Ll]ib64
[Ll]ocal
[Ss]cripts
pyvenv.cfg
pip-selfcheck.json
# End of https://www.gitignore.io/api/python,django
/static/
local.env.yml
.vscode/
### Helm ###
# Chart dependencies
**/charts/*.tgz
# Selenium Screenshots
selenium_screenshots/**

View File

@@ -1,131 +0,0 @@
# Global Variables
before_script:
- "python3 -m pip install -U virtualenv"
- "virtualenv env"
- "source env/bin/activate"
- "pip3 install -U -r requirements-dev.txt"
stages:
- test
- build
- docs
- deploy
image: python:3.6
services:
- postgres:latest
variables:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: 'EK-5jnKfjrGRm<77'
include:
- /allauth/.gitlab-ci.yml
isort:
script:
- isort -c -sg env
stage: test
migrations:
script:
- python manage.py migrate
stage: test
prospector:
script:
- prospector
stage: test
pylint:
script:
- pylint passbook
stage: test
coverage:
script:
- coverage run manage.py test
- coverage report
stage: test
bandit:
script:
- bandit -r passbook
stage: test
package-docker:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
before_script:
- echo "{\"auths\":{\"docker.$NEXUS_URL\":{\"auth\":\"$NEXUS_AUTH\"}}}" > /kaniko/.docker/config.json
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination docker.pkg.beryju.org/passbook:latest --destination docker.pkg.beryju.org/passbook:0.1.11-beta
stage: build
only:
- tags
- /^version/.*$/
package-helm:
stage: build
script:
- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
- helm init --client-only
- helm package helm/passbook
- ./manage.py nexus_upload --method put --url $NEXUS_URL --auth $NEXUS_AUTH --repo helm *.tgz
only:
- tags
- /^version/.*$/
package-debian:
before_script:
- apt update
- apt install -y --no-install-recommends build-essential debhelper devscripts equivs python3 python3-dev python3-pip libsasl2-dev libldap2-dev
- mk-build-deps debian/control
- apt install ./*build-deps*deb -f -y
- python3 -m pip install -U virtualenv pip
- virtualenv env
- source env/bin/activate
- pip3 install -U -r requirements.txt -r requirements-dev.txt
- ./manage.py collectstatic --no-input
image: ubuntu:18.04
script:
- debuild -us -uc
- cp ../passbook*.deb .
- ./manage.py nexus_upload --method post --url $NEXUS_URL --auth $NEXUS_AUTH --repo apt passbook*deb
artifacts:
paths:
- passbook*deb
expire_in: 2 days
stage: build
only:
- tags
- /^version/.*$/
# docs:
# stage: docs
# only:
# - master
# - tags
# - /^debian/.*$/
# environment:
# name: docs
# url: "https://passbook.beryju.org/docs/"
# script:
# - apt update
# - apt install -y rsync
# - "mkdir ~/.ssh"
# - "cp .gitlab/known_hosts ~/.ssh/"
# - "pip3 install -U -r requirements-docs.txt"
# - "eval $(ssh-agent -s)"
# - "echo \"${CI_SSH_PRIVATE}\" | ssh-add -"
# - mkdocs build
# - 'rsync -avh --delete web/* "beryjuorg@ory1-web-prod-1.ory1.beryju.org:passbook.beryju.org/"'
# - 'rsync -avh --delete site/* "beryjuorg@ory1-web-prod-1.ory1.beryju.org:passbook.beryju.org/docs/"'
deploy:
environment:
name: production
url: https://passbook-prod.default.k8s.beryju.org/
stage: deploy
only:
- tags
- /^version/.*$/
script:
- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
- helm init --client-only
- helm repo add beryju.org https://pkg.beryju.org/repository/helm/
- helm repo update
- helm upgrade passbook-prod beryju.org/passbook --devel

6
.isort.cfg Normal file
View File

@@ -0,0 +1,6 @@
[settings]
multi_line_output=3
include_trailing_comma=True
force_grid_wrap=0
use_parentheses=True
line_length=88

View File

@@ -3,10 +3,9 @@ test-warnings: true
doc-warnings: false
ignore-paths:
- env
- migrations
- docs
- node_modules
uses:
- django
- django

View File

@@ -1,12 +1,9 @@
[MASTER]
disable=redefined-outer-name,arguments-differ,no-self-use,cyclic-import,fixme,locally-disabled,unpacking-non-sequence,too-many-ancestors,too-many-branches,too-few-public-methods
disable=redefined-outer-name,arguments-differ,no-self-use,cyclic-import,fixme,locally-disabled,too-many-ancestors,too-few-public-methods,import-outside-toplevel,bad-continuation,signature-differs
load-plugins=pylint_django,pylint.extensions.bad_builtin
#,pylint.extensions.docparams
extension-pkg-whitelist=lxml
const-rgx=[a-zA-Z0-9_]{1,40}$
[SIMILARITIES]
# Minimum lines number of a similarity.
min-similarity-lines=20
ignored-modules=django-otp
jobs=12
ignore=migrations

View File

@@ -1,114 +0,0 @@
# The default ``config.py``
# flake8: noqa
def set_prefs(prefs):
"""This function is called before opening the project"""
# Specify which files and folders to ignore in the project.
# Changes to ignored resources are not added to the history and
# VCSs. Also they are not returned in `Project.get_files()`.
# Note that ``?`` and ``*`` match all characters but slashes.
# '*.pyc': matches 'test.pyc' and 'pkg/test.pyc'
# 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc'
# '.svn': matches 'pkg/.svn' and all of its children
# 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o'
# 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o'
prefs['ignored_resources'] = ['*.pyc', '*~', '.ropeproject',
'.hg', '.svn', '_svn', '.git', '.tox']
# Specifies which files should be considered python files. It is
# useful when you have scripts inside your project. Only files
# ending with ``.py`` are considered to be python files by
# default.
# prefs['python_files'] = ['*.py']
# Custom source folders: By default rope searches the project
# for finding source folders (folders that should be searched
# for finding modules). You can add paths to that list. Note
# that rope guesses project source folders correctly most of the
# time; use this if you have any problems.
# The folders should be relative to project root and use '/' for
# separating folders regardless of the platform rope is running on.
# 'src/my_source_folder' for instance.
# prefs.add('source_folders', 'src')
# You can extend python path for looking up modules
# prefs.add('python_path', '~/python/')
# Should rope save object information or not.
prefs['save_objectdb'] = True
prefs['compress_objectdb'] = False
# If `True`, rope analyzes each module when it is being saved.
prefs['automatic_soa'] = True
# The depth of calls to follow in static object analysis
prefs['soa_followed_calls'] = 0
# If `False` when running modules or unit tests "dynamic object
# analysis" is turned off. This makes them much faster.
prefs['perform_doa'] = True
# Rope can check the validity of its object DB when running.
prefs['validate_objectdb'] = True
# How many undos to hold?
prefs['max_history_items'] = 32
# Shows whether to save history across sessions.
prefs['save_history'] = True
prefs['compress_history'] = False
# Set the number spaces used for indenting. According to
# :PEP:`8`, it is best to use 4 spaces. Since most of rope's
# unit-tests use 4 spaces it is more reliable, too.
prefs['indent_size'] = 4
# Builtin and c-extension modules that are allowed to be imported
# and inspected by rope.
prefs['extension_modules'] = []
# Add all standard c-extensions to extension_modules list.
prefs['import_dynload_stdmods'] = True
# If `True` modules with syntax errors are considered to be empty.
# The default value is `False`; When `False` syntax errors raise
# `rope.base.exceptions.ModuleSyntaxError` exception.
prefs['ignore_syntax_errors'] = False
# If `True`, rope ignores unresolvable imports. Otherwise, they
# appear in the importing namespace.
prefs['ignore_bad_imports'] = False
# If `True`, rope will insert new module imports as
# `from <package> import <module>` by default.
prefs['prefer_module_from_imports'] = False
# If `True`, rope will transform a comma list of imports into
# multiple separate import statements when organizing
# imports.
prefs['split_imports'] = False
# If `True`, rope will remove all top-level import statements and
# reinsert them at the top of the module when making changes.
prefs['pull_imports_to_top'] = True
# If `True`, rope will sort imports alphabetically by module name instead
# of alphabetically by import statement, with from imports after normal
# imports.
prefs['sort_imports_alphabetically'] = False
# Location of implementation of
# rope.base.oi.type_hinting.interfaces.ITypeHintingFactory In general
# case, you don't have to change this value, unless you're an rope expert.
# Change this value to inject you own implementations of interfaces
# listed in module rope.base.oi.type_hinting.providers.interfaces
# For example, you can add you own providers for Django Models, or disable
# the search type-hinting in a class hierarchy, etc.
prefs['type_hinting_factory'] = (
'rope.base.oi.type_hinting.factory.default_type_hinting_factory')
def project_opened(project):
"""This function is called after opening the project"""
# Do whatever you like here!

Binary file not shown.

11
.vscode/settings.json vendored
View File

@@ -1,11 +0,0 @@
{
"python.pythonPath": "env/bin/python",
"editor.tabSize": 4,
"[html]": {
"editor.tabSize": 2
},
"cSpell.words": [
"SAML",
"passbook"
]
}

View File

@@ -1,34 +1,35 @@
FROM python:3.6-slim-stretch as build
FROM python:3.8-slim-buster as locker
COPY ./passbook/ /app/passbook
COPY ./manage.py /app/
COPY ./requirements.txt /app/
COPY ./Pipfile /app/
COPY ./Pipfile.lock /app/
WORKDIR /app/
RUN apt-get update && apt-get install build-essential libssl-dev libffi-dev -y && \
mkdir /app/static/ && \
pip install -r requirements.txt && \
pip install psycopg2 && \
./manage.py collectstatic --no-input && \
apt-get remove --purge -y build-essential && \
apt-get autoremove --purge -y
RUN pip install pipenv && \
pipenv lock -r > requirements.txt && \
pipenv lock -rd > requirements-dev.txt
FROM python:3.6-slim-stretch
FROM python:3.8-slim-buster
COPY ./passbook/ /app/passbook
COPY ./manage.py /app/
COPY ./requirements.txt /app/
COPY --from=build /app/static /app/static/
COPY --from=locker /app/requirements.txt /app/
COPY --from=locker /app/requirements-dev.txt /app/
WORKDIR /app/
RUN apt-get update && apt-get install build-essential libssl-dev libffi-dev -y && \
pip install -r requirements.txt && \
pip install psycopg2 && \
adduser --system --home /app/ passbook && \
chown -R passbook /app/ && \
apt-get remove --purge -y build-essential && \
apt-get autoremove --purge -y
RUN apt-get update && \
apt-get install -y --no-install-recommends postgresql-client-11 && \
rm -rf /var/lib/apt/ && \
pip install -r requirements.txt --no-cache-dir && \
adduser --system --no-create-home --uid 1000 --group --home /app passbook
COPY ./passbook/ /app/passbook
COPY ./manage.py /app/
COPY ./docker/uwsgi.ini /app/
COPY ./docker/bootstrap.sh /bootstrap.sh
COPY ./docker/wait_for_db.py /app/wait_for_db.py
WORKDIR /app/
USER passbook
ENTRYPOINT [ "/bootstrap.sh" ]

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018 BeryJu.org
Copyright (c) 2019 BeryJu.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

64
Pipfile Normal file
View File

@@ -0,0 +1,64 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[packages]
boto3 = "*"
celery = "*"
defusedxml = "*"
django = "*"
django-cors-middleware = "*"
django-dbbackup = "*"
django-filter = "*"
django-guardian = "*"
django-model-utils = "*"
django-oauth-toolkit = "*"
django-oidc-provider = "*"
django-otp = "*"
django-prometheus = "*"
django-recaptcha = "*"
django-redis = "*"
django-rest-framework = "*"
django-storages = "*"
djangorestframework-guardian = "*"
drf-yasg = "*"
kombu = "*"
ldap3 = "*"
lxml = "*"
oauthlib = "*"
packaging = "*"
psycopg2-binary = "*"
pycryptodome = "*"
pyuwsgi = "*"
pyyaml = "*"
qrcode = "*"
requests-oauthlib = "*"
sentry-sdk = "*"
service_identity = "*"
signxml = "*"
structlog = "*"
swagger-spec-validator = "*"
urllib3 = {extras = ["secure"],version = "*"}
facebook-sdk = "*"
elastic-apm = "*"
[requires]
python_version = "3.8"
[dev-packages]
autopep8 = "*"
bandit = "*"
bumpversion = "*"
colorama = "*"
coverage = "*"
django-debug-toolbar = "*"
pylint = "*"
pylint-django = "*"
unittest-xml-reporting = "*"
black = "*"
selenium = "*"
docker = "*"
[pipenv]
allow_prereleases = true

1346
Pipfile.lock generated Normal file

File diff suppressed because it is too large Load Diff

69
README.md Normal file
View File

@@ -0,0 +1,69 @@
<img src="passbook/static/static/passbook/logo.svg" height="50" alt="passbook logo"><img src="passbook/static/static/passbook/brand_inverted.svg" height="50" alt="passbook">
[![CI Build status](https://img.shields.io/azure-devops/build/beryjuorg/passbook/1?style=flat-square)](https://dev.azure.com/beryjuorg/passbook/_build?definitionId=1)
![Tests](https://img.shields.io/azure-devops/tests/beryjuorg/passbook/1?compact_message&style=flat-square)
[![Code Coverage](https://img.shields.io/codecov/c/gh/beryju/passbook?style=flat-square)](https://codecov.io/gh/BeryJu/passbook)
![Docker pulls](https://img.shields.io/docker/pulls/beryju/passbook.svg?style=flat-square)
![Docker pulls (gatekeeper)](https://img.shields.io/docker/pulls/beryju/passbook-gatekeeper.svg?style=flat-square)
![Latest version](https://img.shields.io/docker/v/beryju/passbook?sort=semver&style=flat-square)
![LGTM Grade](https://img.shields.io/lgtm/grade/python/github/BeryJu/passbook?style=flat-square)
## What is passbook?
passbook is an open-source Identity Provider focused on flexibility and versatility. You can use passbook in an existing environment to add support for new protocols. passbook is also a great solution for implementing signup/recovery/etc in your application, so you don't have to deal with it.
## Installation
For small/test setups it is recommended to use docker-compose.
```
wget https://raw.githubusercontent.com/BeryJu/passbook/master/docker-compose.yml
# Optionally enable Error-reporting
# export PASSBOOK_ERROR_REPORTING=true
# Optionally deploy a different version
# export PASSBOOK_TAG=0.9.0-rc1
# If this is a productive installation, set a different PostgreSQL Password
# export PG_PASS=$(pwgen 40 1)
docker-compose pull
docker-compose up -d
docker-compose exec server ./manage.py migrate
```
For bigger setups, there is a Helm Chart in the `helm/` directory. This is documented [here](https://passbook.beryju.org//installation/kubernetes/)
## Screenshots
![](docs/images/screen_apps.png)
![](docs/images/screen_admin.png)
## Development
To develop on passbook, you need a system with Python 3.7+ (3.8 is recommended). passbook uses [pipenv](https://pipenv.pypa.io/en/latest/) for managing dependencies.
To get started, run
```
python3 -m pip install pipenv
git clone https://github.com/BeryJu/passbook.git
cd passbook
pipenv shell
pipenv sync -d
```
Since passbook uses PostgreSQL-specific fields, you also need a local PostgreSQL instance to develop. passbook also uses redis for caching and message queueing.
For these databases you can use [Postgres.app](https://postgresapp.com/) and [Redis.app](https://jpadilla.github.io/redisapp/) on macOS or use it the docker-compose file in `scripts/docker-compose.yml`.
To tell passbook about these databases, create a file in the project root called `local.env.yml` with the following contents:
```yaml
debug: true
postgresql:
user: postgres
log_level: debug
error_reporting: false
```
## Security
See [SECURITY.md](SECURITY.md)

13
SECURITY.md Normal file
View File

@@ -0,0 +1,13 @@
# Security Policy
## Supported Versions
As passbook is currently in a pre-stable, only the latest "stable" version is supported. After passbook 1.0, this will change.
| Version | Supported |
| -------- | ------------------ |
| 0.8.15 | :white_check_mark: |
## Reporting a Vulnerability
To report a vulnerability, send am email to [security@beryju.org](mailto:security@beryju.org)

View File

@@ -1,27 +0,0 @@
# Global Variables
before_script:
- cd allauth/
- "python3 -m pip install -U virtualenv"
- "virtualenv env"
- "source env/bin/activate"
- "pip3 install -U -r requirements-dev.txt"
stages:
- test-allauth
image: python:3.6
isort:
script:
- isort -c -sg env
stage: test-allauth
prospector:
script:
- prospector
stage: test-allauth
pylint:
script:
- pylint passbook
stage: test-allauth
bandit:
script:
- bandit -r allauth_passbook
stage: test-allauth

View File

@@ -1,35 +0,0 @@
"""passbook provider"""
from allauth.socialaccount.providers.base import ProviderAccount
from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
class PassbookAccount(ProviderAccount):
"""passbook account"""
def to_str(self):
dflt = super().to_str()
return self.account.extra_data.get('username', dflt)
class PassbookProvider(OAuth2Provider):
"""passbook provider"""
id = 'passbook'
name = 'passbook'
account_class = PassbookAccount
def extract_uid(self, data):
return str(data['sub'])
def extract_common_fields(self, data):
return {
'email': data.get('email'),
'username': data.get('preferred_username'),
'name': data.get('name'),
}
def get_default_scope(self):
return ['openid:userinfo']
provider_classes = [PassbookProvider] # noqa

View File

@@ -1,5 +0,0 @@
"""passbook provider"""
from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns
from allauth_passbook.provider import PassbookProvider
urlpatterns = default_urlpatterns(PassbookProvider)

View File

@@ -1,37 +0,0 @@
"""passbook adapter"""
import requests
from allauth.socialaccount import app_settings
from allauth.socialaccount.providers.oauth2.views import (OAuth2Adapter,
OAuth2CallbackView,
OAuth2LoginView)
from allauth_passbook.provider import PassbookProvider
class PassbookOAuth2Adapter(OAuth2Adapter):
"""passbook OAuth2 Adapter"""
provider_id = PassbookProvider.id
# pylint: disable=no-member
settings = app_settings.PROVIDERS.get(provider_id, {}) # noqa
provider_base_url = settings.get("PASSBOOK_URL", 'https://id.beryju.org')
access_token_url = '{0}/application/oauth/token/'.format(provider_base_url)
authorize_url = '{0}/application/oauth/authorize/'.format(provider_base_url)
profile_url = '{0}/api/v1/openid/'.format(
provider_base_url)
def complete_login(self, request, app, access_token, **kwargs):
headers = {
'Authorization': 'Bearer {0}'.format(access_token.token),
'Content-Type': 'application/json',
}
extra_data = requests.get(self.profile_url, headers=headers)
return self.get_provider().sociallogin_from_response(
request,
extra_data.json()
)
oauth2_login = OAuth2LoginView.adapter_view(PassbookOAuth2Adapter) # noqa
oauth2_callback = OAuth2CallbackView.adapter_view(PassbookOAuth2Adapter) # noqa

View File

@@ -1 +0,0 @@
django-allauth

View File

@@ -1,33 +0,0 @@
"""passbook allauth setup.py"""
from setuptools import setup
setup(
name='django-allauth-passbook',
version='1.0.0',
description='passbook support for django-allauth',
# long_description='\n'.join(read_simple('docs/index.md')[2:]),
long_description_content_type='text/markdown',
author='BeryJu.org',
author_email='hello@beryju.org',
packages=['allauth_passbook'],
include_package_data=True,
install_requires=['django-allauth'],
keywords='django allauth passbook',
license='MIT',
classifiers=[
'Intended Audience :: Developers',
'Topic :: Software Development :: Libraries :: Python Modules',
'Environment :: Web Environment',
'Topic :: Internet',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Framework :: Django',
'Framework :: Django :: 1.11',
'Framework :: Django :: 2.0',
'Framework :: Django :: 2.1',
],
)

299
azure-pipelines.yml Normal file
View File

@@ -0,0 +1,299 @@
trigger:
- master
resources:
- repo: self
variables:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
stages:
- stage: Lint
jobs:
- job: pylint
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run pylint passbook
- job: black
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run black --check passbook
- job: prospector
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
pipenv install --dev prospector --skip-lock
- task: CmdLine@2
inputs:
script: pipenv run prospector passbook
- job: bandit
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run bandit -r passbook
- job: pyright
pool:
vmImage: ubuntu-latest
steps:
- task: UseNode@1
inputs:
version: '12.x'
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: npm install -g pyright
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run pyright
- stage: Test
jobs:
- job: migrations
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/ci.docker-compose.yml'
action: 'Run services'
buildImages: false
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run ./manage.py migrate
- job: coverage_unittest
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/ci.docker-compose.yml'
action: 'Run services'
buildImages: false
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
displayName: Run full test suite
inputs:
script: |
pipenv run coverage run ./manage.py test passbook
mkdir output-unittest
mv unittest.xml output-unittest/unittest.xml
mv .coverage output-unittest/coverage
- task: PublishPipelineArtifact@1
inputs:
targetPath: 'output-unittest/'
artifact: 'coverage-unittest'
publishLocation: 'pipeline'
- job: coverage_e2e
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/ci.docker-compose.yml'
action: 'Run services'
buildImages: false
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: DockerCompose@0
displayName: Run ChromeDriver
inputs:
dockerComposeFile: 'e2e/ci.docker-compose.yml'
action: 'Run a specific service'
serviceName: 'chrome'
- task: CmdLine@2
displayName: Build static files for e2e
inputs:
script: |
cd passbook/static/static
yarn
- task: CmdLine@2
displayName: Run full test suite
inputs:
script: pipenv run coverage run ./manage.py test e2e
- task: CmdLine@2
displayName: Prepare unittests and coverage for upload
inputs:
script: |
mkdir output-e2e
mv unittest.xml output-e2e/unittest.xml
mv .coverage output-e2e/coverage
- task: PublishPipelineArtifact@1
condition: failed()
displayName: Upload screenshots if selenium tests fail
inputs:
targetPath: 'selenium_screenshots/'
artifact: 'selenium screenshots'
publishLocation: 'pipeline'
- task: PublishPipelineArtifact@1
inputs:
targetPath: 'output-e2e/'
artifact: 'coverage-e2e'
publishLocation: 'pipeline'
- stage: test_combine
jobs:
- job: test_coverage_combine
pool:
vmImage: 'ubuntu-latest'
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'coverage-e2e'
path: "coverage-e2e/"
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'coverage-unittest'
path: "coverage-unittest/"
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
find .
pipenv run coverage combine coverage-e2e/coverage coverage-unittest/coverage
pipenv run coverage xml
pipenv run coverage html
find .
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: 'coverage.xml'
pathToSources: '$(System.DefaultWorkingDirectory)'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: |
coverage-e2e/unittest.xml
coverage-unittest/unittest.xml
mergeTestResults: true
- task: CmdLine@2
env:
CODECOV_TOKEN: $(CODECOV_TOKEN)
inputs:
script: bash <(curl -s https://codecov.io/bash)
- stage: Build
jobs:
- job: build_server
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Docker@2
inputs:
containerRegistry: 'dockerhub'
repository: 'beryju/passbook'
command: 'buildAndPush'
Dockerfile: 'Dockerfile'
tags: 'gh-$(Build.SourceBranchName)'
- job: build_gatekeeper
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Docker@2
inputs:
containerRegistry: 'dockerhub'
repository: 'beryju/passbook-gatekeeper'
command: 'buildAndPush'
Dockerfile: 'gatekeeper/Dockerfile'
buildContext: 'gatekeeper/'
tags: 'gh-$(Build.SourceBranchName)'
- job: build_static
pool:
vmImage: 'ubuntu-latest'
steps:
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/ci.docker-compose.yml'
action: 'Run services'
buildImages: false
- task: Docker@2
inputs:
containerRegistry: 'dockerhub'
repository: 'beryju/passbook-static'
command: 'build'
Dockerfile: 'static.Dockerfile'
tags: 'gh-$(Build.SourceBranchName)'
arguments: "--network=beryjupassbook_default"
- task: Docker@2
inputs:
containerRegistry: 'dockerhub'
repository: 'beryju/passbook-static'
command: 'push'
tags: 'gh-$(Build.SourceBranchName)'

52
debian/changelog vendored
View File

@@ -1,52 +0,0 @@
passbook (0.1.11) stable; urgency=medium
* add group administration
* bump version: 0.1.9-beta -> 0.1.10-beta
* fix helm labels being on deployments and not pods
* automatically deploy after release
* use Django's Admin FilteredSelectMultiple for Group Membership
* always use FilteredSelectMultiple for many-to-many fields
* Add Group Member policy
* add LDAP Group Membership Policy
-- Jens Langhammer <jens.langhammer@beryju.org> Sun, 10 Mar 2019 18:55:31 +0000
passbook (0.1.10) stable; urgency=high
* bump version: 0.1.7-beta -> 0.1.8-beta
* consistently using PolicyEngine
* add more Verbosity to PolicyEngine, rewrite SAML Authorisation check
* slightly refactor Factor View, add more unittests
* add impersonation middleware, add to templates
* bump version: 0.1.8-beta -> 0.1.9-beta
* fix k8s service routing http traffic to workers
* Fix button on policy test page
* better show loading state when testing a policy
-- Jens Langhammer <jens.langhammer@beryju.org> Sun, 10 Mar 2019 14:52:40 +0000
passbook (0.1.7) stable; urgency=medium
* bump version: 0.1.3-beta -> 0.1.4-beta
* implicitly add kubernetes-healthcheck-host in helm configmap
* fix debian build (again)
* add PropertyMapping Model, add Subclass for SAML, test with AWS
* add custom DynamicArrayField to better handle arrays
* format data before inserting it
* bump version: 0.1.4-beta -> 0.1.5-beta
* fix static files missing for debian package
* fix password not getting set on user import
* remove audit's login attempt
* add passing property to PolicyEngine
* fix captcha factor not loading keys from Factor class
* bump version: 0.1.5-beta -> 0.1.6-beta
* fix MATCH_EXACT not working as intended
* Improve access control for saml
-- Jens Langhammer <jens.langhammer@beryju.org> Fri, 08 Mar 2019 20:37:05 +0000
passbook (0.1.4) stable; urgency=medium
* initial debian package release
-- Jens Langhammer <jens.langhammer@beryju.org> Wed, 06 Mar 2019 18:22:41 +0000

1
debian/compat vendored
View File

@@ -1 +0,0 @@
10

20
debian/config vendored
View File

@@ -1,20 +0,0 @@
#!/bin/sh
# config maintainer script for passbook
set -e
# source debconf stuff
. /usr/share/debconf/confmodule
dbc_first_version=1.0.0
dbc_dbuser=passbook
dbc_dbname=passbook
# source dbconfig-common shell library, and call the hook function
if [ -f /usr/share/dbconfig-common/dpkg/config.pgsql ]; then
. /usr/share/dbconfig-common/dpkg/config.pgsql
dbc_go passbook "$@"
fi
#DEBHELPER#
exit 0

14
debian/control vendored
View File

@@ -1,14 +0,0 @@
Source: passbook
Section: admin
Priority: optional
Maintainer: BeryJu.org <support@beryju.org>
Uploaders: Jens Langhammer <jens@beryju.org>, BeryJu.org <support@beryju.org>
Build-Depends: debhelper (>= 10), dh-systemd (>= 1.5), dh-exec, wget, dh-exec, python3 (>= 3.5) | python3.6 | python3.7
Standards-Version: 3.9.6
Package: passbook
Architecture: all
Recommends: mysql-server, redis-server
Pre-Depends: adduser, libldap2-dev, libsasl2-dev
Depends: python3 (>= 3.5) | python3.6 | python3.7, python3-pip, dbconfig-pgsql | dbconfig-no-thanks, ${misc:Depends}
Description: Authentication Provider/Proxy supporting protocols like SAML, OAuth, LDAP and more.

22
debian/copyright vendored
View File

@@ -1,22 +0,0 @@
MIT License
Copyright (c) 2019 BeryJu.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

4
debian/dirs vendored
View File

@@ -1,4 +0,0 @@
etc/passbook/
etc/passbook/config.d/
var/log/passbook/
usr/share/passbook/

View File

@@ -1,44 +0,0 @@
debug: false
http:
host: 0.0.0.0
port: 8000
secret_key_file: /etc/passbook/secret_key
log:
level:
console: INFO
file: DEBUG
file: /var/log/passbook/passbook.log
# Error reporting, disabled by default
# error_report_enabled: true
# Set this to the server's external address.
# This is used to generate external URLs
external_url: http://image.example.com
# This dictates how the Path is generated
# can be either of:
# - view_sha512_short
# - view_md5
# - view_sha256
# - view_sha512
default_return_view: view_sha256
# Set this to true if you only want to use external authentication
external_auth_only: false
# If this is true, images are automatically claimed if the windows user exists
# in django
auto_claim_enabled: true
# LDAP Authentication
# ldap:
# enabled: false
# server:
# uri: 'ldap://dc1.example.com'
# tls: false
# bind:
# dn: ''
# password: ''
# search_base: ''
# filter: '(sAMAccountName=%(user)s)'
# require_group: ''

2
debian/gbp.conf vendored
View File

@@ -1,2 +0,0 @@
[buildpackage]
export-dir=../build-area

8
debian/install vendored
View File

@@ -1,8 +0,0 @@
passbook /usr/share/passbook/
static /usr/share/passbook/
manage.py /usr/share/passbook/
passbook.sh /usr/share/passbook/
vendor /usr/share/passbook/
debian/etc/passbook /etc/
debian/templates/database.yml /usr/share/passbook/

View File

@@ -1,14 +0,0 @@
[Unit]
Description=passbook - Authentication Provider/Proxy (Background worker)
After=network.target
Requires=network.target
[Service]
User=passbook
Group=passbook
WorkingDirectory=/usr/share/passbook
Type=simple
ExecStart=/usr/share/passbook/passbook.sh worker
[Install]
WantedBy=multi-user.target

View File

@@ -1,14 +0,0 @@
[Unit]
Description=passbook - Authentication Provider/Proxy
After=network.target
Requires=network.target
[Service]
User=passbook
Group=passbook
WorkingDirectory=/usr/share/passbook
Type=simple
ExecStart=/usr/share/passbook/passbook.sh web
[Install]
WantedBy=multi-user.target

36
debian/postinst vendored
View File

@@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /usr/share/debconf/confmodule
. /usr/share/dbconfig-common/dpkg/postinst.pgsql
# you can set the default database encoding to something else
dbc_pgsql_createdb_encoding="UTF8"
dbc_generate_include=template:/etc/passbook/config.d/database.yml
dbc_generate_include_args="-o template_infile=/usr/share/passbook/database.yml"
dbc_go passbook "$@"
if [ -z "`getent group passbook`" ]; then
addgroup --quiet --system passbook
fi
if [ -z "`getent passwd passbook`" ]; then
echo " * Creating user and group passbook..."
adduser --quiet --system --home /usr/share/passbook --shell /bin/false --ingroup passbook --disabled-password --disabled-login --gecos "passbook User" passbook >> /var/log/passbook/passbook.log 2>&1
fi
echo " * Updating binary packages (psycopg2)"
python3 -m pip install --target=/usr/share/passbook/vendor/ --no-cache-dir --upgrade --force-reinstall psycopg2 >> /var/log/passbook/passbook.log 2>&1
if [ ! -f '/etc/passbook/secret_key' ]; then
echo " * Generating Secret Key"
python3 -c 'import random; result = "".join([random.choice("abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)") for i in range(50)]); print(result)' > /etc/passbook/secret_key 2> /dev/null
fi
chown -R passbook: /usr/share/passbook/
chown -R passbook: /etc/passbook/
chown -R passbook: /var/log/passbook/
chmod 440 /etc/passbook/secret_key
echo " * Running Database Migration"
/usr/share/passbook/passbook.sh migrate
echo " * A superuser can be created with this command '/usr/share/passbook/passbook.sh createsuperuser'"
echo " * You should probably also adjust your settings in '/etc/passbook/config.yml'"
#DEBHELPER#

24
debian/postrm vendored
View File

@@ -1,24 +0,0 @@
#!/bin/sh
set -e
if [ -f /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
fi
if [ -f /usr/share/dbconfig-common/dpkg/postrm.pgsql ]; then
. /usr/share/dbconfig-common/dpkg/postrm.pgsql
dbc_go passbook "$@"
fi
if [ "$1" = "purge" ]; then
if which ucf >/dev/null 2>&1; then
ucf --purge /etc/passbook/config.d/database.yml
ucfr --purge passbook /etc/passbook/config.d/database.yml
fi
rm -rf /etc/passbook/
rm -rf /usr/share/passbook/
fi
#DEBHELPER#

10
debian/prerm vendored
View File

@@ -1,10 +0,0 @@
#!/bin/sh
set -e
. /usr/share/debconf/confmodule
. /usr/share/dbconfig-common/dpkg/prerm.pgsql
dbc_go passbook "$@"
#DEBHELPER#

27
debian/rules vendored
View File

@@ -1,27 +0,0 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1
%:
dh $@ --with=systemd
build-arch:
python3 -m pip install setuptools
python3 -m pip install --target=vendor/ -r requirements.txt
override_dh_strip:
dh_strip --exclude=psycopg2
override_dh_shlibdeps:
dh_shlibdeps --exclude=psycopg2
override_dh_installinit:
dh_installinit --name=passbook
dh_installinit --name=passbook-worker
dh_systemd_enable --name=passbook
dh_systemd_enable --name=passbook-worker
dh_systemd_start
# override_dh_usrlocal to do nothing
override_dh_usrlocal:

View File

@@ -1 +0,0 @@
3.0 (native)

View File

@@ -1,8 +0,0 @@
databases:
default:
engine: django.db.backends.postgresql
name: _DBC_DBNAME_
user: _DBC_DBUSER_
password: _DBC_DBPASS_
host: _DBC_DBSERVER_
port: _DBC_DBPORT_

85
docker-compose.yml Normal file
View File

@@ -0,0 +1,85 @@
---
version: '3.2'
services:
postgresql:
image: postgres
volumes:
- database:/var/lib/postgresql/data
networks:
- internal
environment:
- POSTGRES_PASSWORD=${PG_PASS:-thisisnotagoodpassword}
- POSTGRES_USER=passbook
- POSTGRES_DB=passbook
labels:
- traefik.enable=false
redis:
image: redis
networks:
- internal
labels:
- traefik.enable=false
server:
image: beryju/passbook:${PASSBOOK_TAG:-latest}
command:
- uwsgi
- uwsgi.ini
environment:
- PASSBOOK_REDIS__HOST=redis
- PASSBOOK_ERROR_REPORTING=${PASSBOOK_ERROR_REPORTING:-false}
- PASSBOOK_POSTGRESQL__HOST=postgresql
- PASSBOOK_POSTGRESQL__PASSWORD=${PG_PASS:-thisisnotagoodpassword}
ports:
- 8000
networks:
- internal
labels:
- traefik.port=8000
- traefik.docker.network=internal
- traefik.frontend.rule=PathPrefix:/
worker:
image: beryju/passbook:${PASSBOOK_TAG:-latest}
command:
- celery
- worker
- --autoscale=10,3
- -E
- -B
- -A=passbook.root.celery
- -s=/tmp/celerybeat-schedule
networks:
- internal
labels:
- traefik.enable=false
environment:
- PASSBOOK_REDIS__HOST=redis
- PASSBOOK_ERROR_REPORTING=${PASSBOOK_ERROR_REPORTING:-false}
- PASSBOOK_POSTGRESQL__HOST=postgresql
- PASSBOOK_POSTGRESQL__PASSWORD=${PG_PASS:-thisisnotagoodpassword}
static:
image: beryju/passbook-static:latest
networks:
- internal
labels:
- traefik.frontend.rule=PathPrefix:/static, /robots.txt, /favicon.ico
- traefik.port=80
- traefik.docker.network=internal
traefik:
image: traefik:1.7
command: --api --docker --defaultentrypoints=https --entryPoints='Name:http Address::80 Redirect.EntryPoint:https' --entryPoints='Name:https Address::443 TLS'
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "0.0.0.0:80:80"
- "0.0.0.0:443:443"
- "127.0.0.1:8080:8080"
networks:
- internal
volumes:
database:
driver: local
networks:
internal: {}

9
docker.env.yml Normal file
View File

@@ -0,0 +1,9 @@
debug: true
postgresql:
user: postgres
host: postgresql
redis:
host: redis
log_level: debug

3
docker/bootstrap.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash -ex
/app/wait_for_db.py
"$@"

10
docker/uwsgi.ini Normal file
View File

@@ -0,0 +1,10 @@
[uwsgi]
http = 0.0.0.0:8000
wsgi-file = passbook/root/wsgi.py
processes = 2
master = true
threads = 2
enable-threads = true
uid = passbook
gid = passbook
disable-logging = True

41
docker/wait_for_db.py Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env python
"""This file needs to be run from the root of the project to correctly
import passbook. This is done by the dockerfile."""
from time import sleep
from psycopg2 import OperationalError, connect
from redis import Redis
from redis.exceptions import RedisError
from structlog import get_logger
from passbook.lib.config import CONFIG
LOGGER = get_logger()
while True:
try:
conn = connect(
dbname=CONFIG.y("postgresql.name"),
user=CONFIG.y("postgresql.user"),
password=CONFIG.y("postgresql.password"),
host=CONFIG.y("postgresql.host"),
)
conn.cursor()
break
except OperationalError:
sleep(1)
LOGGER.warning("PostgreSQL Connection failed, retrying...")
while True:
try:
redis = Redis(
host=CONFIG.y("redis.host"),
port=6379,
db=CONFIG.y("redis.message_queue_db"),
password=CONFIG.y("redis.password"),
)
redis.ping()
break
except RedisError:
sleep(1)
LOGGER.warning("Redis Connection failed, retrying...")

3
docs/build.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash -x
pip install -U mkdocs mkdocs-material
mkdocs gh-deploy

66
docs/expressions/index.md Normal file
View File

@@ -0,0 +1,66 @@
# Expressions
Expressions allow you to write custom logic using Python code.
Expressions are used in different places throughout passbook, and can do different things.
!!! info
These functions/objects are available wherever expressions are used. For more specific information, see [Expression Policies](../policies/expression.md) and [Property Mappings](../property-mappings/expression.md)
## Global objects
- `pb_logger`: structlog BoundLogger. ([ref](https://www.structlog.org/en/stable/api.html#structlog.BoundLogger))
- `requests`: requests Session object. ([ref](https://requests.readthedocs.io/en/master/user/advanced/))
## Generally available functions
### `regex_match(value: Any, regex: str) -> bool`
Check if `value` matches Regular Expression `regex`.
Example:
```python
return regex_match(request.user.username, '.*admin.*')
```
### `regex_replace(value: Any, regex: str, repl: str) -> str`
Replace anything matching `regex` within `value` with `repl` and return it.
Example:
```python
user_email_local = regex_replace(request.user.email, '(.+)@.+', '')
```
### `pb_is_group_member(user: User, **group_filters) -> bool`
Check if `user` is member of a group matching `**group_filters`.
Example:
```python
return pb_is_group_member(request.user, name="test_group")
```
### `pb_user_by(**filters) -> Optional[User]`
Fetch a user matching `**filters`. Returns "None" if no user was found.
Example:
```python
other_user = pb_user_by(username="other_user")
```
## Comparing IP Addresses
To compare IP Addresses or check if an IP Address is within a given subnet, you can use the functions `ip_address('192.0.2.1')` and `ip_network('192.0.2.0/24')`. With these objects you can do [arithmetic operations](https://docs.python.org/3/library/ipaddress.html#operators).
You can also check if an IP Address is within a subnet by writing the following:
```python
ip_address('192.0.2.1') in ip_network('192.0.2.0/24')
# evaluates to True
```

View File

@@ -0,0 +1,21 @@
# Passbook User Object
The User object has the following attributes:
- `username`: User's username.
- `email` User's email.
- `name` User's display mame.
- `is_staff` Boolean field if user is staff.
- `is_active` Boolean field if user is active.
- `date_joined` Date user joined/was created.
- `password_change_date` Date password was last changed.
- `attributes` Dynamic attributes.
## Examples
List all the User's group names:
```python
for group in user.groups.all():
yield group.name
```

View File

@@ -0,0 +1,36 @@
# Login Flow
This document describes how a simple authentication flow can be created.
This flow is created automatically when passbook is installed.
1. Create an **Identification** stage
> Here you can select whichever fields the user can identify themselves with
> Select the Template **Default Login**, as this template shows the (optional) Flows
> Here you can also link optional enrollment and recovery flows.
2. Create a **Password** stage
> Select the Backend you want the password to be checked against. Select "passbook-internal Userdatabase".
3. Create a **User Login** stage
> This stage doesn't have any options.
4. Create a flow
> Create a flow with the delegation of **Authentication**
> Assign a name and a slug. The slug is used in the URL when the flow is executed.
5. Bind the stages to the flow
> Bind the **Identification** Stage with an order of 0
> Bind the **Password** Stage with an order of 1
> Bind the **User Login** Stage with an order of 2
![](login.png)
!!! notice
This flow can used by any user, authenticated and un-authenticated. This means any authenticated user that visits this flow can login again.

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

45
docs/flow/flows.md Normal file
View File

@@ -0,0 +1,45 @@
# Flows
Flows are a method of describing a sequence of stages. A stage represents a single verification or logic step. They are used to authenticate users, enroll them, and more.
Upon flow execution, a plan containing all stages is generated. This means that all attached policies are evaluated upon execution. This behaviour can be altered by enabling the **Re-evaluate Policies** option on the binding.
To determine which flow is linked, passbook searches all flows with the required designation and chooses the first instance the current user has access to.
## Permissions
Flows can have policies assigned to them. These policies determine if the current user is allowed to see and use this flow.
## Designation
Flows are designated for a single purpose. This designation changes when a flow is used. The following designations are available:
### Authentication
This is designates a flow to be used for authentication.
The authentication flow should always contain a [**User Login**](stages/user_login.md) stage, which attaches the staged user to the current session.
### Invalidation
This designates a flow to be used to invalidate a session.
This stage should always contain a [**User Logout**](stages/user_logout.md) stage, which resets the current session.
### Enrollment
This designates a flow for enrollment. This flow can contain any amount of verification stages, such as [**email**](stages/email/index.md) or [**captcha**](stages/captcha/index.md). At the end, to create the user, you can use the [**user_write**](stages/user_write.md) stage, which either updates the currently staged user, or if none exists, creates a new one.
### Unenrollment
This designates a flow for unenrollment. This flow can contain any amount of verification stages, such as [**email**](stages/email/index.md) or [**captcha**](stages/captcha/index.md). As a final stage, to delete the account, use the [**user_delete**](stages/user_delete.md) stage.
### Recovery
This designates a flow for recovery. This flow normally contains an [**identification**](stages/identification/index.md) stage to find the user. It can also contain any amount of verification stages, such as [**email**](stages/email/index.md) or [**captcha**](stages/captcha/index.md).
Afterwards, use the [**prompt**](stages/prompt/index.md) stage to ask the user for a new password and the [**user_write**](stages/user_write.md) stage to update the password.
### Change Password
This designates a flow for password changes. This flow can contain any amount of verification stages, such as [**email**](stages/email/index.md) or [**captcha**](stages/captcha/index.md).
Afterwards, use the [**prompt**](stages/prompt/index.md) stage to ask the user for a new password and the [**user_write**](stages/user_write.md) stage to update the password.

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@@ -0,0 +1,7 @@
# Captcha stage
This stage adds a form of verification using [Google's ReCaptcha](https://www.google.com/recaptcha/intro/v3.html).
This stage has two required fields: Public key and private key. These can both be acquired at https://www.google.com/recaptcha/admin.
![](captcha-admin.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -0,0 +1,5 @@
# Dummy stage
This stage is used for development and has no function. It presents the user with a form which requires a single confirmation.
![](dummy.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -0,0 +1,5 @@
# Email
This stage can be used for email verification. passbook's background worker will send an email using the specified connection details. When an email can't be delivered, delivery is automatically retried periodically.
![](email-recovery.png)

View File

@@ -0,0 +1,25 @@
# Identification
This stage provides a ready-to-go form for users to identify themselves.
## Options
### User Fields
Select which fields the user can use to identify themselves. Multiple fields can be specified and separated with a comma.
Valid choices:
- email
- username
### Template
This specifies which template is rendered. Currently there are two templates:
The `Login` template shows configured Sources below the login form, as well as linking to the defined Enrollment and Recovery flows.
The `Recovery` template shows only the form.
### Enrollment/Recovery Flow
These fields specify if and which flows are linked on the form. The enrollment flow is linked as `Need an account? Sign up.`, and the recovery flow is linked as `Forgot username or password?`.

View File

@@ -0,0 +1,7 @@
# Invitation Stage
This stage can be used to invite users. You can use this to enroll users with preset values.
If the option `Continue Flow without Invitation` is enabled, this stage will continue even when no invitation token is present.
To check if a user has used an invitation within a policy, you can check `request.context.invitation_in_effect`.

View File

@@ -0,0 +1,7 @@
# OTP Stage
This stage offers a generic Time-based One-time Password authentication step.
You can optionally enforce this step, which will force every user without OTP setup to configure it.
This stage uses a 6-digit Code with a 30 second time-drift. This is currently not changeable.

View File

@@ -0,0 +1,3 @@
# Password Stage
This is a generic password prompt which authenticates the current `pending_user`. This stage allows the selection of the source the user is authenticated against.

View File

@@ -0,0 +1,42 @@
# Prompt Stage
This stage is used to show the user arbitrary prompts.
## Prompt
The prompt can be any of the following types:
| Type | Description |
|----------|------------------------------------------------------------------|
| text | Arbitrary text. No client-side validation is done. |
| email | Email input. Requires a valid email adress. |
| password | Password input. |
| number | Number input. Any number is allowed. |
| checkbox | Simple checkbox. |
| hidden | Hidden input field. Allows for the pre-setting of default values.|
A prompt has the following attributes:
### `field_key`
The HTML name used for the prompt. This key is also used to later retrieve the data in expression policies:
```python
request.context.get('prompt_data').get('<field_key>')
```
### `label`
The label used to describe the field. Depending on the selected template, this may not be shown.
### `required`
A flag which decides whether or not this field is required.
### `placeholder`
A field placeholder, shown within the input field. This field is also used by the `hidden` type as the actual value.
### `order`
The numerical index of the prompt. This applies to all stages which this prompt is a part of.

View File

@@ -0,0 +1,16 @@
# Prompt Validation
Further validation of prompts can be done using policies.
To validate that two password fields are identical, create the following expression policy:
```python
if request.context.get('prompt_data').get('password') == request.context.get('prompt_data').get('password_repeat'):
return True
pb_message("Passwords don't match.")
return False
```
This policy expects you to have two password fields with `field_key` set to `password` and `password_repeat`.
Afterwards, bind this policy to the prompt stage you want to validate.

View File

@@ -0,0 +1,8 @@
# User Delete Stage
!!! danger
This stage deletes the `pending_user` without any confirmation. You have to make sure the user is aware of this.
This stage is intended for an unenrollment flow. It deletes the currently pending user.
The pending user is also removed from the current session.

View File

@@ -0,0 +1,5 @@
# User Login Stage
This stage attaches a currently pending user to the current session.
It can be used after `user_write` during an enrollment flow, or after a `password` stage during an authentication flow.

View File

@@ -0,0 +1,3 @@
# User Logout Stage
Opposite stage of [User Login Stages](user_login.md). It removes the user from the current session.

View File

@@ -0,0 +1,3 @@
# User Write Stage
This stages writes data from the current context to the current pending user. If no user is pending, a new one is created.

View File

@@ -1,2 +1,2 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="270px" height="10px" viewBox="0 0 270 10" enable-background="new 0 0 270 10" xml:space="preserve"><defs><style>.cls-1{isolation:isolate;}.cls-2{fill:#fff;}</style></defs><g class="cls-1"><path class="cls-2" d="M1.65,11V2.45H2.87V3a2.81,2.81,0,0,1,.47-.45A1.13,1.13,0,0,1,4,2.38,1.11,1.11,0,0,1,5.1,3a1.55,1.55,0,0,1,.16.5,5.61,5.61,0,0,1,0,.81V6.58c0,.45,0,.77,0,1a1.17,1.17,0,0,1-.55.9,1.23,1.23,0,0,1-.7.16,1.35,1.35,0,0,1-.64-.16A1.53,1.53,0,0,1,2.89,8h0v3ZM4.08,4.43a1.21,1.21,0,0,0-.14-.6.51.51,0,0,0-.46-.22A.54.54,0,0,0,3,3.82a.8.8,0,0,0-.17.54V6.73A.68.68,0,0,0,3,7.2a.6.6,0,0,0,.44.18A.53.53,0,0,0,4,7.17a1,1,0,0,0,.12-.5Z"/><path class="cls-2" d="M8.63,8.54V7.91h0a2.24,2.24,0,0,1-.48.52,1.13,1.13,0,0,1-.69.18A1.39,1.39,0,0,1,7,8.54a1.09,1.09,0,0,1-.43-.24,1.32,1.32,0,0,1-.33-.49A2.33,2.33,0,0,1,6.11,7a4.89,4.89,0,0,1,.08-.91,1.51,1.51,0,0,1,.31-.65,1.44,1.44,0,0,1,.59-.38A3.19,3.19,0,0,1,8,4.93h.59V4.33a1,1,0,0,0-.13-.52A.52.52,0,0,0,8,3.61a.71.71,0,0,0-.44.15.78.78,0,0,0-.26.46H6.13A2,2,0,0,1,6.69,2.9a1.73,1.73,0,0,1,.57-.38A2,2,0,0,1,8,2.38a2.18,2.18,0,0,1,.72.12,1.71,1.71,0,0,1,.59.36,2,2,0,0,1,.38.6,2.18,2.18,0,0,1,.14.84V8.54Zm0-2.62-.34,0a1.2,1.2,0,0,0-.67.18.76.76,0,0,0-.29.68.89.89,0,0,0,.17.56A.55.55,0,0,0,8,7.53a.63.63,0,0,0,.49-.2.91.91,0,0,0,.17-.58Z"/><path class="cls-2" d="M13,4.16a.59.59,0,0,0-.2-.47.65.65,0,0,0-.42-.16.59.59,0,0,0-.45.19.66.66,0,0,0-.15.43.8.8,0,0,0,.08.33.85.85,0,0,0,.44.29l.71.29a1.73,1.73,0,0,1,.95.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.56,1.56,0,0,1-.58.39,1.88,1.88,0,0,1-2-.32,1.58,1.58,0,0,1-.4-.57,1.81,1.81,0,0,1-.17-.8h1.15a1.11,1.11,0,0,0,.17.47.56.56,0,0,0,.49.22.71.71,0,0,0,.47-.18A.59.59,0,0,0,13,6.8a.69.69,0,0,0-.13-.43,1.08,1.08,0,0,0-.48-.32l-.59-.21a2.08,2.08,0,0,1-.9-.64,1.66,1.66,0,0,1-.33-1,1.89,1.89,0,0,1,.14-.72,1.78,1.78,0,0,1,.4-.57,1.5,1.5,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.6,1.6,0,0,1,.54.38,1.85,1.85,0,0,1,.36.57,1.82,1.82,0,0,1,.13.7Z"/><path class="cls-2" d="M17.2,4.16a.63.63,0,0,0-.2-.47.69.69,0,0,0-.43-.16.55.55,0,0,0-.44.19.62.62,0,0,0-.16.43.68.68,0,0,0,.09.33.81.81,0,0,0,.43.29l.72.29a1.7,1.7,0,0,1,.94.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.61,1.61,0,0,1-.57.39,1.81,1.81,0,0,1-.74.15,1.76,1.76,0,0,1-1.24-.47,1.61,1.61,0,0,1-.41-.57,2,2,0,0,1-.17-.8h1.15a1.12,1.12,0,0,0,.18.47.53.53,0,0,0,.48.22.72.72,0,0,0,.48-.18.59.59,0,0,0,.21-.48.69.69,0,0,0-.14-.43,1,1,0,0,0-.48-.32l-.58-.21a2.06,2.06,0,0,1-.91-.64,1.66,1.66,0,0,1-.33-1A1.89,1.89,0,0,1,15,3.44a1.78,1.78,0,0,1,.4-.57,1.58,1.58,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.75,1.75,0,0,1,.55.38,1.85,1.85,0,0,1,.36.57,2,2,0,0,1,.13.7Z"/><path class="cls-2" d="M19.2,8.54V0h1.22V3h0a1.53,1.53,0,0,1,.48-.47,1.39,1.39,0,0,1,.65-.16,1.26,1.26,0,0,1,.69.16,1.35,1.35,0,0,1,.4.39,1.18,1.18,0,0,1,.15.51,7.72,7.72,0,0,1,0,1V6.73a5.56,5.56,0,0,1-.05.8,1.56,1.56,0,0,1-.15.5,1.12,1.12,0,0,1-1.07.58,1.15,1.15,0,0,1-.7-.18A3.79,3.79,0,0,1,20.42,8v.55Zm2.44-4.21a1,1,0,0,0-.13-.51A.5.5,0,0,0,21,3.61a.57.57,0,0,0-.44.18.66.66,0,0,0-.18.48V6.63a.83.83,0,0,0,.17.54.52.52,0,0,0,.45.21.49.49,0,0,0,.45-.22,1.11,1.11,0,0,0,.15-.6Z"/><path class="cls-2" d="M23.76,4.49a4.83,4.83,0,0,1,0-.68A1.55,1.55,0,0,1,24,3.26a1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24A1.59,1.59,0,0,1,24,7.73a1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1,0-.68ZM25,6.69a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17A.55.55,0,0,0,26,7.21a.72.72,0,0,0,.16-.52V4.3A.74.74,0,0,0,26,3.78a.55.55,0,0,0-.44-.17.53.53,0,0,0-.43.17A.74.74,0,0,0,25,4.3Z"/><path class="cls-2" d="M28.2,4.49a4.83,4.83,0,0,1,.05-.68,1.55,1.55,0,0,1,.18-.55,1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24,1.59,1.59,0,0,1-.62-.64,1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1-.05-.68Zm1.22,2.2a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17.55.55,0,0,0,.44-.17.72.72,0,0,0,.16-.52V4.3a.74.74,0,0,0-.16-.52A.55.55,0,0,0,30,3.61a.53.53,0,0,0-.43.17.74.74,0,0,0-.17.52Z"/><path class="cls-2" d="M32.75,8.54V0H34V5.11h0l1.47-2.66H36.7L35.24,4.93,37,8.54H35.66l-1.1-2.63L34,6.83V8.54Z"/></g></svg>
width="120px" height="20px" viewBox="15 0 10 10" enable-background="new 0 0 270 10" xml:space="preserve"><defs><style>.cls-1{isolation:isolate;}.cls-2{fill:#fff;}</style></defs><g class="cls-1"><path class="cls-2" d="M1.65,11V2.45H2.87V3a2.81,2.81,0,0,1,.47-.45A1.13,1.13,0,0,1,4,2.38,1.11,1.11,0,0,1,5.1,3a1.55,1.55,0,0,1,.16.5,5.61,5.61,0,0,1,0,.81V6.58c0,.45,0,.77,0,1a1.17,1.17,0,0,1-.55.9,1.23,1.23,0,0,1-.7.16,1.35,1.35,0,0,1-.64-.16A1.53,1.53,0,0,1,2.89,8h0v3ZM4.08,4.43a1.21,1.21,0,0,0-.14-.6.51.51,0,0,0-.46-.22A.54.54,0,0,0,3,3.82a.8.8,0,0,0-.17.54V6.73A.68.68,0,0,0,3,7.2a.6.6,0,0,0,.44.18A.53.53,0,0,0,4,7.17a1,1,0,0,0,.12-.5Z"/><path class="cls-2" d="M8.63,8.54V7.91h0a2.24,2.24,0,0,1-.48.52,1.13,1.13,0,0,1-.69.18A1.39,1.39,0,0,1,7,8.54a1.09,1.09,0,0,1-.43-.24,1.32,1.32,0,0,1-.33-.49A2.33,2.33,0,0,1,6.11,7a4.89,4.89,0,0,1,.08-.91,1.51,1.51,0,0,1,.31-.65,1.44,1.44,0,0,1,.59-.38A3.19,3.19,0,0,1,8,4.93h.59V4.33a1,1,0,0,0-.13-.52A.52.52,0,0,0,8,3.61a.71.71,0,0,0-.44.15.78.78,0,0,0-.26.46H6.13A2,2,0,0,1,6.69,2.9a1.73,1.73,0,0,1,.57-.38A2,2,0,0,1,8,2.38a2.18,2.18,0,0,1,.72.12,1.71,1.71,0,0,1,.59.36,2,2,0,0,1,.38.6,2.18,2.18,0,0,1,.14.84V8.54Zm0-2.62-.34,0a1.2,1.2,0,0,0-.67.18.76.76,0,0,0-.29.68.89.89,0,0,0,.17.56A.55.55,0,0,0,8,7.53a.63.63,0,0,0,.49-.2.91.91,0,0,0,.17-.58Z"/><path class="cls-2" d="M13,4.16a.59.59,0,0,0-.2-.47.65.65,0,0,0-.42-.16.59.59,0,0,0-.45.19.66.66,0,0,0-.15.43.8.8,0,0,0,.08.33.85.85,0,0,0,.44.29l.71.29a1.73,1.73,0,0,1,.95.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.56,1.56,0,0,1-.58.39,1.88,1.88,0,0,1-2-.32,1.58,1.58,0,0,1-.4-.57,1.81,1.81,0,0,1-.17-.8h1.15a1.11,1.11,0,0,0,.17.47.56.56,0,0,0,.49.22.71.71,0,0,0,.47-.18A.59.59,0,0,0,13,6.8a.69.69,0,0,0-.13-.43,1.08,1.08,0,0,0-.48-.32l-.59-.21a2.08,2.08,0,0,1-.9-.64,1.66,1.66,0,0,1-.33-1,1.89,1.89,0,0,1,.14-.72,1.78,1.78,0,0,1,.4-.57,1.5,1.5,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.6,1.6,0,0,1,.54.38,1.85,1.85,0,0,1,.36.57,1.82,1.82,0,0,1,.13.7Z"/><path class="cls-2" d="M17.2,4.16a.63.63,0,0,0-.2-.47.69.69,0,0,0-.43-.16.55.55,0,0,0-.44.19.62.62,0,0,0-.16.43.68.68,0,0,0,.09.33.81.81,0,0,0,.43.29l.72.29a1.7,1.7,0,0,1,.94.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.61,1.61,0,0,1-.57.39,1.81,1.81,0,0,1-.74.15,1.76,1.76,0,0,1-1.24-.47,1.61,1.61,0,0,1-.41-.57,2,2,0,0,1-.17-.8h1.15a1.12,1.12,0,0,0,.18.47.53.53,0,0,0,.48.22.72.72,0,0,0,.48-.18.59.59,0,0,0,.21-.48.69.69,0,0,0-.14-.43,1,1,0,0,0-.48-.32l-.58-.21a2.06,2.06,0,0,1-.91-.64,1.66,1.66,0,0,1-.33-1A1.89,1.89,0,0,1,15,3.44a1.78,1.78,0,0,1,.4-.57,1.58,1.58,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.75,1.75,0,0,1,.55.38,1.85,1.85,0,0,1,.36.57,2,2,0,0,1,.13.7Z"/><path class="cls-2" d="M19.2,8.54V0h1.22V3h0a1.53,1.53,0,0,1,.48-.47,1.39,1.39,0,0,1,.65-.16,1.26,1.26,0,0,1,.69.16,1.35,1.35,0,0,1,.4.39,1.18,1.18,0,0,1,.15.51,7.72,7.72,0,0,1,0,1V6.73a5.56,5.56,0,0,1-.05.8,1.56,1.56,0,0,1-.15.5,1.12,1.12,0,0,1-1.07.58,1.15,1.15,0,0,1-.7-.18A3.79,3.79,0,0,1,20.42,8v.55Zm2.44-4.21a1,1,0,0,0-.13-.51A.5.5,0,0,0,21,3.61a.57.57,0,0,0-.44.18.66.66,0,0,0-.18.48V6.63a.83.83,0,0,0,.17.54.52.52,0,0,0,.45.21.49.49,0,0,0,.45-.22,1.11,1.11,0,0,0,.15-.6Z"/><path class="cls-2" d="M23.76,4.49a4.83,4.83,0,0,1,0-.68A1.55,1.55,0,0,1,24,3.26a1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24A1.59,1.59,0,0,1,24,7.73a1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1,0-.68ZM25,6.69a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17A.55.55,0,0,0,26,7.21a.72.72,0,0,0,.16-.52V4.3A.74.74,0,0,0,26,3.78a.55.55,0,0,0-.44-.17.53.53,0,0,0-.43.17A.74.74,0,0,0,25,4.3Z"/><path class="cls-2" d="M28.2,4.49a4.83,4.83,0,0,1,.05-.68,1.55,1.55,0,0,1,.18-.55,1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24,1.59,1.59,0,0,1-.62-.64,1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1-.05-.68Zm1.22,2.2a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17.55.55,0,0,0,.44-.17.72.72,0,0,0,.16-.52V4.3a.74.74,0,0,0-.16-.52A.55.55,0,0,0,30,3.61a.53.53,0,0,0-.43.17.74.74,0,0,0-.17.52Z"/><path class="cls-2" d="M32.75,8.54V0H34V5.11h0l1.47-2.66H36.7L35.24,4.93,37,8.54H35.66l-1.1-2.63L34,6.83V8.54Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,2 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="120px" height="20px" viewBox="15 0 10 10" enable-background="new 0 0 270 10" xml:space="preserve"><defs><style>.cls-1{isolation:isolate;}.cls-2{fill:#000;}</style></defs><g class="cls-1"><path class="cls-2" d="M1.65,11V2.45H2.87V3a2.81,2.81,0,0,1,.47-.45A1.13,1.13,0,0,1,4,2.38,1.11,1.11,0,0,1,5.1,3a1.55,1.55,0,0,1,.16.5,5.61,5.61,0,0,1,0,.81V6.58c0,.45,0,.77,0,1a1.17,1.17,0,0,1-.55.9,1.23,1.23,0,0,1-.7.16,1.35,1.35,0,0,1-.64-.16A1.53,1.53,0,0,1,2.89,8h0v3ZM4.08,4.43a1.21,1.21,0,0,0-.14-.6.51.51,0,0,0-.46-.22A.54.54,0,0,0,3,3.82a.8.8,0,0,0-.17.54V6.73A.68.68,0,0,0,3,7.2a.6.6,0,0,0,.44.18A.53.53,0,0,0,4,7.17a1,1,0,0,0,.12-.5Z"/><path class="cls-2" d="M8.63,8.54V7.91h0a2.24,2.24,0,0,1-.48.52,1.13,1.13,0,0,1-.69.18A1.39,1.39,0,0,1,7,8.54a1.09,1.09,0,0,1-.43-.24,1.32,1.32,0,0,1-.33-.49A2.33,2.33,0,0,1,6.11,7a4.89,4.89,0,0,1,.08-.91,1.51,1.51,0,0,1,.31-.65,1.44,1.44,0,0,1,.59-.38A3.19,3.19,0,0,1,8,4.93h.59V4.33a1,1,0,0,0-.13-.52A.52.52,0,0,0,8,3.61a.71.71,0,0,0-.44.15.78.78,0,0,0-.26.46H6.13A2,2,0,0,1,6.69,2.9a1.73,1.73,0,0,1,.57-.38A2,2,0,0,1,8,2.38a2.18,2.18,0,0,1,.72.12,1.71,1.71,0,0,1,.59.36,2,2,0,0,1,.38.6,2.18,2.18,0,0,1,.14.84V8.54Zm0-2.62-.34,0a1.2,1.2,0,0,0-.67.18.76.76,0,0,0-.29.68.89.89,0,0,0,.17.56A.55.55,0,0,0,8,7.53a.63.63,0,0,0,.49-.2.91.91,0,0,0,.17-.58Z"/><path class="cls-2" d="M13,4.16a.59.59,0,0,0-.2-.47.65.65,0,0,0-.42-.16.59.59,0,0,0-.45.19.66.66,0,0,0-.15.43.8.8,0,0,0,.08.33.85.85,0,0,0,.44.29l.71.29a1.73,1.73,0,0,1,.95.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.56,1.56,0,0,1-.58.39,1.88,1.88,0,0,1-2-.32,1.58,1.58,0,0,1-.4-.57,1.81,1.81,0,0,1-.17-.8h1.15a1.11,1.11,0,0,0,.17.47.56.56,0,0,0,.49.22.71.71,0,0,0,.47-.18A.59.59,0,0,0,13,6.8a.69.69,0,0,0-.13-.43,1.08,1.08,0,0,0-.48-.32l-.59-.21a2.08,2.08,0,0,1-.9-.64,1.66,1.66,0,0,1-.33-1,1.89,1.89,0,0,1,.14-.72,1.78,1.78,0,0,1,.4-.57,1.5,1.5,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.6,1.6,0,0,1,.54.38,1.85,1.85,0,0,1,.36.57,1.82,1.82,0,0,1,.13.7Z"/><path class="cls-2" d="M17.2,4.16a.63.63,0,0,0-.2-.47.69.69,0,0,0-.43-.16.55.55,0,0,0-.44.19.62.62,0,0,0-.16.43.68.68,0,0,0,.09.33.81.81,0,0,0,.43.29l.72.29a1.7,1.7,0,0,1,.94.72,2,2,0,0,1,.26,1,1.85,1.85,0,0,1-.52,1.3,1.61,1.61,0,0,1-.57.39,1.81,1.81,0,0,1-.74.15,1.76,1.76,0,0,1-1.24-.47,1.61,1.61,0,0,1-.41-.57,2,2,0,0,1-.17-.8h1.15a1.12,1.12,0,0,0,.18.47.53.53,0,0,0,.48.22.72.72,0,0,0,.48-.18.59.59,0,0,0,.21-.48.69.69,0,0,0-.14-.43,1,1,0,0,0-.48-.32l-.58-.21a2.06,2.06,0,0,1-.91-.64,1.66,1.66,0,0,1-.33-1A1.89,1.89,0,0,1,15,3.44a1.78,1.78,0,0,1,.4-.57,1.58,1.58,0,0,1,.56-.36,1.82,1.82,0,0,1,.7-.13,1.93,1.93,0,0,1,.69.13,1.75,1.75,0,0,1,.55.38,1.85,1.85,0,0,1,.36.57,2,2,0,0,1,.13.7Z"/><path class="cls-2" d="M19.2,8.54V0h1.22V3h0a1.53,1.53,0,0,1,.48-.47,1.39,1.39,0,0,1,.65-.16,1.26,1.26,0,0,1,.69.16,1.35,1.35,0,0,1,.4.39,1.18,1.18,0,0,1,.15.51,7.72,7.72,0,0,1,0,1V6.73a5.56,5.56,0,0,1-.05.8,1.56,1.56,0,0,1-.15.5,1.12,1.12,0,0,1-1.07.58,1.15,1.15,0,0,1-.7-.18A3.79,3.79,0,0,1,20.42,8v.55Zm2.44-4.21a1,1,0,0,0-.13-.51A.5.5,0,0,0,21,3.61a.57.57,0,0,0-.44.18.66.66,0,0,0-.18.48V6.63a.83.83,0,0,0,.17.54.52.52,0,0,0,.45.21.49.49,0,0,0,.45-.22,1.11,1.11,0,0,0,.15-.6Z"/><path class="cls-2" d="M23.76,4.49a4.83,4.83,0,0,1,0-.68A1.55,1.55,0,0,1,24,3.26a1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24A1.59,1.59,0,0,1,24,7.73a1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1,0-.68ZM25,6.69a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17A.55.55,0,0,0,26,7.21a.72.72,0,0,0,.16-.52V4.3A.74.74,0,0,0,26,3.78a.55.55,0,0,0-.44-.17.53.53,0,0,0-.43.17A.74.74,0,0,0,25,4.3Z"/><path class="cls-2" d="M28.2,4.49a4.83,4.83,0,0,1,.05-.68,1.55,1.55,0,0,1,.18-.55,1.59,1.59,0,0,1,.62-.64,1.84,1.84,0,0,1,1-.24,1.87,1.87,0,0,1,1,.24,1.59,1.59,0,0,1,.62.64,1.55,1.55,0,0,1,.18.55,4.83,4.83,0,0,1,.05.68v2a4.72,4.72,0,0,1-.05.68,1.55,1.55,0,0,1-.18.55,1.59,1.59,0,0,1-.62.64,1.87,1.87,0,0,1-1,.24,1.84,1.84,0,0,1-1-.24,1.59,1.59,0,0,1-.62-.64,1.55,1.55,0,0,1-.18-.55,4.72,4.72,0,0,1-.05-.68Zm1.22,2.2a.72.72,0,0,0,.17.52.53.53,0,0,0,.43.17.55.55,0,0,0,.44-.17.72.72,0,0,0,.16-.52V4.3a.74.74,0,0,0-.16-.52A.55.55,0,0,0,30,3.61a.53.53,0,0,0-.43.17.74.74,0,0,0-.17.52Z"/><path class="cls-2" d="M32.75,8.54V0H34V5.11h0l1.47-2.66H36.7L35.24,4.93,37,8.54H35.66l-1.1-2.63L34,6.83V8.54Z"/></g></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

BIN
docs/images/screen_apps.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

16
docs/index.md Executable file
View File

@@ -0,0 +1,16 @@
#
![passbook logo](images/logo.svg){: style="height:50px"}
![passbook brand](images/brand.svg){: style="height:50px"}
## What is passbook?
passbook is an open-source Identity Provider focused on flexibility and versatility. You can use passbook in an existing environment to add support for new protocols. passbook is also a great solution for implementing signup/recovery/etc in your application, so you don't have to deal with it.
## Installation
See [Docker-compose](installation/docker-compose.md) or [Kubernetes](installation/kubernetes.md)
## Screenshots
![](images/screen_apps.png)
![](images/screen_admin.png)

View File

@@ -0,0 +1,35 @@
# docker-compose
This installation method is for test-setups and small-scale productive setups.
## Prerequisites
- docker
- docker-compose
## Install
Download the latest `docker-compose.yml` from [here](https://raw.githubusercontent.com/BeryJu/passbook/master/docker-compose.yml). Place it in a directory of your choice.
```
wget https://raw.githubusercontent.com/BeryJu/passbook/master/docker-compose.yml
# Optionally enable Error-reporting
# export PASSBOOK_ERROR_REPORTING=true
# Optionally deploy a different version
# export PASSBOOK_TAG=0.9.0-rc1
# If this is a productive installation, set a different PostgreSQL Password
# export PG_PASS=$(pwgen 40 1)
docker-compose pull
docker-compose up -d
docker-compose exec server ./manage.py migrate
```
The compose file references the current latest version, which can be overridden with the `SERVER_TAG` environment variable.
If you plan to use this setup for production, it is also advised to change the PostgreSQL password by setting `PG_PASS` to a password of your choice.
Now you can pull the Docker images needed by running `docker-compose pull`. After this has finished, run `docker-compose up -d` to start passbook.
passbook will then be reachable via HTTP on port 80, and HTTPS on port 443. You can optionally configure the packaged traefik to use Let's Encrypt certificates for TLS Encryption.
The initial setup process also creates a default admin user, the username and password for which is `pbadmin`. It is highly recommended to change this password as soon as you log in.

View File

@@ -0,0 +1,69 @@
# Kubernetes
For a mid to high-load installation, Kubernetes is recommended. passbook is installed using a helm-chart.
This installation automatically applies database migrations on startup. After the installation is done, you can use `pbadmin` as username and password.
```
# Default values for passbook.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
# passbook version to use. Defaults to latest stable version
# image:
# tag:
nameOverride: ""
config:
# Optionally specify fixed secret_key, otherwise generated automatically
# secret_key: _k*@6h2u2@q-dku57hhgzb7tnx*ba9wodcb^s9g0j59@=y(@_o
# Enable error reporting
error_reporting: false
# Log level used by web and worker
# Can be either debug, info, warning, error
log_level: warning
# Optionally enable Elastic APM Support
apm:
enabled: false
server_url: ""
secret_token: ""
verify_server_cert: true
# This Helm chart ships with built-in Prometheus ServiceMonitors and Rules.
# This requires the CoreOS Prometheus Operator.
monitoring:
enabled: false
# Enable Database Backups to S3
# backup:
# access_key: access-key
# secret_key: secret-key
# bucket: s3-bucket
# host: s3-host
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- passbook.k8s.local
tls: []
# - secretName: chart-example-tls
# hosts:
# - passbook.k8s.local
# These settings configure the packaged PostgreSQL and Redis chart.
postgresql:
postgresqlDatabase: passbook
redis:
cluster:
enabled: false
master:
persistence:
enabled: false
# https://stackoverflow.com/a/59189742
disableCommands: []
```

View File

@@ -0,0 +1,32 @@
# Amazon Web Services Integration
## What is AWS
!!! note ""
Amazon Web Services (AWS) is the worlds most comprehensive and broadly adopted cloud platform, offering over 175 fully featured services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.
## Preparation
The following placeholders will be used:
- `passbook.company` is the FQDN of the passbook install.
Create an application in passbook and note the slug, as this will be used later. Create a SAML provider with the following parameters:
- ACS URL: `https://signin.aws.amazon.com/saml`
- Audience: `urn:amazon:webservices`
- Issuer: `passbook`
You can of course use a custom signing certificate, and adjust durations.
## AWS
Create a role with the permissions you desire, and note the ARN.
AWS requires two custom PropertyMappings; `Role` and `RoleSessionName`. Create them as following:
![](./property-mapping-role.png)
![](./property-mapping-role-session-name.png)
Afterwards export the metadata from passbook, and create an Identity Provider [here](https://console.aws.amazon.com/iam/home#/providers).

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -0,0 +1,58 @@
# GitLab Integration
## What is GitLab
From https://about.gitlab.com/what-is-gitlab/
!!! note ""
GitLab is a complete DevOps platform, delivered as a single application. This makes GitLab unique and makes Concurrent DevOps possible, unlocking your organization from the constraints of a pieced together toolchain. Join us for a live Q&A to learn how GitLab can give you unmatched visibility and higher levels of efficiency in a single application across the DevOps lifecycle.
## Preparation
The following placeholders will be used:
- `gitlab.company` is the FQDN of the GitLab Install
- `passbook.company` is the FQDN of the passbook Install
Create an application in passbook and note the slug, as this will be used later. Create a SAML provider with the following parameters:
- ACS URL: `https://gitlab.company/users/auth/saml/callback`
- Audience: `https://gitlab.company`
- Issuer: `https://gitlab.company`
You can of course use a custom signing certificate, and adjust durations. To get the value for `idp_cert_fingerprint`, you can use a tool like [this](https://www.samltool.com/fingerprint.php).
## GitLab Configuration
Paste the following block in your `gitlab.rb` file, after replacing the placeholder values from above. The file is located in `/etc/gitlab`.
```ruby
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
gitlab_rails['omniauth_sync_email_from_provider'] = 'saml'
gitlab_rails['omniauth_sync_profile_from_provider'] = ['saml']
gitlab_rails['omniauth_sync_profile_attributes'] = ['email']
gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml'
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = true
gitlab_rails['omniauth_providers'] = [
{
name: 'saml',
args: {
assertion_consumer_service_url: 'https://gitlab.company/users/auth/saml/callback',
idp_cert_fingerprint: '4E:1E:CD:67:4A:67:5A:E9:6A:D0:3C:E6:DD:7A:F2:44:2E:76:00:6A',
idp_sso_target_url: 'https://passbook.company/application/saml/<passbook application slug>/login/',
issuer: 'https://gitlab.company',
name_identifier_format: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
attribute_statements: {
email: ['urn:oid:1.3.6.1.4.1.5923.1.1.1.6'],
first_name: ['urn:oid:2.5.4.3'],
nickname: ['urn:oid:2.16.840.1.113730.3.1.241']
}
},
label: 'passbook'
}
]
```
Afterwards, either run `gitlab-ctl reconfigure` if you're running GitLab Omnibus, or restart the container if you're using the container.

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

View File

@@ -0,0 +1,27 @@
# Harbor Integration
## What is Harbor
From https://goharbor.io
!!! note ""
Harbor is an open source container image registry that secures images with role-based access control, scans images for vulnerabilities, and signs images as trusted. A CNCF Incubating project, Harbor delivers compliance, performance, and interoperability to help you consistently and securely manage images across cloud native compute platforms like Kubernetes and Docker.
## Preparation
The following placeholders will be used:
- `harbor.company` is the FQDN of the Harbor install.
- `passbook.company` is the FQDN of the passbook install.
Create an application in passbook. Create an OpenID provider with the following parameters:
- Client Type: `Confidential`
- Response types: `code (Authorization Code Flow)`
- JWT Algorithm: `RS256`
- Redirect URIs: `https://harbor.company/c/oidc/callback`
- Scopes: `openid`
## Harbor
![](./harbor.png)

View File

@@ -0,0 +1,28 @@
# Rancher Integration
## What is Rancher
From https://rancher.com/products/rancher
!!! note ""
An enterprise platform for managing Kubernetes Everywhere
Rancher is a platform built to address the needs of the DevOps teams deploying applications with Kubernetes, and the IT staff responsible for delivering an enterprise-critical service.
## Preparation
The following placeholders will be used:
- `rancher.company` is the FQDN of the Rancher install.
- `passbook.company` is the FQDN of the passbook install.
Create an application in passbook and note the slug, as this will be used later. Create a SAML provider with the following parameters:
- ACS URL: `https://rancher.company/v1-saml/adfs/saml/acs`
- Audience: `https://rancher.company/v1-saml/adfs/saml/metadata`
- Issuer: `passbook`
You can of course use a custom signing certificate, and adjust durations.
## Rancher
![](./rancher.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 KiB

View File

@@ -0,0 +1,41 @@
# Sentry Integration
## What is Sentry
From https://sentry.io
!!! note ""
Sentry provides self-hosted and cloud-based error monitoring that helps all software
teams discover, triage, and prioritize errors in real-time.
One million developers at over fifty thousand companies already ship
better software faster with Sentry. Wont you join them?
## Preparation
The following placeholders will be used:
- `sentry.company` is the FQDN of the Sentry install.
- `passbook.company` is the FQDN of the passbook install.
Create an application in passbook. Create an OpenID provider with the following parameters:
- Client Type: `Confidential`
- Response types: `code (Authorization Code Flow)`
- JWT Algorithm: `RS256`
- Redirect URIs: `https://sentry.company/auth/sso/`
- Scopes: `openid email`
## Sentry
**This guide assumes you've installed Sentry using [getsentry/onpremise](https://github.com/getsentry/onpremise)**
- Add `sentry-auth-oidc` to `onpremise/sentry/requirements.txt` (Create the file if it doesn't exist yet)
- Add the following block to your `onpremise/sentry/sentry.conf.py`:
```
OIDC_ISSUER = "passbook"
OIDC_CLIENT_ID = "<Client ID from passbook>"
OIDC_CLIENT_SECRET = "<Client Secret from passbook>"
OIDC_SCOPE = "openid email"
OIDC_DOMAIN = "https://passbook.company/application/oidc/"
```

View File

@@ -0,0 +1,74 @@
# Ansible Tower / AWX Integration
## What is Tower
From https://docs.ansible.com/ansible/2.5/reference_appendices/tower.html
!!! note ""
Ansible Tower (formerly AWX) is a web-based solution that makes Ansible even more easy to use for IT teams of all kinds. Its designed to be the hub for all of your automation tasks.
Tower allows you to control access to who can access what, even allowing sharing of SSH credentials without someone being able to transfer those credentials. Inventory can be graphically managed or synced with a wide variety of cloud sources. It logs all of your jobs, integrates well with LDAP, and has an amazing browsable REST API. Command line tools are available for easy integration with Jenkins as well. Provisioning callbacks provide great support for autoscaling topologies.
!!! note
AWX is the open-source version of Tower. The term "AWX" will be used interchangeably throughout this document.
## Preparation
The following placeholders will be used:
- `awx.company` is the FQDN of the AWX/Tower install.
- `passbook.company` is the FQDN of the passbook install.
Create an application in passbook and note the slug, as this will be used later. Create a SAML provider with the following parameters:
- ACS URL: `https://awx.company/sso/complete/saml/`
- Audience: `awx`
- Issuer: `https://awx.company/sso/metadata/saml/`
You can of course use a custom signing certificate, and adjust durations.
## AWX Configuration
Navigate to `https://awx.company/#/settings/auth` to configure SAML. Set the Field `SAML SERVICE PROVIDER ENTITY ID` to `awx`.
For the fields `SAML SERVICE PROVIDER PUBLIC CERTIFICATE` and `SAML SERVICE PROVIDER PRIVATE KEY`, you can either use custom certificates, or use the self-signed pair generated by passbook.
Provide metadata in the `SAML Service Provider Organization Info` field:
```json
{
"en-US": {
"name": "passbook",
"url": "https://passbook.company",
"displayname": "passbook"
}
}
```
Provide metadata in the `SAML Service Provider Technical Contact` and `SAML Service Provider Technical Contact` fields:
```json
{
"givenName": "Admin Name",
"emailAddress": "admin@company"
}
```
In the `SAML Enabled Identity Providers` paste the following configuration:
```json
{
"passbook": {
"attr_username": "urn:oid:2.16.840.1.113730.3.1.241",
"attr_user_permanent_id": "urn:oid:0.9.2342.19200300.100.1.1",
"x509cert": "MIIDEjCCAfqgAwIBAgIRAJZ9pOZ1g0xjiHtQAAejsMEwDQYJKoZIhvcNAQELBQAwMDEuMCwGA1UEAwwlcGFzc2Jvb2sgU2VsZi1zaWduZWQgU0FNTCBDZXJ0aWZpY2F0ZTAeFw0xOTEyMjYyMDEwNDFaFw0yMDEyMjYyMDEwNDFaMFkxLjAsBgNVBAMMJXBhc3Nib29rIFNlbGYtc2lnbmVkIFNBTUwgQ2VydGlmaWNhdGUxETAPBgNVBAoMCHBhc3Nib29rMRQwEgYDVQQLDAtTZWxmLXNpZ25lZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO/ktBYZkY9xAijF4acvzX6Q1K8KoIZeyde8fVgcWBz4L5FgDQ4/dni4k2YAcPdwteGL4nKVzetUzjbRCBUNuO6lqU4J4WNNX4Xg4Ir7XLRoAQeo+omTPBdpJ1p02HjtN5jT01umN3bK2yto1e37CJhK6WJiaXqRewPxh4lI4aqdj3BhFkJ3I3r2qxaWOAXQ6X7fg3w/ny7QP53//ouZo7hSLY3GIcRKgvdjjVM3OW5C3WLpOq5Dez5GWVJ17aeFCfGQ8bwFKde6qfYqyGcU9xHB36TtVHB9hSFP/tUFhkiSOxtsrYwCgCyXm4UTSpP+wiNyjKfFw7qGLBvA2hGTNw8CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAh9PeAqPRQk1/SSygIFADZBi08O/DPCshFwEHvJATIcTzcDD8UGAjXh+H5OlkDyX7KyrcaNvYaafCUo63A+WprdtdY5Ty6SBEwTYyiQyQfwM9BfK+imCoif1Ai7xAelD7p9lNazWq7JU+H/Ep7U7Q7LvpxAbK0JArt+IWTb2NcMb3OWE1r0gFbs44O1l6W9UbJTbyLMzbGbe5i+NHlgnwPwuhtRMh0NUYabGHKcHbhwyFhfGAQv2dAp5KF1E5gu6ZzCiFePzc0FrqXQyb2zpFYcJHXquiqaOeG7cZxRHYcjrl10Vxzki64XVA9BpdELgKSnupDGUEJsRUt3WVOmvZuA==",
"url": "https://passbook.company/application/saml/awx/login/",
"attr_last_name": "User.LastName",
"entity_id": "https://awx.company/sso/metadata/saml/",
"attr_email": "urn:oid:0.9.2342.19200300.100.1.3",
"attr_first_name": "urn:oid:2.5.4.3"
}
}
```
`x509cert` is the certificate configured in passbook. Remove the `--BEGIN CERTIFICATE--` and `--END CERTIFICATE--` headers, then enter the cert as one non-breaking string.

View File

@@ -0,0 +1,30 @@
# Expression Policies
!!! notice
These variables are available in addition to the common variables/functions defined in [**Expressions**](../expressions/index.md)
The passing of the policy is determined by the return value of the code. Use `return True` to pass a policy and `return False` to fail it.
### Available Functions
#### `pb_message(message: str)`
Add a message, visible by the end user. This can be used to show the reason why they were denied.
Example:
```python
pb_message("Access denied")
return False
```
### Context variables
- `request`: A PolicyRequest object, which has the following properties:
- `request.user`: The current user, against which the policy is applied. ([ref](../expressions/reference/user-object.md))
- `request.http_request`: The Django HTTP Request. ([ref](https://docs.djangoproject.com/en/3.0/ref/request-response/#httprequest-objects))
- `request.obj`: A Django Model instance. This is only set if the policy is ran against an object.
- `request.context`: A dictionary with dynamic data. This depends on the origin of the execution.
- `pb_is_sso_flow`: Boolean which is true if request was initiated by authenticating through an external provider.
- `pb_client_ip`: Client's IP Address or '255.255.255.255' if no IP Address could be extracted. Can be [compared](../expressions/index.md#comparing-ip-addresses)
- `pb_flow_plan`: Current Plan if Policy is called from the Flow Planner.

42
docs/policies/index.md Normal file
View File

@@ -0,0 +1,42 @@
# Policies
## Kinds
There are two different kinds of policies; Standard Policy and Password Policy. Normal policies evaluate to True or False, and can be used everywhere. Password policies apply when a password is set (during user enrollment, recovery or anywhere else). These policies can be used to apply password rules such as length, complexity, etc. They can also be used to expire passwords after a certain amount of time.
## Standard Policies
---
### Reputation Policy
passbook keeps track of failed login attempts by source IP and attempted username. These values are saved as scores. Each failed login decreases the score for the client IP as well as the targeted username by 1 (one).
This policy can be used, for example, to prompt clients with a low score to pass a captcha before they can continue.
## Expression Policy
See [Expression Policy](expression.md).
## Password Policies
---
### Password Policy
This policy allows you to specify password rules, such as length and required characters.
The following rules can be set:
- Minimum amount of uppercase characters.
- Minimum amount of lowercase characters.
- Minimum amount of symbols characters.
- Minimum length.
- Symbol charset (define which characters are counted as symbols).
### Have I Been Pwned Policy
This policy checks the hashed password against the [Have I Been Pwned](https://haveibeenpwned.com/) API. This only sends the first 5 characters of the hashed password. The remaining comparison is done within passbook.
### Password-Expiry Policy
This policy can enforce regular password rotation by expiring set passwords after a finite amount of time. This forces users to set a new password.

View File

@@ -0,0 +1,12 @@
# Property Mapping Expressions
The property mapping should return a value that is expected by the Provider/Source. Supported types are documented in the individual Provider/Source. Returning `None` is always accepted and would simply skip the mapping for which `None` was returned.
!!! notice
These variables are available in addition to the common variables/functions defined in [**Expressions**](../expressions/index.md)
### Context Variables
- `user`: The current user. This may be `None` if there is no contextual user. ([ref](../expressions/reference/user-object.md))
- `request`: The current request. This may be `None` if there is no contextual request. ([ref](https://docs.djangoproject.com/en/3.0/ref/request-response/#httprequest-objects))
- Other arbitrary arguments given by the provider, this is documented on the Provider/Source.

View File

@@ -0,0 +1,21 @@
# Property Mappings
Property Mappings allow you to pass information to external applications. For example, pass the current user's groups as a SAML parameter. Property Mappings are also used to map Source fields to passbook fields, for example when using LDAP.
## SAML Property Mapping
SAML Property Mappings allow you embed information into the SAML AuthN request. This information can then be used by the application to, for example, assign permissions to the object.
You can find examples [here](integrations/).
## LDAP Property Mapping
LDAP Property Mappings are used when you define a LDAP Source. These mappings define which LDAP property maps to which passbook property. By default, the following mappings are created:
- Autogenerated LDAP Mapping: givenName -> first_name
- Autogenerated LDAP Mapping: mail -> email
- Autogenerated LDAP Mapping: name -> name
- Autogenerated LDAP Mapping: sAMAccountName -> username
- Autogenerated LDAP Mapping: sn -> last_name
These are configured with most common LDAP setups.

24
docs/providers.md Normal file
View File

@@ -0,0 +1,24 @@
# Providers
Providers allow external applications to authenticate against passbook and use its user information.
## OpenID Provider
This provider utilises the commonly used OpenID Connect variation of OAuth2.
## OAuth2 Provider
This provider is slightly different than the OpenID Provider. While it uses the same basic OAuth2 Protocol, it provides a GitHub-compatible endpoint. This allows you to integrate applications which don't support custom OpenID providers.
The API exposes username, email, name, and groups in a GitHub-compatible format.
This provider currently supports the following scopes:
- `openid`: Access OpenID Userinfo
- `userinfo`: Access OpenID Userinfo
- `email`: Access OpenID Email
- `user:email`: GitHub Compatibility: User Email
- `read:org`: GitHub Compatibility: User Groups
## SAML Provider
This provider allows you to integrate enterprise software using the SAML2 Protocol. It supports signed requests and uses [Property Mappings](property-mappings/index.md#saml-property-mapping) to determine which fields are exposed and what values they return. This makes it possible to expose vendor-specific fields.
Default fields are exposed through auto-generated Property Mappings, which are prefixed with "Autogenerated".

2
docs/requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
mkdocs
mkdocs-material

1
docs/runtime.txt Normal file
View File

@@ -0,0 +1 @@
3.7

39
docs/sources.md Normal file
View File

@@ -0,0 +1,39 @@
# Sources
Sources allow you to connect passbook to an existing user directory. They can also be used for social logins, using external providers such as Facebook, Twitter, etc.
## Generic OAuth Source
**All Integration-specific Sources are documented in the Integrations Section**
This source allows users to enroll themselves with an external OAuth-based Identity Provider. The generic provider expects the endpoint to return OpenID-Connect compatible information. Vendor-specific implementations have their own OAuth Source.
- Policies: Allow/Forbid users from linking their accounts with this provider.
- Request Token URL: This field is used for OAuth v1 implementations and will be provided by the provider.
- Authorization URL: This value will be provided by the provider.
- Access Token URL: This value will be provided by the provider.
- Profile URL: This URL is called by passbook to retrieve user information upon successful authentication.
- Consumer key/Consumer secret: These values will be provided by the provider.
## SAML Source
This source allows passbook to act as a SAML Service Provider. Just like the SAML Provider, it supports signed requests. Vendor-specific documentation can be found in the Integrations Section.
## LDAP Source
This source allows you to import users and groups from an LDAP Server.
- Server URI: URI to your LDAP server/Domain Controller.
- Bind CN: CN of the bind user. This can also be a UPN in the format of `user@domain.tld`.
- Bind password: Password used during the bind process.
- Enable StartTLS: Enables StartTLS functionality. To use LDAPS instead, use port `636`.
- Base DN: Base DN used for all LDAP queries.
- Addition User DN: Prepended to the base DN for user queries.
- Addition Group DN: Prepended to the base DN for group queries.
- User object filter: Consider objects matching this filter to be users.
- Group object filter: Consider objects matching this filter to be groups.
- User group membership field: This field contains the user's group memberships.
- Object uniqueness field: This field contains a unique identifier.
- Sync groups: Enable/disable group synchronization. Groups are synced in the background every 5 minutes.
- Sync parent group: Optionally set this group as the parent group for all synced groups. An example use case of this would be to import Active Directory groups under a root `imported-from-ad` group.
- Property mappings: Define which LDAP properties map to which passbook properties. The default set of property mappings is generated for Active Directory. See also [LDAP Property Mappings](property-mappings/index.md#ldap-property-mapping)

27
docs/terminology.md Normal file
View File

@@ -0,0 +1,27 @@
### Policy
At a base level a policy is a yes/no gate. It will either evaluate to True or False depending on the Policy Kind and settings. For example, a "Group Membership Policy" evaluates to True if the user is member of the specified Group and False if not. This can be used to conditionally apply Stages, grant/deny access to various objects, and for other custom logic.
### Provider
A Provider is a way for other applications to authenticate against passbook. Common Providers are OpenID Connect (OIDC) and SAML.
### Source
Sources are locations from which users can be added to passbook. For example, an LDAP Connection to import Users from Active Directory, or an OAuth2 Connection to allow Social Logins.
### Application
An application links together Policies with a Provider, allowing you to control access. It also holds Information like UI Name, Icon and more.
### Stages
A stage represents a single verification or logic step. They are used to authenticate users, enroll users, and more. These stages can optionally be applied to a flow via policies.
### Flows
Flows are an ordered sequence of stages. These flows can be used to define how a user authenticates, enrolls, etc.
### Property Mappings
Property Mappings allow you to make information available for external applications. For example, if you want to login to AWS with passbook, you'd use Property Mappings to set the user's roles in AWS based on their group memberships in passbook.

Some files were not shown because too many files have changed in this diff Show More