24.2. ユーザー認証ワークフロー

../../../_images/auth-user-usage.png

図 24.19 一般的なユーザーのワークフロー

24.2.1. HTTP(S)認証

最も一般的なリソース接続の1つは、HTTP(S)を介して例えばWebマッピングサーバーで、認証方式のプラグインは多くの場合に接続のこれらのタイプのために機能します。方法プラグインは、HTTPリクエスト・オブジェクトにアクセスし、要求、ならびにそのヘッダの両方を操作できます。これにより、インターネットベースの認証の多くの形態が可能になります。標準のユーザー名/パスワードを使用してHTTP(S)経由で接続するときは、認証方法は接続時にHTTP BASIC認証を試みます。

../../../_images/auth-http-basic-wms.png

図 24.20 HTTP BASICのためのWMS接続の設定

24.2.2. データベース認証

データベースリソースへの接続は一般的に key=value のペアとして保存され、認証設定を使用 しない 場合は、ユーザー名と(オプションで)パスワードが暴露されます。認証システムを使うよう設定した場合、key=value は認証情報の抽象化された表現になります(例 authfg=81t21b9

../../../_images/auth-db-ssl-pki.png

図 24.21 PostgresのPKI付SSLの接続を設定します

24.2.3. PKI認証

認証システム内のPKIコンポーネントを設定するときは、データベースにコンポーネントをインポートしたり、ファイルシステムに保存されているコンポーネントファイルを参照するオプションがあります。このような成分が頻繁に変更、又はここでコンポーネントは、システム管理者によって置換される場合、後者は有用であり得ます。いずれの場合では、データベース内の秘密鍵にアクセスするために必要なすべてのパスフレーズを保存する必要があります。

../../../_images/auth-pki-config.png

図 24.22 PKI設定ワークフロー

すべてのPKIコンポーネントは、証明書マネージャ 内の個別のエディタで管理することができます。このエディタは、QGISの オプション ダイアログ(設定 ► オプション)の 認証 タブで 証明書を管理 ボタンをクリックしてアクセスすることができます。

../../../_images/auth-open-Certificate-manager.png

図 24.23 証明書マネージャを開く

証明書マネージャ には、Identitiesサーバ認証局 のエディタがあります。これらはそれぞれ独自のタブに含まれており、上記のワークフロー・チャートの中で遭遇する順番で以下に説明します。タブの順番は、ワークフローに慣れてきたら、頻繁にアクセスするエディタに相対するものです。

注釈

認証システムの編集はすべて認証データベースに即座に書き込まれるため、変更を保存するために オプション ダイアログの OK ボタンをクリックする必要がありません。これは、オプションダイアログの他の設定とは異なります。

24.2.3.1. 認証局

QGISの オプション ダイアログの 認証 タブから、 証明書マネージャ 中の 認証局 タブから入手できる証明機関(CA)を管理できます。

上記ワークフローチャートで参照されるように、最初のステップは、インポートまたはCASのファイルを参照することです。このステップはオプションで、商用証明書ベンダーからの証明書のように、PKIの信頼チェーンがオペレーティングシステム(OS)にインストールされているルートCAから発している場合は不要です。認証ルートCAがOSの信頼されたルートCAでない場合は、インポートするか、そのファイルシステムパスが参照されている必要があります。(不明な場合はシステム管理者に問い合わせてください。)

../../../_images/auth-editor-authorities.png

図 24.24 認証局エディタ

デフォルトでは、OSのルートCAが利用可能ですが、その信頼設定は継承されません。特にOSのルートCAのポリシーが調整された場合は、証明書の信頼ポリシー設定を確認する必要があります。有効期限が切れた証明書は、特に信頼ポリシーを上書きしない限り、信頼されない設定になり、安全なサーバー接続に使用されません。証明書用のQGISが検出可能な信頼チェーンを見るには、その証明書を選択し、 metadata :sup:`証明書の情報を表示`をクリックします。

../../../_images/auth-authority-imported_cert-info-chain.png

図 24.25 証明書情報ダイアログ

チェーン内で選択した証明書の 信頼ポリシー selectString を編集することができます。選択した証明書に対する信頼ポリシーの変更は、選択した証明書 ごとfileSave データベースに証明書信頼ポリシーの変更を保存します ボタンがクリックされない限り、データベースに保存されません。ダイアログを閉じても、ポリシーの変更は適用 されません

../../../_images/auth-authority-edit-trust_save-not-close.png

図 24.26 信頼ポリシーの変更を保存する

セキュアな接続のために信頼されるフィルタのCA、両方の中間証明書とルート証明書を、確認またはクリックすることで、デフォルトの信頼ポリシーを変更できます transformSettingsオプション ボタンを押します。

警告

デフォルトの信頼ポリシーを変更すると、安全な接続で問題が発生する可能性があります。

../../../_images/auth-editor-authorities_utilities-menu.png

図 24.27 当局のオプションメニュー

CAをインポートしたり、複数のCAが含まれているファイルからファイルシステムパスを保存したり、個々のCAをインポートすることができます。複数のCAチェーンの証明が含まれているファイルの標準PEM形式は、ファイルの一番下にルート証明書を持っており、すべてはその後、ファイルの先頭の方に、上記の子証明書に署名しました。

CA証明書のインポート]ダイアログボックスが順序に関係なく、ファイル内のすべてのCA証明書を見つけ、また、(彼らの信頼ポリシーを上書きしたい場合には)無効とみなされた証明書をインポートするオプションを提供していますでしょう。インポート時に信頼ポリシーを上書きするか、後でそれを 当局 エディタ内で行うことができます。

../../../_images/auth-authority-import.png

図 24.28 証明書のインポート]ダイアログ

注釈

PEMのtext フィールドに証明書情報を貼り付ける場合、暗号化された証明書がサポートされていないことに注意してください。

24.2.3.2. アイデンティティ

証明書マネージャ 認証 QGIS オプション ダイアログのタブ アイデンティティ タブでから入手できるクライアントIDのバンドルを管理できます。アイデンティティは、別々のファイルとして、または単一「バンドル」のファイルに結合のいずれか、PKI対応サービスに対して、あなたを認証し、通常のクライアント証明書と秘密鍵で構成するものです。バンドルまたは秘密鍵は、多くの場合、パスフレーズで保護されています。

一度何らかの証明機関(CA)をインポートされると、必要に応じて認証データベースに任意のアイデンティティバンドルをインポートできます。アイデンティティを保存したくない場合は、個別の認証設定の中でそのコンポーネントファイルシステムパスを参照できます。

../../../_images/auth-editor-identities.png

図 24.29 アイデンティティエディタ

アイデンティティ・バンドルをインポートする場合、パスフレーズで保護または非保護することができ、かつ信頼チェーンを形成するCA証明書を含めることができます。トラストチェーンの認定は、ここではインポートされません。 機関 タブ下でそれらは別途追加できます。

インポート時には、バンドルの証明書と秘密鍵は、鍵の保管は、QGISのマスターパスワードを使用して暗号化し、データベースに保存されます。データベースから記憶された束のその後の使用は、マスターパスワードの入力を必要とします。

個人のアイデンティティは、PEM / DER(.PEM / .DER)とPKCS#12からなるバンドル(.P12 / .PFX)コンポーネントがサポートされています。キーまたはバンドルがパスフレーズで保護されている場合は、パスワードをインポートする前にコンポーネントを検証する必要があります。バンドル内のクライアント証明書が無効である場合同様に、バンドルをインポートすることはできません(例えば、その効果的な日付はまだ開始されていないか、経過しています)。

../../../_images/auth-identity-import_paths.png

図 24.30 PEM / DERのアイデンティティのインポート

../../../_images/auth-identity-import_bundle-valid.png

図 24.31 PKCS#12 identity import

24.2.4. 不正レイヤの取り扱い

時折、プロジェクトファイルと一緒に保存された認証設定IDが、おそらく現在の認証データベースがプロジェクトが最後に保存されたときと異なったり資格情報の不一致のせいで、もはや有効ではありません。このような場合には 不正レイヤ処理 ダイアログがQGISの起動時に表示されます。

../../../_images/auth-handle-bad-layers.png

図 24.32 認証で不正レイヤを処理する

データソースは、それに関連付けられた認証設定のIDを持つことが判明した場合、それを編集できます。そうすることで、自動的にテキストエディタでプロジェクトファイルを開くと、文字列の編集と同じように多くのデータソース文字列を編集します。

../../../_images/auth-handle-bad-layers-edit.png

図 24.33 不正レイヤの認証設定IDを編集します

24.2.5. 認証の設定のIDを変更する

リソースへのアクセスに関連する認証設定IDの変更が必要な場合があります。これが便利な場合があります:

  • リソースの認証設定IDが無効になっている: これは、認証データベースを切り替えたときに、新しい設定をリソースに関連付けられたIDに合わせる必要がある場合に発生することがあります。

  • 共有プロジェクトファイル: 共有ファイルサーバーなどを介してユーザー間でプロジェクトを共有することを意図している場合、リソースに関連付けられた7文字(a-z0-9 を含む)を predefine が可能です。そして、個々のユーザーは、リソースの認証情報に特化した認証設定のIDを変更します。プロジェクトが開かれたとき、IDは認証データベースで見つかりますが、認証情報はユーザーごとに異なります。

../../../_images/auth-change-config-id.png

図 24.34 レイヤーの認証設定ID(ロック解除された黄色のテキストフィールド)を変更します

警告

認証設定IDを変更することは高度な操作と考えられ、なぜそれが必要であるかの完全な知識を持ってのみ行われるべきです。IDを編集するのに先立ってIDのテキストフィールドのロックを解除するためにクリックされる必要のあるロックボタンがあるのはこのためです。

24.2.6. QGISサーバーのサポート

認証設定を持っているレイヤーがあるプロジェクトファイルをQGISサーバー中の地図の基礎として使用する場合は、QGISでそれらのリソースをロードするために必要な追加の設定手順がいくつかあります:

  • 認証データベースが利用できるようにする必要があります

  • 認証データベースのマスターパスワードが利用できるようにする必要があります

認証システムをインスタンス化する際、Serverはアクティブな user profileqgis-auth.db ファイルを作成または使用するか、QGIS_AUTH_DB_DIR_PATH 環境変数で定義したディレクトリを使用します。その場合、環境変数を使用して、サーバーのユーザーが読み取り/書き込み権限を持ち、ウェブアクセス可能なディレクトリ内にないディレクトリを定義してください。

サーバーにマスターパスワードを渡すには、サーバー・プロセスのユーザーが読み込み可能なファイルシステム上のパスにファイルの最初の行にそれを書くと QGIS_AUTH_PASSWORD_FILE 環境変数を使用して定義されました。サーバーのプロセスのユーザーによってのみ読めるようファイルを制限し、ウェブアクセス可能なディレクトリ内のファイルを保存しないように確認してください。

注釈

QGIS_AUTH_PASSWORD_FILE 変数は、アクセス後すぐにサーバー環境から削除されます。

24.2.7. SSLサーバーの例外

../../../_images/auth-ssl-config.png

図 24.35 SSLサーバーの例外

QGISの オプション ダイアログの 認証 セクション中の サーバー タブから、SSLサーバーの設定および例外を管理できます。

SSLサーバーへの接続時に時々、SSL「握手」や、サーバーの証明書でエラーがあります。これらのエラーを無視するか、例外としてSSLサーバー構成を作成できます。これは、Webブラウザを使用してSSLエラーをどのように上書きできるかに似ていますが、より細かく制御しています。

警告

サーバーとクライアントの間で全体のSSLの設定の完全な知識を持っていない限り、SSLのサーバー構成を作成しないでください。代わりに、サーバー管理者に問題を報告してください。

注釈

一部のPKIのセットアップは、SSLサーバー証明書を検証するために使用するチェーンよりも、クライアントのアイデンティティを検証するために完全に異なるCAの信頼チェーンを使用します。このような状況では、接続するサーバー用に作成された任意の構成は、必ずしもあなたのクライアントのアイデンティティの検証の問題を解決しないだろう、自分のクライアントIDの発行者またはサーバー管理者だけが問題を解決できます。

symbologyAdd ボタンをクリックすることにより、SSLサーバーの設定を事前に設定できます。SSLエラーが接続時に発生しますが SSLエラー ダイアログが表示されたときに代わりに、設定を追加できます(ここではエラーは一時的に無視されるか、またはデータベースに保存されて無視できます):

../../../_images/auth-server-exception.png

図 24.36 手動で設定を追加

../../../_images/auth-server-error-add-exception.png

図 24.37 SSLエラー時の設定を追加

SSLの設定がデータベースに保存されれば、編集したり削除できます。

../../../_images/auth-editor-servers.png

図 24.38 既存のSSL設定

../../../_images/auth-server-edit.png

図 24.39 既存のSSL設定を編集します

SSL設定を事前に行いたい場合で、インポートダイアログがサーバーの接続に対応していない場合は、以下のコードを実行することで、Python Console 経由で手動で接続をトリガーできます(https://bugreports.qt-project.org をサーバーのURLに置き換えてください):

from qgis.PyQt.QtNetwork import QNetworkRequest
from qgis.PyQt.QtCore import QUrl
from qgis.core import QgsNetworkAccessManager

req = QNetworkRequest(QUrl('https://bugreports.qt-project.org'))
reply = QgsNetworkAccessManager.instance().get(req)

これにより、何かエラーが発生した場合はSSLエラーダイアログが開き、設定をデータベースに保存することを選択できます。