Enabling Kerberos Authentication¶
Prerequisite: Kerberosの理解とセットアップ
参考https://web.mit.edu/kerberos/
Kerberos認証を構成するには、Kerberosサーバーをセットアップし、 kinit を使用してクライアントでチケットを取得する必要があります。
注KerberosをサポートするActiveDirectoryユーザーは、kinitを必要としません。
pgAdminのKerberos認証を有効にするには、Kerberosがサーバーモードでインストールされているシステムで config_local.py または config_system.py config.py ドキュメントを参照してください。これらの設定を config.py ファイルからコピーし、次のパラメーターの値を変更できます。
Parameter |
Description |
|---|---|
AUTHENTICATION_SOURCES |
このパラメーターのデフォルト値は internal です。Kerberos認証を有効にするには、このパラメーターの値のリストに kerberos を含める必要があります。次のように値を変更できます。
|
KERBEROS_AUTO_CREATE_USER |
認証に成功したKerberosユーザーに対応するpgAdminユーザーを自動的に作成する場合、値を True に設定します。パスワードはpgAdminデータベースに保存されないことに注意してください。 |
KRB_APP_HOST_NAME |
pgAdminWebサーバーホスト名 の名前を指定します。設定されていない場合、 default_server パラメーターの値が取得されることに注意してください。 |
HTTPサービスのキータブファイル¶
HTTPサービスプリンシパルHTTP/<host-name>@realmの Keytab ファイルを生成し、 pgAdmin ウェブサーバーマシンにコピーします。 pgAdmin Webサーバーを所有するオペレーティングシステムユーザーがこのファイルの所有者であり、そのユーザーがアクセスできることを確認します。
krb5.conf ファイルに default_keytab_name パラメーターを設定するか、環境変数 KRB5_KTNAME のいずれかを設定する必要があることに注意してください。設定されていない場合は、 KRB_KTNAME を config_local.py または config_system.py ファイルの Keytab ファイルの場所に明示的に設定します。
ApacheHTTPD構成¶
pgAdmin サーバーがApacheサーバーの下にある場合、 Apache HTTPD Configuration の Directory 指示子に次のパラメーターを追加する必要があります。
WSGIScriptリロードオン
WSGIPass承認オン
Kerberos認証を構成するためのブラウザ設定¶
SPNEGO を介してKerberos認証を使用するには、クライアントマシンのブラウザ設定を構成する必要があります。
MozillaFirefoxの場合
アドレスバーに about:config と入力して、低レベルFirefox構成ページを開きます。
Searchテキストボックスに、次のように入力します。 network.negotiate-auth.trusted-uris
network.negotiate-auth.trusted-uris 設定をダブルクリックし、KerberosHTTPSPNEGOによって保護されるWebサーバーのホスト名またはドメインを入力します。複数のドメインとホスト名はコンマで区切ります。
OKをクリックします。
GoogleChromeの場合
Windowsの場合
ControlPanelを開き、[InternetOptions]ダイアログにアクセスします。
[セキュリティ]タブを選択します。
ローカルイントラネットゾーンを選択し、[Sites]ボタンをクリックします。
最初の2つのオプション 他のゾーンにリストされていないすべてのローカルイントラネットサイトを含める と プロキシサーバーをバイパスするすべてのサイトを含める がチェックされていることを確認します。
Advancedをクリックし、KerberosHTTPSPNEGOによって保護されているドメインの名前を一度に1つずつWebサイトのリストに追加します。例、myhost.example.com。[閉じる]をクリックします。
OKをクリックして、構成の変更を保存します。
LinuxまたはmacOSの場合
--auth-server-whitelist パラメーターをgoogle-chromeコマンドに追加します。たとえば、LinuxプロンプトからChromeを実行するには、次のようにgoogle-chromeコマンドを実行します。
google-chrome --auth-server-whitelist = "hostname/domain"
Kerberos認証を構成するためのPostgreSQLServer設定¶
PostgreSQLサーバーをKerberos認証で接続するには、PostgreSQLがビルドされ、必要な configuration が配置されているときにGSSAPIサポートを有効にする必要があります。
pgAdminでは、Serverダイアログで/"Kerberos認証/"フラグをTrueに設定して、PostgreSQLサーバーのKerberos認証を有効にする必要があります。有効にすると、pgAdminはパスワードの入力を求めず、Kerberosを使用してPostgreSQLサーバーに接続しようとします。
Kerberos認証でpgAdminにログインして、Kerberosを使用してPostgreSQLに接続する必要があることに注意してください。
マスターパスワード¶
マルチユーザーモードでは、pgAdminはユーザーのログインパスワードを使用してPostgreSQLサーバーパスワードを暗号化/復号化します。Kerberos認証では、pgAdminユーザーはパスワードを持っていないため、Kerberos認証を使用するように構成されていないサーバーのPostgreSQLサーバーパスワードを保存するための暗号化キーが必要です。これを行うには、構成パラメーターMASTER_PASSWORDを True に設定します。これにより、マスターパスワードを設定すると、パスワードを保存するときに暗号化キーとして使用されます。Falseの場合、サーバーパスワードは保存できません。