From bb34cd0200f582501a7adb5f2db6868b9c217095 Mon Sep 17 00:00:00 2001 From: Lars Lehmann <33843261+larsl-net@users.noreply.github.com> Date: Sun, 25 Jun 2023 18:42:02 +0200 Subject: [PATCH] website/integrations: add Netbox integration (#5683) * website: add Netbox integration * website: fix Netbox spelling mistakes * website: add NetBox groups and roles * website: NetBox use default property mapping ad base * website: add NetBox logout url Signed-off-by: Lars Lehmann <33843261+larsl-net@users.noreply.github.com> * website: fix NetBox logout url Signed-off-by: Lars Lehmann <33843261+larsl-net@users.noreply.github.com> * website: fix NetBox spelling Signed-off-by: Lars Lehmann <33843261+larsl-net@users.noreply.github.com> * small formatting fixes Signed-off-by: Jens Langhammer --------- Signed-off-by: Lars Lehmann <33843261+larsl-net@users.noreply.github.com> Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- .../services/hashicorp-vault/index.md | 2 +- website/integrations/services/netbox/index.md | 223 ++++++++++++++++++ .../integrations/services/nextcloud/index.md | 2 +- .../integrations/services/node-red/index.md | 2 +- website/sidebarsIntegrations.js | 1 + 5 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 website/integrations/services/netbox/index.md diff --git a/website/integrations/services/hashicorp-vault/index.md b/website/integrations/services/hashicorp-vault/index.md index 1da157f19..e778bbddf 100644 --- a/website/integrations/services/hashicorp-vault/index.md +++ b/website/integrations/services/hashicorp-vault/index.md @@ -25,7 +25,7 @@ The following placeholders will be used: ### Step 1 -In authentik, create an _OAuth2/OpenID Provider_ (under _Resources/Providers_) with these settings: +In authentik, create an _OAuth2/OpenID Provider_ (under _Applications/Providers_) with these settings: :::note Only settings that have been modified from default have been listed. diff --git a/website/integrations/services/netbox/index.md b/website/integrations/services/netbox/index.md new file mode 100644 index 000000000..38af02816 --- /dev/null +++ b/website/integrations/services/netbox/index.md @@ -0,0 +1,223 @@ +--- +title: NetBox +--- + +Support level: Community + +## What is NetBox + +From https://github.com/netbox-community/netbox + +:::note +NetBox is the leading solution for modeling and documenting modern networks. +::: + +## Preparation + +The following placeholders will be used: + +- `netbox.company` is the FQDN of the NetBox install. +- `authentik.company` is the FQDN of the authentik install. + +Create an application in authentik and note the slug you choose, as this will be used later. In the Admin Interface, go to _Applications_ -> _Providers_. Create a _OAuth2/OpenID provider_ with the following parameters: + +- Client Type: `Confidential` +- Redirect URIs: `https://netbox.company/oauth/complete/oidc/` +- Scopes: OpenID, Email and Profile +- Signing Key: Select any available key + +Note the Client ID and Client Secret values. Create an application, using the provider you've created above. + +## NetBox + +:::info +This setup was tested and developed with NetBox Docker. For a non-Docker installation, the Docker part must be disabled and the non-docker part must be used. +::: + +The following Docker env vars are required for the configuration. + +```env +# Enable python-social-auth +REMOTE_AUTH_ENABLED='true' +REMOTE_AUTH_BACKEND='social_core.backends.open_id_connect.OpenIdConnectAuth' + +# python-social-auth config +SOCIAL_AUTH_OIDC_ENDPOINT='https://authentik.company/application/o//' +SOCIAL_AUTH_OIDC_KEY='' +SOCIAL_AUTH_OIDC_SECRET='' +LOGOUT_REDIRECT_URL='https://authentik.company/application/o//end-session/' +``` + +The Netbox configuration needs to be extended, for this you can create a new file in the configuration folder, for example `authentik.py`. + +```py +from os import environ + +############# +# Docker +############# + +# python-social-auth configuration +SOCIAL_AUTH_OIDC_ENDPOINT = environ.get('SOCIAL_AUTH_OIDC_ENDPOINT') +SOCIAL_AUTH_OIDC_KEY = environ.get('SOCIAL_AUTH_OIDC_KEY') +SOCIAL_AUTH_OIDC_SECRET = environ.get('SOCIAL_AUTH_OIDC_SECRET') +LOGOUT_REDIRECT_URL = environ.get('LOGOUT_REDIRECT_URL') + + +############# +# non Docker +############# + +# NetBox settings +#REMOTE_AUTH_ENABLED = True +#REMOTE_AUTH_BACKEND = 'social_core.backends.open_id_connect.OpenIdConnectAuth' + +# python-social-auth configuration +#SOCIAL_AUTH_OIDC_ENDPOINT = 'https://authentik.company/application/o/Providers. Create a SAML provider with the following parameters: +Create an application in authentik and note the slug you choose, as this will be used later. In the Admin Interface, go to _Applications_ -> _Providers_. Create a _SAML provider_ with the following parameters: - ACS URL: `https://nextcloud.company/apps/user_saml/saml/acs` - Issuer: `https://authentik.company` diff --git a/website/integrations/services/node-red/index.md b/website/integrations/services/node-red/index.md index aa6650dbc..7dc02cf96 100644 --- a/website/integrations/services/node-red/index.md +++ b/website/integrations/services/node-red/index.md @@ -27,7 +27,7 @@ The following placeholders will be used: ### Step 1 -In authentik, create an _OAuth2/OpenID Provider_ (under _Resources/Providers_) with these settings: +In authentik, create an _OAuth2/OpenID Provider_ (under _Applications/Providers_) with these settings: :::note Only settings that have been modified from default have been listed. diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index 97036a808..36a691d04 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -68,6 +68,7 @@ module.exports = { "services/harbor/index", "services/hashicorp-vault/index", "services/minio/index", + "services/netbox/index", "services/opnsense/index", "services/pfsense/index", "services/pgadmin/index",