重要

翻訳は あなたが参加できる コミュニティの取り組みです。このページは現在 77.11% 翻訳されています。

21.1. 認証システムの概要

../../../_images/auth-system-overview.png

図 21.1 認証システムの構造

21.1.1. 認証データベース

The authentication system stores authentication configurations in an SQLite database file located, by default, at <profile directory>/qgis-auth.db.

この認証データベースは、それは通常のQGIS設定から完全に分離されているので、他の現在のQGISユーザーの好みに影響を与えることなく、QGISのインストール間で移動できます。最初にデータベースに設定を格納する際に、構成ID(ランダム7文字の英数字文字列)が生成されます。これは設定を表し、これによりIDがその関連する資格情報の開示することなく、プレーンテキストアプリケーションコンポーネント(例えば、プロジェクト、プラグイン、または設定ファイルなど)に格納することを可能にします。

注釈

qgis-auth.db の親ディレクトリは、以下の環境変数、 QGIS_AUTH_DB_DIR_PATH を使用して設定、または --authdbdirectory オプションでの起動時にコマンドラインで設定できます。

21.1.2. Custom authentication databases

QGIS can be configured to use a custom authentication database instead of the above mentioned default SQLite one: any database suppported by the Qt SQL module can be used (e.g. PostgreSQL, MySQL, etc), provided that the corresponding Qt SQL driver is available in the system.

This can be useful in scenarios where a user wants to share the same authentication database between multiple QGIS installations, or when a user wants to use a different authentication database than the default SQLite one or when a centralized authentication database is used by QGIS server.

The only way to configure a custom authentication database is by setting the QGIS_AUTH_DB_URI environment variable to the URI of the connection, the URI is in the form of driver://username:password@hostname:port/database?options.

Where:
  • driver is the name of the Qt SQL driver to use, e.g. QPSQL for PostgreSQL, QMYSQL for MySQL, etc.

  • username is the username to use to connect to the database

  • password is the password to use to connect to the database

  • hostname is the hostname of the database server

  • port is the port of the database server

  • database is the name of the database to use

  • options are the options to pass to the driver, e.g. sslmode=require for PostgreSQL

注釈

The schema can be specified in the URI options, e.g. QPSQL://username:password@hostname:port/database?schema=schema_name

The database must exist before starting QGIS, and the user must have the necessary permissions to connect to the database and to create the required tables if they do not exist.

警告

The password in the URI is stored in plain text in the environment variable, so it is recommended to use a passwordless user or a user with limited permissions to connect to the database.

警告

Any database not based on SQLite is considered to be read-only (this can be changed by Python plugins if necessary).

This is an advanced feature, designed to allow one or more custom authentication databases or even custom Python implementations of credentials storages to be used by QGIS.

The system is also designed to allow for multiple authentication databases to be used but there is currently no user facing interface to manage multiple credential storages so its usage requires manual configuration and management, typically from a Python plugin.

21.1.3. マスターパスワード

データベース内に機密情報を保存したりアクセスしたりするには、ユーザは マスターパスワード を定義しなければなりません。暗号化されたデータをデータベースに初めて保存する際には、新しいマスターパスワードが要求され、確認されます。機密情報がアクセスされるとき、ユーザーはマスターパスワードの入力を求められます。その後、ユーザがキャッシュされた値をクリアするアクションを手動で選択しない限り、パスワードはセッションの終わりまで(アプリケーションが終了するまで)キャッシュされます。既存の認証設定を選択するときや、サーバー構成に設定を適用するとき(WMS レイヤを追加するときなど)など、認証システムを使用するインスタンスによっては、マスターパスワードの入力を必要としません。

パスワードをあなたのコンピュータの Wallet/Keyring に保存することもできます。

../../../_images/auth-password-new_enter.png

図 21.2 新しいマスターパスワードの入力

注釈

マスターパスワードを含むファイルへのパスは、以下の環境変数、 QGIS_AUTH_PASSWORD_FILE を使用して設定できます。

21.1.3.1. マスターパスワードの管理

一度設定すると、マスターパスワードはリセットできます。現在のマスターパスワードはリセットする前に必要になるでしょう。このプロセスの間には、現在のデータベースの完全なバックアップを作成するオプションがあります。

../../../_images/auth-password-reset.png

図 21.3 マスターパスワードのリセット

ユーザーがマスターパスワードを忘れた場合は、それを取得したり、上書きする方法はありません。マスターパスワードを知らずに暗号化された情報を検索する手立てもありません。

ユーザーが既存のパスワードを誤って3回入力すると、ダイアログがデータベースを消去しようとします。

../../../_images/auth-password-invalid-3times.png

図 21.4 3つの無効な試みの後にパスワードのプロンプト

21.1.4. 認証設定

認証設定はQGISオプションダイアログ ( 設定 ► オプション )の 認証 タブ中の 設定 から管理できます。

../../../_images/auth-editor-configs2.png

図 21.5 設定エディタ

新しい設定を追加する symbologyAdd ボタン、設定を削除する symbologyRemove ボタン、および既存のものを変更する symbologyEdit ボタンを使用できます。

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

図 21.6 設定エディタから設定を追加

認証設定管理のための同じタイプの操作(追加、編集、削除)は、OWSサービス接続を設定するように、所与のサービス接続を設定するときに行うことができます。そのため、認証データベース内で見つかった設定を完全に管理するためのアクションボタンが構成セレクタ内にあります。この場合、より包括的な構成管理を行う必要がない限り、QGISオプションの 認証 タブ中の 設定 に行く必要はありません。

../../../_images/auth-selector-wms-connection.png

図 21.7 新規追加編集削除 認証設定ボタンを示す WMS 接続ダイアログ

認証設定を作成または編集するときに、必要な情報には、名前、認証方法および認証方法が必要であること、他の情報(利用可能な認証の種類についての詳細は 認証方式 を参照)。

21.1.5. 認証方式

利用可能な認証は、データプロバイダプラグインが QGIS でサポートされているのと同じように、C++ プラグインによって提供されます。選択できる認証方法は、リソース/プロバイダに必要なアクセス(HTTP(S)やデータベースなど)、およびQGISコードとプラグインの両方にサポートがあるかどうかに関係します。そのため、認証方法プラグインによっては、認証設定セレクタが表示されていても適用できない場合があります。利用可能な認証方法プラグインとその対応リソース/プロバイダの一覧は 設定 ► オプション にアクセスし、 認証 タブの options インストール済みプラグイン ボタンをクリックすると表示されます。

../../../_images/auth-method-listing.png

図 21.8 利用可能なメソッドプラグイン一覧

プラグインは、QGIS の再コンパイルを必要とせずに新しい認証方法用に作成できます。現在、プラグインのサポートはC++のみであるため、ドロップインした新しいプラグインをユーザーが使用できるようにするには、QGISを再起動する必要があります。プラグインを既存のターゲットインストールに追加する場合は、プラグインがQGISの同じターゲットバージョンに対してコンパイルされていることを確認してください。

../../../_images/auth-config-create_basic-auth.png

図 21.9 基本HTTP認証構成

../../../_images/auth-config-create_esritoken.png

図 21.10 ESRIトークン認証構成

../../../_images/auth-config-create_oauth2.png

図 21.11 OAuth2認証構成

../../../_images/auth-config-create_pem-der-paths.png

図 21.12 PKIパス認証構成

../../../_images/auth-config-create_pkcs12-paths.png

図 21.13 PKI PKCS#12ファイルのパス認証構成

../../../_images/auth-config-create_stored-identity2.png

図 21.14 保存されたアイデンティティ認証構成

注釈

リソースのURLは現在 未実装 の機能で、最終的には指定されたURLにあるリソースへの接続時に特定の構成が自動選択できるようになります。

21.1.6. マスターパスワードと認証構成ユーティリティ

設定 ► オプション )オプションメニューの下にある 認証 タブ、認証データベースと構成を管理するには、いくつかのユーティリティアクションがあります。

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

図 21.15 ユーティリティメニュー

  • マスターパスワードを入力する: 認証データベースコマンドの実行とは無関係に、マスターパスワードの入力ダイアログを開きます

  • キャッシュされたマスターパスワードを消去する: マスターパスワードがセットされているときにそれを外します

  • マスターパスワードをリセットする: マスターパスワードを変更するダイアログを開き(現在のパスワードが判っている必要があります)、オプションで現在のデータベースをバックアップします

  • ネットワーク認証アクセスキャッシュをクリアする: すべての接続の認証キャッシュをクリアします

  • SSLエラーでネットワーク認証アクセスキャッシュを自動的にクリアする:接続キャッシュは、接続に失敗した場合にも、接続のすべての認証データを保存します。認証設定や認証局を変更した場合は、認証キャッシュをクリアするか、QGISを再起動する必要があります。このオプションをオンにすると、SSLエラーが発生し、接続を中止することを選択するたびに、認証キャッシュが自動的にクリアされます。

  • あなたのWallet/Keyringとマスターパスワードを統合する: マスターパスワードを個人のWallet/Keyringに追加します

  • Wallet/Keyringのマスターパスワードを保存更新: 変更したマスターパスワードをWallet/Keyringに保存します

  • あなたのWallet/Keyringからマスターパスワードをクリアする:Wallet/Keyringからマスターパスワードを削除します

  • パスワードヘルパーデバッグログを有効にする: 認証方法のすべてのログ情報を格納するデバッグツールを有効にします

  • キャッシュされた認証構成をクリアする: ネットワーク接続を高速化するために使用される設定の内部キャッシュをクリアします。これはQGISのコアネットワークアクセスマネージャのキャッシュをクリアしません。それにはQGISの再起動が必要です。

  • すべての認証設定を削除する: すべての設定レコードのデータベースをクリアします。その他のレコードは削除されません。

  • 認証データベースを消去する: 現在のデータベースのバックアップと、データベーステーブル構造の完全な再構築をスケジュールします。このアクションは、プロジェクトの読み込みのような、他の操作が一時的にデータベースが見つからないために中断やエラーが起きないよう、後の時間にスケジュールされます。

    ../../../_images/auth-db-erase.png

    図 21.16 DB消去検証メニュー

21.1.7. 認証設定を使用する

典型的には、認証構成は、(例えば、WMSのような)ネットワークサービスのための設定ダイアログで選択されています。しかし、セレクタウィジェットは、サードパーティのPyQGISまたはC ++プラグインのように、認証が必要などこにでも、または非コア機能中に、埋め込むことができます。

セレクタを使用しているとき、何も選択されていない場合、選択する構成がない場合、または以前に割り当てられた構成がもはやデータベースに見つからない場合は 認証なし がポップアップメニューコントロールに表示されます。 typeId フィールドは読み取り専用とそれぞれの認証方法の説明と構成のIDを提供しています。

../../../_images/auth-selector-no-authentication.png

図 21.17 認証なしの認証設定セレクタ

../../../_images/auth-selector-pkcs12-authentication.png

図 21.18 構成が選択された認証設定セレクタ

21.1.8. Pythonバインディング

マスターパスワードのハッシュ化と認証データベースの暗号化の管理は、Pythonを経由してではなく、メインのアプリによって処理されるべきなので、QgsAuthCrypto を除く全てのクラスとパブリック関数はsipバインディングを持っています。

マスターパスワードが入力されると、Firefoxの仕組みと同じように、認証データベースの認証設定にアクセスするためのAPIが開かれる。ただし、PyQGISアクセスに対する壁は定義されていません。このため、認証情報にアクセスする悪意のあるPyQGISプラグインやスタンドアロンアプリをユーザーがダウンロード/インストールした場合に問題が発生する可能性があります。