Subject: OAUTH2 Problems

From: Francisco Cardoso <[email-masked]>
Date: Fri, 12 Nov 2021 14:50:55 +0000

Hello pgadmin hackers,

I have problems with the configuration of the oauth2 with azureAD.

It seems like the configuration is not applied as the display name is not applied. If I click on the OAUTH2 button I get the error “Please set the configuration parameters properly.” In the UI.

Here is my config:

Version: 6.1

config_local.py
```
OAUTH2_NAME = "azure"
OAUTH2_BUTTON_COLOR = "#3253a8"
OAUTH2_CLIENT_ID = "[ID]"
OAUTH2_DISPLAY_NAME = "Azure"
OAUTH2_TOKEN_URL = "https://login.microsoftonline.com/.../oauth2/v2.0/token"
OAUTH2_AUTHORIZATION_URL = "https://login.microsoftonline.com/.../oauth2/v2.0/authorize"
OAUTH2_CLIENT_SECRET = "[secret]"
OAUTH2_ICON = "fa-github"
OAUTH2_SCOPE = "User.Read email openid profile"
OAUTH2_API_BASE_URL = "https://graph.microsoft.com/"
OAUTH2_USERINFO_ENDPOINT = "profile"
MASTER_PASSWORD_REQUIRED = True
AUTHENTICATION_SOURCES = ['oauth2', 'internal']
CONSOLE_LOG_LEVEL = 10
```

I run the pgadmin in a container. Here is the docker-compose file I use:

```
# https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
version: "3"
services:
  pgadmin:
    image: dpage/pgadmin4:6.1
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: "[MAIL]"
      PGADMIN_DEFAULT_PASSWORD: "[PASS]"
      PGADMIN_LISTEN_PORT: "11111"
    network_mode: host
    volumes:
      - "${PWD}/data:/var/lib/pgadmin"
      - "${PWD}/servers.json:/pgadmin4/servers.json"
      - "${PWD}/config_local.py:/pgadmin4/config_local.py"
```

I also tried before to set everything via env variable but same result. For completeness here is the yaml with the env set:

```
version: "3"
services:
  pgadmin:
    image: dpage/pgadmin4:6.1
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: "[MAIL]"
      PGADMIN_DEFAULT_PASSWORD: "[PASS]"
      PGADMIN_LISTEN_PORT: "11111"
      PGADMIN_CONFIG_USER_INACTIVITY_TIMEOUT: "10800"
      PGADMIN_CONFIG_MAX_QUERY_HIST_STORED : "1000"
      PGADMIN_CONFIG_AUTHENTICATION_SOURCES: "['oauth2', 'internal']"
      PGADMIN_CONFIG_OAUTH2_NAME: "'azure'"
      PGADMIN_CONFIG_OAUTH2_DISPLAY_NAME: "Azure"
      PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "True"
      PGADMIN_CONFIG_OAUTH2_TOKEN_URL: "'https://login.microsoftonline.com/…/oauth2/v2.0/token'"
      PGADMIN_CONFIG_OAUTH2_AUTHORIZATION_URL: "'https://login.microsoftonline.com/…/oauth2/v2.0/authorize'"
      PGADMIN_CONFIG_OAUTH2_API_BASE_URL: "'https://graph.microsoft.com/'"
      PGADMIN_CONFIG_OAUTH2_USERINFO_ENDPOINT: " profile "
      PGADMIN_CONFIG_OAUTH2_CLIENT_ID: “’[ID]’”
      PGADMIN_CONFIG_OAUTH2_CLIENT_SECRET: "'[SECRET]'"
      PGADMIN_CONFIG_OAUTH2_BUTTON_COLOR: "'#0000ff'"
      PGADMIN_CONFIG_DEBUG: "True"
      PGADMIN_CONFIG_CONSOLE_LOG_LEVEL: "10"
    network_mode: host
    volumes:
      - "${PWD}/data:/var/lib/pgadmin"
      - "${PWD}/servers.json:/pgadmin4/servers.json"
```

Am I missing something ? Thanks for the help.

Best,

Francisco

---

From: Khushboo Vashi <[email-masked]>
Date: Tue, 16 Nov 2021 08:36:52 +0530

Hi,

On Mon, Nov 15, 2021 at 10:12 PM Francisco Cardoso <
[email-masked]> wrote:

> It seems like the configuration is not applied as the display name is not
> applied. If I click on the OAUTH2 button I get the error “Please set the
> configuration parameters properly.” In the UI.
>
>
>
> Here is my config:
>
>
>
> Version: 6.1
>
>
>
> config_local.py
>
> ```
>
> OAUTH2_NAME = "azure"
>
> OAUTH2_TOKEN_URL = "
> https://login.microsoftonline.com/.../oauth2/v2.0/token"
>
> OAUTH2_AUTHORIZATION_URL = "
> https://login.microsoftonline.com/.../oauth2/v2.0/authorize"
>

pgAdmin 4 supports multiple Oauth2 configurations at a time, so it should
be in an array, like below:

OAUTH2_CONFIG = [{
     'OAUTH2_NAME': 'azure',
     'OAUTH2_DISPLAY_NAME': 'Azure',
     'OAUTH2_CLIENT_ID': 'xxxxxx',
     'OAUTH2_CLIENT_SECRET': 'xxxxxxxx',
     'OAUTH2_TOKEN_URL':
'https://login.microsoftonline.com/.../oauth2/v2.0/token',
     'OAUTH2_AUTHORIZATION_URL':
'https://login.microsoftonline.com/.../oauth2/v2.0/authorize',
     'OAUTH2_API_BASE_URL': 'https://graph.microsoft.com/"',
     'OAUTH2_USERINFO_ENDPOINT': 'profile',
     'OAUTH2_ICON': 'fa-github',
     'OAUTH2_BUTTON_COLOR': '#3253a8',
     'ALLOWED_ORGANIZATIONS': ['']

}]

Thanks,
Khushboo

> I also tried before to set everything via env variable but same result.
> For completeness here is the yaml with the env set:
>
>
>
> ```
>
> version: "3"
>
> services:
>
>   pgadmin:
>
>       PGADMIN_CONFIG_OAUTH2_TOKEN_URL: "'
> https://login.microsoftonline.com/…/oauth2/v2.0/token'"
>
>       PGADMIN_CONFIG_OAUTH2_AUTHORIZATION_URL: "'
> https://login.microsoftonline.com/…/oauth2/v2.0/authorize'"
>