Enabling OAUTH2 Authentication#

pgAdminのOAUTH2認証を有効にするには、pgAdminがサーバーモードでインストールされているシステムで config_local.py または config_system.py ファイル config.py ドキュメントを参照してください。これらの設定を config.py ファイルからコピーし、次のパラメーターの値を変更できます。

Parameter

Description

AUTHENTICATION_SOURCES

このパラメータのデフォルト値は internal です。 OAUTH2認証を有効にするには、このパラメータの値のリストに oauth2 を含める必要があります。次のように値を変更できます。

  • [oauth2, internal] pgAdminは、oauth2で認証するための追加ボタンを表示します

OAUTH2_NAME

Oauth2プロバイダーの名前 例 Google、Github

OAUTH2_DISPLAY_NAME

pgAdminのOauth2表示名

OAUTH2_CLIENT_ID

Oauth2クライアントID

OAUTH2_CLIENT_SECRET

Oauth2クライアントシークレット

OAUTH2_TOKEN_URL

Oauth2アクセストークンエンドポイント

OAUTH2_AUTHORIZATION_URL

ユーザー承認のためのエンドポイント

OAUTH2_SERVER_METADATA_URL

OAuth2プロバイダーのサーバーメタデータURL

OAUTH2_API_BASE_URL

要求を簡単にするOauth2ベースURLエンドポイント、例 https://api.github.com/

OAUTH2_USERINFO_ENDPOINT

ユーザーエンドポイント、例 user githubの場合、または user/emails ユーザーのメールアドレスがプライベートの場合 および userinfo googleの場合

OAUTH2_SCOPE

Oauthスコープ、例 'openid email Profile'。結果のプロファイルでは、 'email'クレームが必要であることに注意してください。

OAUTH2_ICON

oauth2ボタンに配置されるFont-awesomeアイコン、例fa-github

OAUTH2_BUTTON_COLOR

Oauth2ボタンの色

OAUTH2_USERNAME_CLAIM

ユーザー名に使用されるクレーム。値が空の場合

電子メールはユーザー名として使用されますが、値が提供される場合、クレームが存在する必要があります。例 oid AzureADの場合、 email Githubの場合

OAUTH2_AUTO_CREATE_USER

自動的に行う場合は、値を True に設定します

正常に認証されたOauth2ユーザーに対応するpgAdminユーザーを作成します。パスワードはpgAdminデータベースに保存されないことに注意してください。

OAUTH2_ADDITIONAL_CLAIMS

辞書が提供されている場合、pgAdminはuserinfoエンドポイントで一致するキーと値をチェックします

IDトークンで。提供された構成と一致するものがない場合、ユーザーは承認エラーを受け取ります。 AzureAD wids または groups 、GitLab owner 、 maintainer 、および reporter クレームをチェックするのに役立ちます。

OAUTH2_SSL_CERT_VERIFICATION

OAuth2プロバイダーのSSL証明書検証を無効にするには、この変数をFalseに設定します。

自己署名証明書の場合、これはFalseに設定する必要がある場合があります。

OAUTH2_CHALLENGE_METHOD

PKCEワークフローを有効にします。 PKCEメソッド名、 S256 のみがサポートされています

OAUTH2_RESPONSE_TYPE

PKCEワークフローを有効にします。 OAUTH2_CHALLENGE_METHODでは必須、 code に設定する必要があります

リダイレクトURL#

Oauth2サーバーを構成するリダイレクトURLは次のとおりです。 <http/https>://<pgAdmin Server URL>/oauth2/authorize アプリケーションの承認が成功すると、承認サーバーはここで指定されたpgAdmin URLにユーザーをリダイレクトします。 pgAdminサーバーがhttpsプロトコルでサービスを提供する場合、httpsスキームを選択しますそれ以外の場合は、httpを選択します。

マスターパスワード#

マルチユーザーモードでは、pgAdminはユーザーのログインパスワードを使用してPostgreSQLサーバーパスワードを暗号化/復号化します。 Oauth2認証では、pgAdminはユーザーのパスワードを保存しないため、PostgreSQLサーバーパスワードを保存するための暗号化キーが必要です。これを行うには、構成パラメーターMASTER_PASSWORDを True に設定します。これにより、マスターパスワードを設定すると、パスワードを保存するときに暗号化キーとして使用されます。 Falseの場合、サーバーパスワードは保存できません。

ログインページ#

構成後、再起動すると、Oauth2ログインボタンを備えたログインページが表示されます。

Oauth2ログイン

PKCEワークフロー#

参照 https://oauth.net/2/pkce

PKCEワークフローを有効にするには、構成パラメーターOAUTH2_CHALLENGE_METHODを S256 に設定し、OAUTH2_RESPONSE_TYPEを code に設定します。 PKCEワークフローを有効にするには、両方のパラメーターが必須です。