さまざまなウィンドウやプラットフォームでのセキュリティ・レベル
この章は、Tauri アプリのセキュリティ・レベルをカスタマイズする方法について説明いたします。
- Tauri アプリで複数のウィンドウを作成する
- ウィンドウごとに異なるセキュリティ・レベルを使用する
- プラットフォームをに依存するセキュリティ・レベルを使用する
この章の演習内容は、「プラグイン・アクセス権の使用」を読了後に行なうことを前提としています。
-
この演習では、
first
(第一)とsecond
(第二)というラベルの付いた二つのウィンドウを持つアプリを作成します。 Tauri アプリケーションでウィンドウを作成する方法はいくつかあります。Tauri 設定ファイル(通常は
tauri.conf.json
という名前)では次のようになります:"productName": "multiwindow",..."app": {"windows": [{"label": "first","title": "First","width": 800,"height": 600},{"label": "second","title": "Second","width": 800,"height": 600}],},...}Rust コード内で Tauri アプリを作成します:
tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).setup(|app| {let webview_url = tauri::WebviewUrl::App("index.html".into());// First window(第一ウィンドウ)tauri::WebviewWindowBuilder::new(app, "first", webview_url.clone()).title("First").build()?;// Second window(第二ウィンドウ)tauri::WebviewWindowBuilder::new(app, "second", webview_url).title("Second").build()?;Ok(())}).run(context).expect("error while running tauri application"); -
Tauri アプリのウィンドウでは、Tauri バックエンドのさまざまな機能やプラグインを使用できます。 セキュリティをより強固にするために、各ウィンドウに必要なセキュリティ機能のみを付与することをお勧めします。 この演習では、「第一の
first
」ウィンドウでファイルシステムとダイアログ機能を使用し、「第二のsecond
」ウィンドウではダイアログ機能のみを必要としている状況を想定して進めます。有効化するアクションのカテゴリごとに「セキュリティ・レベル」ファイルを分割することをお勧めします。
src-tauri/capabilities
内の JSON ファイルは、「セキュリティ・レベル」システムに対応済みです。 そこで、ファイルシステムとダイアログ・ウィンドウに関連するセキュリティ・レベルをfilesystem.json
とdialog.json
に分割します。Tauri プロジェクトのファイルツリー:
/src/src-tauri/capabilitiesfilesystem.jsondialog.jsontauri.conf.jsonpackage.jsonREADME.md「
first
」ウィンドウに、$HOME
ディレクトリの内容への読み取りアクセス権を付与するようにセキュリティ・レベルを設定します。一つまたは複数のウィンドウ・ラベルを持つ「セキュリティ機能 capability」ファイル内の「
windows
フィールド」を使用します。filesystem.json {"identifier": "fs-read-home","description": "Allow access file access to home directory","local": true,"windows": ["first"],"permissions": ["fs:allow-home-read"]}《訳注》「filesystem.json」ファイルの内容抄訳:
- identifier: 識別子名
- description: セキュリティ内容説明(home ディレクトリへのファイル・アクセスを許可)
- local: true
- windows: ウィンドウ名
- permissions: アクセス権設定
「
first
」と「second
」ウィンドウに「Yes/No」ダイアログを作成する機能を追加します。一つまたは複数のウィンドウ・ラベルを持つ「セキュリティ機能」ファイル内の
windows
フィールドを使用します。dialog.json {"identifier": "dialog","description": "Allow to open a dialog","local": true,"windows": ["first", "second"],"permissions": ["dialog:allow-ask"]} -
次に、特定のプラットフォームでのみアクティブになるようにセキュリティ機能をカスタマイズします。 以下の事例では、ファイルシステムのセキュリティ機能を
linux
とwindows
でのみ有効にします。プラットフォーム別に設定するには、セキュリティ機能ファイルの「
platforms
フィールド」で対象プラットフォームを指定します。filesystem.json {"identifier": "fs-read-home","description": "Allow access file access to home directory","local": true,"windows": ["first"],"permissions": ["fs:allow-home-read"],"platforms": ["linux", "windows"]}現在指定可能なプラットフォームは、
linux
、windows
、macos
、android
、およびios
です。
Tauri アプリで複数のウィンドウを作成し、それぞれに別々のセキュリティ機能を与える方法を学びました。さらに、こうしたセキュリティ機能は特定のプラットフォーム向けにカスタマイズすることも可能です。
ウィンドウ機能を使用したサンプル・アプリケーションは、Tauri Github リポジトリ の api
サンプル 内にあります。
「セキュリティ機能ファイル capability file」で使用できるフィールドは、TAURI Doc の「メニュー Menu」内にある「Reference」の Capability 部分にリストされています。
【※ この日本語版は、「Feb 22, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT