diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-add-admin-user.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-add-admin-user.png new file mode 100644 index 00000000..8ef4dfcb Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-add-admin-user.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-api-key-generation.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-api-key-generation.png new file mode 100644 index 00000000..b1e570e1 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-api-key-generation.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirm-selection.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirm-selection.png new file mode 100644 index 00000000..e5f48658 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirm-selection.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirmation.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirmation.png new file mode 100644 index 00000000..96746ce6 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-confirmation.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-features.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-features.png new file mode 100644 index 00000000..843c6054 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-features.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-general-info.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-general-info.png new file mode 100644 index 00000000..3675c402 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app-general-info.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app.png new file mode 100644 index 00000000..8ddcb297 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-new-sso-app.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-oidc-app.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-oidc-app.png new file mode 100644 index 00000000..2ea0ea70 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-oidc-app.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-profile.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-profile.png new file mode 100644 index 00000000..f81f9998 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-profile.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-atributes-configuration.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-atributes-configuration.png new file mode 100644 index 00000000..efa86439 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-atributes-configuration.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-configuration.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-configuration.png new file mode 100644 index 00000000..7aaf58d9 Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-sso-configuration.png differ diff --git a/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-user-groups.png b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-user-groups.png new file mode 100644 index 00000000..fe6e906e Binary files /dev/null and b/public/docs-static/img/integrations/identity-providers/self-hosted/jumpcloud-user-groups.png differ diff --git a/src/pages/selfhosted/identity-providers.mdx b/src/pages/selfhosted/identity-providers.mdx index 701ecc14..54ff476e 100644 --- a/src/pages/selfhosted/identity-providers.mdx +++ b/src/pages/selfhosted/identity-providers.mdx @@ -1117,3 +1117,123 @@ NETBIRD_IDP_MGMT_EXTRA_AUDIENCE="https:///api/v2/" #### Step 6: Continue with the NetBird Self-hosting Guide You've configured all required resources in Auth0. You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-4-disable-single-account-mode-optional). + +### JumpCloud + +This guide is a part of the [NetBird Self-hosting Guide](/getting-started/self-hosting) and explains how to integrate +**self-hosted** NetBird with [JumpCloud](https://jumpcloud.com/). + +Before you start creating and configuring an JumpCloud application, ensure that you have the following: +- An JumpCloud account: To create application, you must have an JumpCloud account. If you don't have one, sign up at https://jumpcloud.com/. +- User account with admin permissions: You must have an JumpCloud account with the admin permissions. If you don't have the required permissions, ask your administrator to grant them to you. + + +#### Step 1: Create and configure SSO application + +- Navigate to to [Admin Portal](https://console.jumpcloud.com/) page +- Click `SSO Applications` on the left menu under `USER AUTHENTICATION` section +- Click `Add New Application` and select `Custom Application` +

+ high-level-dia +

+- On the `Which application would you like to integrate` screen, confirm that you've selected `Custom application` and click `Next` +

+ high-level-dia +

+- On the `Select the features you would like to enable` screen, select `Manage Single Sign-On (SSO)` and check `Configure SSO with OIDC` and click `Next` +

+ high-level-dia +

+- On the `Enter General info` screen, add `NetBird` as `Display Label` and click `Next` +

+ high-level-dia +

+- On the confirmation screen, review the information and click on `Configure Application` to proceed +

+ high-level-dia +

+- On the `New Application` screen, click on the SSO tab and enter the following values: + - Under `Endpoint Configuration` section: + - Redirect URIs: `https:///silent-auth`, `https:///auth` and `http://localhost:53000` + - Client Authentication Type: `Public (None PKCE)` + - Login URL: `https://` + +

+ high-level-dia +

+ - Under `Attribute Mapping (optional)` section: + - Standard Scopes: `Email`, `Profile` +

+ high-level-dia +

+- Click on the `User Groups` tab and select the user groups that can access this application +

+ high-level-dia +

+- Click `Activate` +

+ high-level-dia +

+- Take note of `Client ID`, will be used later + +#### Step 2: Create an account administrator for integration +The NetBird management system requires an API token to get user information from JumpCloud. This API is bound to an administrator user configured in JumpCloud's admin portal. + +The following steps will assume that you are creating a new account. If you already have a user for this purpose, confirm it has the required role described below and skip to Step 3 in this guide. +- Navigate to to [Admin Portal](https://console.jumpcloud.com/) page +- Go to account `Settings` and click on the add button (+) +- On the `Create New Administrator` window, enter the following values: + - First Name: `NetBird` + - Last Name: `Integration` + - Administrator Email: `netbird-user@` # this email will be used to receive the login instructions + - Role: `Read Only` + - Click `Save` + + Optional + + NetBird offers the ability to automatically delete a user from the JumpCloud side when the user is deleted from the associated account. + To enable this functionality, simply include the `--user-delete-from-idp` flag in the management startup command within your Docker Compose configuration. If you choose to enable this feature, + please ensure that you assign the `Help Desk` role to the `NetBird Integration` user following the steps outlined above. + +

+ high-level-dia +

+ +After following the steps above, you will receive the login instructions for the newly created user in the email configured. Please follow the instructions to set a password for the user. + +#### Step 3: Generate api token +In this step, we will generate netbird api token in jumpcloud for authorizing calls to user api. + +- Navigate to to [Admin Portal](https://console.jumpcloud.com/) page +- Login with the user created in the previous step or with an existing user +- Click on the account initials displayed at the top-right and select `My API Key` from the drop-down +

+ high-level-dia +

+- If there is no API key generated, click on `Generate New API Key` button +- Take note of your api token displayed +

+ high-level-dia +

+ +- Set properties in the `setup.env` file: +```json +NETBIRD_DOMAIN="" +NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://oauth.id.jumpcloud.com/.well-known/openid-configuration" +NETBIRD_USE_AUTH0=false +NETBIRD_DASH_AUTH_USE_AUDIENCE=false +NETBIRD_AUTH_AUDIENCE="" +NETBIRD_AUTH_SUPPORTED_SCOPES="openid profile email offline_access" +NETBIRD_AUTH_CLIENT_ID="" +NETBIRD_AUTH_REDIRECT_URI="/auth" +NETBIRD_AUTH_SILENT_REDIRECT_URI="/silent-auth" +NETBIRD_TOKEN_SOURCE="idToken" + +NETBIRD_AUTH_DEVICE_AUTH_PROVIDER="none" + +NETBIRD_MGMT_IDP="jumpcloud" +NETBIRD_IDP_MGMT_EXTRA_API_TOKEN="" +``` + +#### Step 4: Continue with the NetBird Self-hosting Guide +You've configured all required resources in JumpCloud. You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-5-run-configuration-script). \ No newline at end of file