Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add jumpcloud IdP #1124

Merged
merged 36 commits into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
cbd574d
implement jumpcloud idp manager
bcmmbaga Sep 4, 2023
f70c838
Refactor JumpCloudManager for cleaner authentication context usage
bcmmbaga Sep 4, 2023
1b752d4
Merge branch 'main' into jumpcloud-idp
bcmmbaga Sep 4, 2023
3b0bd12
update user attributes without replacing other custom attributes
bcmmbaga Sep 4, 2023
8e95904
add support for OIDC providers that may not support the audience in a…
bcmmbaga Sep 5, 2023
fd4a976
Implement PKCE token verification via Client ID for providers lacking…
bcmmbaga Sep 5, 2023
45eeda4
include an option to turn off transmitting the audience to the IDP
bcmmbaga Sep 6, 2023
50ecf6f
wip: Handle user metadata without transmitting them to Identity Provider
bcmmbaga Sep 14, 2023
8293c95
wip: load user account into cache for idp with no GetAccount support
bcmmbaga Sep 14, 2023
b7665d5
Merge branch 'main' into jumpcloud-idp
bcmmbaga Sep 20, 2023
b36bcbc
Add DeleteUser method to JumpCloud IdP manager.
bcmmbaga Sep 20, 2023
9027271
Merge branch 'main' into idp-user-cache
bcmmbaga Sep 22, 2023
519f18b
Add compatibility for the IDP lacking AppMetadata update capabilities
bcmmbaga Sep 22, 2023
a3f6de0
Refactor Authentik IdP manager
bcmmbaga Sep 22, 2023
7aa72f6
cleanup
bcmmbaga Sep 22, 2023
1c7d4e9
Merge branch 'main' into idp-user-cache
bcmmbaga Sep 25, 2023
62d5853
Refactor Zitadel IDP manager
bcmmbaga Sep 25, 2023
7706319
Refactor Keycloak IDP manager
bcmmbaga Sep 25, 2023
5adebea
Refactor Okta IDP manager
bcmmbaga Sep 26, 2023
c10ebdb
Refactor Azure IDP manager
bcmmbaga Sep 26, 2023
de1fa8b
Remove unused types declarations
bcmmbaga Sep 26, 2023
1c4e6b2
Refactor Google Workspace IdP manager
bcmmbaga Sep 26, 2023
baf2546
Merge branch 'main' into idp-user-cache
bcmmbaga Sep 26, 2023
b155ee2
Remove unused function and variables
bcmmbaga Sep 26, 2023
cebf9d9
Initialize a user data slice with defined capacity
bcmmbaga Sep 27, 2023
7c5c9a2
Initialize a user data slice with defined capacity
bcmmbaga Sep 27, 2023
1f8407a
Merge remote-tracking branch 'origin/idp-user-cache' into idp-user-cache
bcmmbaga Sep 27, 2023
e04fb2e
Initialize a user data slice with defined capacity
bcmmbaga Sep 27, 2023
dd15de6
Merge branch 'idp-user-cache' into jumpcloud-idp
bcmmbaga Oct 1, 2023
940c09b
Refactor JumpCloud IdP with new user cache implementation for self-ho…
bcmmbaga Oct 1, 2023
cc215ac
Remove unused custom error and refactor unset account id into constant
bcmmbaga Oct 1, 2023
4c27a29
Merge branch 'idp-user-cache' into jumpcloud-idp
bcmmbaga Oct 1, 2023
21bf9b3
Refactor
bcmmbaga Oct 1, 2023
b834307
Merge branch 'main' into jumpcloud-idp
bcmmbaga Oct 3, 2023
39acc49
Update map key to correct constant
bcmmbaga Oct 3, 2023
fb368ae
Add missing IDP manager check for jumpcloud
mlsmaycon Oct 3, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions management/server/idp/authentik.go
Original file line number Diff line number Diff line change
Expand Up @@ -312,9 +312,7 @@ func (am *AuthentikManager) GetAllAccounts() (map[string][]*UserData, error) {
indexedUsers := make(map[string][]*UserData)
for _, user := range userList.Results {
userData := parseAuthentikUser(user)

accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], userData)
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down
4 changes: 1 addition & 3 deletions management/server/idp/azure.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,9 +319,7 @@ func (am *AzureManager) GetAllAccounts() (map[string][]*UserData, error) {
indexedUsers := make(map[string][]*UserData)
for _, profile := range profiles.Value {
userData := profile.userData()

accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], userData)
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down
4 changes: 2 additions & 2 deletions management/server/idp/google_workspace.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ func (gm *GoogleWorkspaceManager) GetAllAccounts() (map[string][]*UserData, erro

indexedUsers := make(map[string][]*UserData)
for _, user := range usersList.Users {
accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], parseGoogleWorkspaceUser(user))
userData := parseGoogleWorkspaceUser(user)
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down
10 changes: 3 additions & 7 deletions management/server/idp/idp.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,9 @@ import (
"github.com/netbirdio/netbird/management/server/telemetry"
)

type Error struct {
message string
}

func (e *Error) Error() string {
return e.message
}
const (
unsetAccountID = "unset"
)

// Manager idp manager interface
type Manager interface {
Expand Down
4 changes: 2 additions & 2 deletions management/server/idp/keycloak.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,8 +295,8 @@ func (km *KeycloakManager) GetAllAccounts() (map[string][]*UserData, error) {

indexedUsers := make(map[string][]*UserData)
for _, profile := range profiles {
accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], profile.userData())
userData := profile.userData()
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down
3 changes: 1 addition & 2 deletions management/server/idp/okta.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,7 @@ func (om *OktaManager) GetAllAccounts() (map[string][]*UserData, error) {
return nil, err
}

accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], userData)
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down
4 changes: 2 additions & 2 deletions management/server/idp/zitadel.go
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,8 @@ func (zm *ZitadelManager) GetAllAccounts() (map[string][]*UserData, error) {

indexedUsers := make(map[string][]*UserData)
for _, profile := range profiles.Result {
accountID := "unset"
indexedUsers[accountID] = append(indexedUsers[accountID], profile.userData())
userData := profile.userData()
indexedUsers[unsetAccountID] = append(indexedUsers[unsetAccountID], userData)
}

return indexedUsers, nil
Expand Down