* website/integrations: pgadmin: refactor Refactors the pgAdmin integration documentation, makes it match existing style guide, and adds subsection for configuration for containerized deployments * website/integrations: pgadmin: lint Lints refactored documentation page * Update website/integrations/services/pgadmin/index.md Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com> Signed-off-by: 4d62 <git@sdko.org> * website/integrations: pgadmin: updates note Adds back "based on" note with updated versions * website/integrations: pgadmin: specify strict/regex rediect uri Not sure on wording tho * website/integrations: pgadmin: add configuration validation step Adds configuration validation step. Log out, log back in with authentik. Button on login page * website/integrations: pgadmin: fix redirect uri Fixes incorrect redirect uri introduced during refactor. Probably forgot to copy slug or something. Important thing is that it's fixed Signed-off-by: 4d62 <git@sdko.org> * website/integrations: pgadmin: fix another stupidity I probably made Glorious https://img.sdko.org/u/0k3f46.png Signed-off-by: 4d62 <git@sdko.org> --------- Signed-off-by: 4d62 <git@sdko.org> Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
4.3 KiB
title, sidebar_label
| title | sidebar_label |
|---|---|
| Integrate with pgAdmin | pgAdmin |
pgAdmin
Support level: Community
What is pgAdmin
pgAdmin is a management tool for PostgreSQL and derivative relational databases such as EnterpriseDB's EDB Advanced Server. It may be run either as a web or desktop application.
:::note This is based on authentik 2024.12.2 and pgAdmin4 8.14 :::
Preparation
The following placeholders are used in this guide:
pgadmin.companyis the FQDN of pgAdmin.authentik.companyis the FQDN of authentik.
authentik configuration
- From the Admin interface, navigate to Applications -> Applications.
- Use the wizard to create a new application and provider. During this process:
- Note the Client ID, Client Secret, and slug values because they will be required later.
- Set a
Strictredirect URI tohttps://pgadmin.company/oauth2/authorize. - Select any available signing key.
pgAdmin OAuth Configuration
To configure OAuth in pgAdmin, you can either use the config_local.py file or set environment variables if you are deploying pgAdmin in a containerized setup.
Using config_local.py
-
Locate or create the
config_local.pyfile in the/pgadmin4/directory.- If the file does not exist, create it manually.
-
Add the following configuration settings to
config_local.py:AUTHENTICATION_SOURCES = ['oauth2', 'internal'] OAUTH2_AUTO_CREATE_USER = True OAUTH2_CONFIG = [{ 'OAUTH2_NAME': 'authentik', 'OAUTH2_DISPLAY_NAME': 'authentik', 'OAUTH2_CLIENT_ID': '<Client ID from authentik>', 'OAUTH2_CLIENT_SECRET': '<Client secret from authentik>', 'OAUTH2_TOKEN_URL': 'https://authentik.company/application/o/token/', 'OAUTH2_AUTHORIZATION_URL': 'https://authentik.company/application/o/authorize/', 'OAUTH2_API_BASE_URL': 'https://authentik.company/', 'OAUTH2_USERINFO_ENDPOINT': 'https://authentik.company/application/o/userinfo/', 'OAUTH2_SERVER_METADATA_URL': 'https://authentik.company/application/o/<App Slug>/.well-known/openid-configuration', 'OAUTH2_SCOPE': 'openid email profile', 'OAUTH2_ICON': '<Fontawesome icon key (e.g., fa-key)>', 'OAUTH2_BUTTON_COLOR': '<Hexadecimal color code for the login button>' }] -
Save the file and restart pgAdmin for the changes to take effect.
:::note You must restart pgAdmin every time you make changes to
config_local.py. :::
Using Environment Variables for Containerized Deployments
For deployments using Docker or Kubernetes, you can configure OAuth using the following environment variables:
- Set these environment variables in your container:
PGADMIN_CONFIG_AUTHENTICATION_SOURCES="['oauth2', 'internal']"
PGADMIN_CONFIG_OAUTH2_AUTO_CREATE_USER=True
PGADMIN_CONFIG_OAUTH2_CONFIG="[{'OAUTH2_NAME':'authentik','OAUTH2_DISPLAY_NAME':'Login with authentik','OAUTH2_CLIENT_ID':'<Client ID from authentik>','OAUTH2_CLIENT_SECRET':'<Client secret from authentik>','OAUTH2_TOKEN_URL':'https://authentik.company/application/o/token/','OAUTH2_AUTHORIZATION_URL':'https://authentik.company/application/o/authorize/','OAUTH2_API_BASE_URL':'https://authentik.company/','OAUTH2_USERINFO_ENDPOINT':'https://authentik.company/application/o/userinfo/','OAUTH2_SERVER_METADATA_URL':'https://authentik.company/application/o/<App Slug>/.well-known/openid-configuration','OAUTH2_SCOPE':'openid email profile','OAUTH2_ICON':'<Fontawesome icon key (e.g., fa-key)>','OAUTH2_BUTTON_COLOR':'<Hexadecimal color code for the login button>'}]"
General Notes
-
To only allow OAuth2 login, set:
AUTHENTICATION_SOURCES = ['oauth2']Ensure that you promote at least one user to an admin before disabling the internal authentication.
-
To disable automatic user creation, set:
OAUTH2_AUTO_CREATE_USER = FalseSetting this value to
Falsedisables automatic user creation. This ensures that only the first signed-in user is registered.
Configuration verification
To confirm that authentik is properly configured with pgAdmin, log out and log back in via authentik. A new button should have appeared on the login page.