Givi Khojanashvili
e5e69b1f75
Autopropagate peers by JWT groups ( #1037 )
...
Enhancements to Peer Group Assignment:
1. Auto-assigned groups are now applied to all peers every time a user logs into the network.
2. Feature activation is available in the account settings.
3. API modifications included to support these changes for account settings updates.
4. If propagation is enabled, updates to a user's auto-assigned groups are immediately reflected across all user peers.
5. With the JWT group sync feature active, auto-assigned groups are forcefully updated whenever a peer logs in using user credentials.
2023-08-07 19:44:51 +04:00
Maycon Santos
973316d194
Validate input of expiration time for setup-keys ( #1053 )
...
So far we accepted any value for setup keys, including negative values
Now we are checking if it is less than 1 day or greater than 365 days
2023-08-04 23:54:51 +02:00
Maycon Santos
74fde0ea2c
Update setup key auto_groups description ( #1042 )
...
* Update setup key auto_groups description
* Update setup key auto_groups description
2023-08-02 17:50:00 +02:00
Bethuel Mmbaga
48098c994d
Handle authentication errors in PKCE flow ( #1039 )
...
* handle authentication errors in PKCE flow
* remove shadowing and replace TokenEndpoint for PKCE config
---------
Co-authored-by: Maycon Santos <mlsmaycon@gmail.com>
2023-07-31 14:22:38 +02:00
Bethuel Mmbaga
7794b744f8
Add PKCE authorization flow ( #1012 )
...
Enhance the user experience by enabling authentication to Netbird using Single Sign-On (SSO) with any Identity Provider (IDP) provider. Current client offers this capability through the Device Authorization Flow, however, is not widely supported by many IDPs, and even some that do support it do not provide a complete verification URL.
To address these challenges, this pull request enable Authorization Code Flow with Proof Key for Code Exchange (PKCE) for client logins, which is a more widely adopted and secure approach to facilitate SSO with various IDP providers.
2023-07-27 11:31:07 +02:00
Maycon Santos
76db4f801a
Record idp manager type ( #1027 )
...
This allows to define priority on support different managers
2023-07-22 19:30:59 +02:00
Maycon Santos
2541c78dd0
Use error level for JWT parsing error logs ( #1026 )
2023-07-22 17:56:27 +02:00
Yury Gargay
97b6e79809
Fix DefaultAccountManager GetGroupsFromTheToken false positive tests ( #1019 )
...
This fixes the test logic creates copy of account with empty id and
re-pointing the indices to it.
Also, adds additional check for empty ID in SaveAccount method of FileStore.
2023-07-22 15:54:08 +04:00
Bethuel Mmbaga
a4d830ef83
Fix Okta IDP device authorization ( #1023 )
...
* hide okta netbird attributes fields
* fix: update full user profile
2023-07-21 09:34:49 +02:00
pascal-fischer
9e540cd5b4
Merge pull request #1016 from surik/filestore-index-deletion-optimisation
...
Do not persist filestore when deleting indices
2023-07-20 18:07:33 +02:00
Givi Khojanashvili
e69ec6ab6a
Optimize ACL performance ( #994 )
...
* Optimize rules with All groups
* Use IP sets in ACLs (nftables implementation)
* Fix squash rule when we receive optimized rules list from management
2023-07-18 13:12:50 +04:00
Yury Gargay
7ddde41c92
Do not persist filestore when deleting indices
...
As both TokenID2UserID and HashedPAT2TokenID are in-memory indices and
not stored in the file.
2023-07-17 11:52:45 +02:00
Zoltan Papp
9c2c0e7934
Check links of groups before delete it ( #1010 )
...
* Check links of groups before delete it
* Add delete group handler test
* Rename dns error msg
* Add delete group test
* Remove rule check
The policy cover this scenario
* Fix test
* Check disabled management grps
* Change error message
* Add new activity for group delete event
2023-07-14 20:45:40 +02:00
Bethuel Mmbaga
bb9f6f6d0a
Add API Endpoint for Resending User Invitations in Auth0 ( #989 )
...
* add request handler for sending invite
* add InviteUser method to account manager interface
* add InviteUser mock
* add invite user endpoint to user handler
* add InviteUserByID to manager interface
* implement InviteUserByID in all idp managers
* resend user invitation
* add invite user handler tests
* refactor
* user userID for sending invitation
* fix typo
* refactor
* pass userId in url params
2023-07-03 12:20:19 +02:00
Maycon Santos
a366d9e208
Prevent sending nameserver configuration when peer is set as NS ( #962 )
...
* Prevent sending nameserver configuration when peer is set as NS
* Add DNS filter tests
2023-06-28 17:29:02 +02:00
Misha Bragin
d409219b51
Don't create setup keys on new account ( #972 )
2023-06-27 17:17:24 +02:00
Givi Khojanashvili
8b619a8224
JWT Groups support ( #966 )
...
Get groups from the JWT tokens if the feature enabled for the account
2023-06-27 18:51:05 +04:00
Bethuel
58cfa2bb17
Add Google Workspace IdP ( #949 )
...
Added integration with Google Workspace user directory API.
2023-06-20 19:15:36 +02:00
Maycon Santos
09ca2d222a
Update the API description with the correct API state ( #958 )
2023-06-16 18:26:50 +02:00
Zoltan Papp
481465e1ae
Feature/android dns ( #943 )
...
Support DNS feature on mobile systems
---------
Co-authored-by: Givi Khojanashvili <gigovich@gmail.com>
2023-06-12 14:43:55 +02:00
Givi Khojanashvili
803bbe0fff
Fix validation for ACL policy rules ports ( #938 )
2023-06-07 08:57:43 +02:00
Misha Bragin
8817765aeb
Add comment clarifying AddPeer race check ( #927 )
2023-06-02 18:04:24 +02:00
Bethuel
51502af218
Support IDP manager configuration with configure.sh ( #843 )
...
support IDP management configuration using configure.sh script
Add initial Zitadel configuration script
2023-06-02 17:34:36 +02:00
Misha Bragin
612ae253fe
Reject adding peer if already exists with the pub key ( #925 )
2023-06-02 17:32:55 +02:00
Pascal Fischer
5028450133
add examples
2023-06-02 01:50:15 +02:00
Pascal Fischer
2dcfa1efa3
fix summary
2023-06-02 01:32:48 +02:00
Pascal Fischer
75fbaf811b
update openapi
2023-06-02 01:09:18 +02:00
Givi Khojanashvili
293499c3c0
Extend protocol and firewall manager to handle old management ( #915 )
...
* Extend protocol and firewall manager to handle old management
* Send correct empty firewall rules list when delete peer
* Add extra tests for firewall manager and uspfilter
* Work with inconsistent state
* Review note
* Update comment
2023-05-31 19:04:38 +02:00
Zoltan Papp
45a6263adc
Feature/android route notification ( #868 )
...
Add new feature to notify the user when new client route has arrived.
Refactor the initial route handling. I move every route logic into the route
manager package.
* Add notification management for client rules
* Export the route notification for Android
* Compare the notification based on network range instead of id.
2023-05-31 18:25:24 +02:00
pascal-fischer
e87647c853
Merge pull request #913 from netbirdio/feature/add_selfhosted_metrics_for_pat_and_service_user
...
Add selfhosted metrics for PATs and service users
2023-05-31 14:41:34 +02:00
Pascal Fischer
9e045479cc
fix pats counting
2023-05-30 19:44:40 +02:00
Pascal Fischer
fe596c38c6
update rules count
2023-05-30 19:36:09 +02:00
Pascal Fischer
6fd13f563e
use new policy-rule object
2023-05-30 19:09:16 +02:00
Pascal Fischer
22e81f493b
fix metric creation from maps
2023-05-30 19:07:00 +02:00
Pascal Fischer
51f780dae9
initialize maps
2023-05-30 18:53:23 +02:00
Pascal Fischer
f164fad2c2
add some more metrics
2023-05-30 18:49:50 +02:00
Pascal Fischer
452b045bb0
expose service users metrics
2023-05-30 16:40:48 +02:00
Givi Khojanashvili
874c290205
Exclude second last IP from allocation to use it in the Fake DNS ( #912 )
2023-05-30 18:26:44 +04:00
Pascal Fischer
7a9b05c56d
add selfhosted metric for pat and service users
2023-05-30 16:22:34 +02:00
Bethuel
79736197cd
Read config from generic configs ( #909 )
2023-05-29 16:01:04 +02:00
Givi Khojanashvili
ba7a39a4fc
Feat linux firewall support ( #805 )
...
Update the client's engine to apply firewall rules received from the manager (results of ACL policy).
2023-05-29 16:00:18 +02:00
Bethuel
2eb9a97fee
Add Okta IdP ( #859 )
2023-05-29 14:52:04 +02:00
Bethuel
49c71b9b9d
Add Authentik IdP ( #897 )
2023-05-29 14:35:30 +02:00
Bethuel
3bebbe0409
Refactor IdP Config Structure ( #879 )
2023-05-29 13:48:19 +02:00
Pascal Fischer
7bdb0dd358
merge openapi with version from docs repo
2023-05-26 15:32:52 +02:00
Misha Bragin
f66574b094
Count only successful HTTP request durations ( #886 )
2023-05-22 16:26:36 +02:00
Misha Bragin
48265b32f3
Measure write requests separately from read requests ( #880 )
2023-05-19 16:56:15 +02:00
Misha Bragin
03a42de5a0
Add telemetry to measure app durations ( #878 )
2023-05-19 11:42:25 +02:00
Maycon Santos
48a8b52740
Avoid storing account if no peer meta or expiration change ( #875 )
...
* Avoid storing account if no peer meta or expiration change
* remove extra log
* Update management/server/peer.go
Co-authored-by: Misha Bragin <bangvalo@gmail.com>
* Clarify why we need to skip account update
---------
Co-authored-by: Misha Bragin <bangvalo@gmail.com>
2023-05-18 19:31:35 +02:00
Misha Bragin
6e9f7531f5
Track user block/unblock activity event ( #865 )
2023-05-17 09:54:20 +02:00
Pascal Fischer
873abc43bf
move into separate package
2023-05-16 12:57:56 +02:00
Pascal Fischer
2fef52b856
remove dependency to external base62 package and create own methods in utils
2023-05-16 12:44:26 +02:00
Bethuel
2570363861
fix assign correct issuer url to auth0 AuthIssuer
2023-05-12 18:07:11 +03:00
Misha Bragin
e3d2b6a408
Block user through HTTP API ( #846 )
...
The new functionality allows blocking a user in the Management service.
Blocked users lose access to the Dashboard, aren't able to modify the network map,
and all of their connected devices disconnect and are set to the "login expired" state.
Technically all above was achieved with the updated PUT /api/users endpoint,
that was extended with the is_blocked field.
2023-05-11 18:09:36 +02:00
Bethuel
2c50d7af1e
Automatically load IdP OIDC configuration ( #847 )
2023-05-11 15:14:00 +02:00
pascal-fischer
e4c28f64fa
Fix user cache lookup filtering for service users ( #849 )
2023-05-10 19:27:17 +02:00
Bethuel
f4ec1699ca
Add Zitadel IdP ( #833 )
...
Added intergration with Zitadel management API.
Use the steps in zitadel.md for configuration.
2023-05-05 19:27:28 +02:00
Bethuel
873b56f856
Add Azure Idp Manager ( #822 )
...
Added intergration with Azure IDP user API.
Use the steps in azure-ad.md for configuration:
cb03373f8f/docs/integrations/identity-providers/self-hosted/azure-ad.md
2023-05-03 14:51:44 +02:00
pascal-fischer
59372ee159
API cleanup ( #824 )
...
removed all PATCH endpoints
updated path parameters for all endpoints
removed not implemented endpoints for api doc
minor description updates
2023-05-03 00:15:25 +02:00
pascal-fischer
08db5f5a42
Merge pull request #831 from netbirdio/fix/issue_with_account_creation_after_auth_refactor
...
FIx account creation issue after auth refactor
2023-05-02 19:14:54 +02:00
pascal-fischer
88678ef364
Merge pull request #808 from bcmmbaga/main
...
Add support for refreshing signing keys on expiry
2023-05-02 17:17:09 +02:00
Pascal Fischer
f1da4fd55d
using old isAdmin function to create account
2023-05-02 16:49:29 +02:00
Zoltan Papp
7f5e1c623e
Use forked Wireguard-go for custom bind ( #823 )
...
Update go version to 1.20
Use forked wireguard-go repo because of custom Bind implementation
2023-04-27 17:50:45 +02:00
pascal-fischer
6fec0c682e
Merging full service user feature into main ( #819 )
...
Merging full feature branch into main.
Adding full support for service users including backend objects, persistence, verification and api endpoints.
2023-04-22 12:57:51 +02:00
Bethuel
45224e76d0
fallback to olde keys if failing to fetch refreshed keys
2023-04-21 13:34:52 +03:00
Bethuel
90c8cfd863
synchronize access to the signing keys
2023-04-19 17:11:38 +03:00
Zoltan Papp
4616bc5258
Add route management for Android interface ( #801 )
...
Support client route management feature on Android
2023-04-17 11:15:37 +02:00
Bethuel
f7196cd9a5
refactoring
2023-04-15 03:44:42 +03:00
Bethuel
53d78ad982
make variable unexported
2023-04-14 13:16:01 +03:00
Bethuel
9f352c1b7e
validate keys for idp's with key rotation mechanism
2023-04-14 12:20:34 +03:00
Bethuel
a89808ecae
initialize jwt validator with keys rotation state
2023-04-14 12:17:28 +03:00
Bethuel
c6190fa2ba
add use-key-cache-headers flag to management command
2023-04-13 20:19:04 +03:00
Givi Khojanashvili
0343c5f239
Rollback simple ACL rules processing. ( #803 )
2023-04-12 09:39:17 +02:00
Misha Bragin
251f2d7bc2
Pass newly generated ID to network map when adding peer ( #800 )
2023-04-11 14:28:22 +02:00
Maycon Santos
306e02d32b
Update calculate server state ( #796 )
...
Refactored updateServerStates and calculateState
added some checks to ensure we are not sending connecting on context canceled
removed some state updates from the RunClient function
2023-04-10 18:22:25 +02:00
pascal-fischer
8375491708
Merge pull request #778 from netbirdio/fix/consistent_time_format_for_pat
...
fix/use_utc_for_time_operations
2023-04-10 18:11:41 +02:00
Pascal Fischer
6aba28ccb7
remove UTC from some not store related operations
2023-04-10 10:54:23 +02:00
Maycon Santos
32b345991a
Support remote scope and use id token configuration ( #784 )
...
Some IDP requires different scope requests and
issue access tokens for different purposes
This change allow for remote configurable scopes
and the use of ID token
2023-04-05 17:46:34 +02:00
Maycon Santos
fe1ea4a2d0
Check multiple audience values ( #781 )
...
Some IDP use different audience for different clients.
This update checks HTTP and Device authorization flow audience values.
---------
Co-authored-by: Givi Khojanashvili <gigovich@gmail.com>
2023-04-04 16:40:56 +02:00
Pascal Fischer
489892553a
use UTC everywhere in server
2023-04-03 15:09:35 +02:00
Pascal Fischer
b05e30ac5a
do not use UTC for time to stay consistent
2023-04-03 12:44:55 +02:00
pascal-fischer
769388cd21
Merge pull request #776 from netbirdio/feature/activity_events_for_pat
...
feature/activity_events_for_pat
2023-04-03 12:27:51 +02:00
pascal-fischer
c54fb9643c
Merge pull request #774 from netbirdio/feature/add_pat_middleware
...
Feature/add pat middleware
2023-04-03 12:09:11 +02:00
Givi Khojanashvili
5dc0ff42a5
Fix broken auto-generated Rego rule ( #769 )
...
Default Rego policy generated from the rules in some cases is broken.
This change fixes the Rego template for rules to generate policies.
Also, file store load constantly regenerates policy objects from rules.
It allows updating/fixing of the default Rego template during releases.
2023-04-01 12:02:08 +02:00
Pascal Fischer
45badd2c39
add event store to user tests
2023-04-01 11:11:30 +02:00
Pascal Fischer
d3de035961
error responses always lower case + duplicate error response fix
2023-04-01 11:04:21 +02:00
Pascal Fischer
b2da0ae70f
add activity events on PAT creation and deletion
2023-03-31 17:41:22 +02:00
Pascal Fischer
931c20c8fe
fix test name
2023-03-31 12:45:10 +02:00
Pascal Fischer
2eaf4aa8d7
add test for auth middleware
2023-03-31 12:44:22 +02:00
Pascal Fischer
110067c00f
change order for access control checks and aquire account lock after global lock
2023-03-31 12:03:53 +02:00
Pascal Fischer
32c96c15b8
disable linter errors by comment
2023-03-31 10:30:05 +02:00
Pascal Fischer
ca1dc5ac88
disable access control for token endpoint
2023-03-30 19:03:44 +02:00
Pascal Fischer
ce775d59ae
revert codacy
2023-03-30 18:59:35 +02:00
Pascal Fischer
f273fe9f51
revert codacy
2023-03-30 18:54:55 +02:00
Pascal Fischer
e08af7fcdf
codacy
2023-03-30 17:46:21 +02:00
Pascal Fischer
454240ca05
comments for codacy
2023-03-30 17:32:44 +02:00
Pascal Fischer
1343a3f00e
add test + codacy
2023-03-30 16:43:39 +02:00
Pascal Fischer
2a79995706
fix linter
2023-03-30 16:22:15 +02:00
Pascal Fischer
e869882da1
fix merge
2023-03-30 16:14:51 +02:00
Pascal Fischer
6c8bb60632
fix merge
2023-03-30 16:06:46 +02:00