Subject: [pgAdmin][Patch] - RM #5940 - Add support for Oauth 2 authentication

From: Khushboo Vashi <[email-masked]>
Date: Thu, 17 Jun 2021 16:22:27 +0530

Hi,

Please find the attached patch for the RM #5940 - Add support for Oauth 2
authentication.

The patch includes:

- Pluggable Oauth 2 authentication support with the multiple providers
- Configurable support for Master Key in Oauth2 and Kerberos
authentication, so user can save the database server password
- Introduced the separate module/blueprint for kerberos and Oauth2 under
authentication module for the readability and maintainability

Note: The initial patch for Oauth2 authentication was sent by Florian
Sabonchi, I have worked on top of it.

Thanks,
Khushboo

---

From: Khushboo Vashi <[email-masked]>
Date: Mon, 28 Jun 2021 16:52:30 +0530

Hi,

Please find the attached rebased patch.

Thanks,
Khushboo

---

From: Akshay Joshi <[email-masked]>
Date: Mon, 5 Jul 2021 17:39:12 +0530

Hi Khushboo

Following are the review comments:

*Scenario *: AUTHENTICATION_SOURCES = ['oauth2', 'internal']

   - Don't set the OAUTH2_DISPLAY_NAME, Login button shows 'Login with
   None' which should be change. Maybe placeholder like <oauth2 display name>.
   - Enter the email address and password. Click on the "Login with ..."
   button, internal server error displayed on the page, we should throw a
   proper error message.
   -

*Code Review:*

   - Empty "__init__.py" file is added in the web folder, I think that is
   not required.
   - Any reason to change *messages.pot* file manually? It will be updated
   when we update the message catalog.
   - Fixed SonarQube issues in the new file 'oauth2.py' and
   'test_oauth2_with_mocking.py'. Remove unused imports from both files.
   - Add copyright header to "kerberos.js" file.

*Documentation*:

   - Remove "of the" from the description of OAUTH2_NAME it is duplicated.
   - String "Authorisation" should be "Authorization".
   - Instead of providing "Oauth2 secret", "Oauth2 base url" .... can we
   provide some more detailed information?

*Note*: I haven't tested the patch with the proper OAuth2 configuration.

-- 
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres <http://edbpostgres.com>*

*Mobile: +91 976-788-8246*

---

From: Khushboo Vashi <[email-masked]>
Date: Tue, 6 Jul 2021 12:01:01 +0530

Hi Akshay,

Please find the attached updated patch.

Thanks,
Khushboo
On Mon, Jul 5, 2021 at 5:39 PM Akshay Joshi <[email-masked]>
wrote:

> Fixed

> Fixed

> By mistake, it was added.

>
>    - Any reason to change *messages.pot* file manually? It will be
>    updated when we update the message catalog.
>
> I must have run make docs, removed.

> Fixed

> Fixed

> Fixed.

>>> Please find the attached patch for the RM #5940 - Add support for Oauth
>>> 2 authentication.
>>>
>>> The patch includes:
>>>

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 6 Jul 2021 13:25:05 +0530

Thanks, the patch applied.

On Tue, Jul 6, 2021 at 12:01 PM Khushboo Vashi <
[email-masked]> wrote:

>>    - Empty "__init__.py" file is added in the web folder, I think that
>>    is not required.
>>
>>>> - Introduced the separate module/blueprint for kerberos and Oauth2
>>>> under authentication module for the readability and maintainability
>>>>