---
title: コマンド・スコープ　Command Scopes
sidebar:
  order: 3
i18nReady: true
---

「スコープ」（適用範囲）とは、Tauri コマンドに許可される動作（または許可されない動作）を細かく定義する方法です。

「スコープ」は「許可 `allow` スコープ」と「拒否 `deny` スコープ」に分類され、「拒否スコープ」は常に「許可スコープ」よりも優先されます。

この「スコープの型」は、[`serde`](https://docs.rs/serde/latest/serde/) のシリアル化可能な型（タイプ）のいずれかである必要があります。
これらのタイプは通例、プラグイン固有です。Tauri アプリケーションに実装されたスコープ付きコマンドの場合、スコープの型はアプリケーションで定義してコマンド実装で適用する必要があります。

たとえば、[`Fs`](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/fs) プラグインでは、スコープを使用して特定のディレクトリとファイルを「許可」または「拒否」することができ、[`http`](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/http) プラグインでは、スコープを使用してアクセスが「許可」される URL をフィルタリングすることができます。

「スコープ」はコマンドに渡され、取り扱いや適切な執行についてはコマンド自身が実装します。

:::caution

コマンド開発者は、スコープの回避が不可能であることを確実しておく必要があります。スコープ検証の実装では、その正確性を担保するために監査する必要があります。

:::

## 実施例

以下の事例は、[`Fs`](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/fs) プラグインの「アクセス権」に基づくものです：

すべてのコマンドに対するこのプラグインの「スコープの型」は文字列で、これには [`glob`](https://docs.rs/glob/latest/glob/) 互換のパスが含まれます。

```toml title="plugins/fs/permissions/autogenerated/base-directories/applocaldata.toml"
[[permission]]
identifier = "scope-applocaldata-recursive"
description = '''
This scope recursive access to the complete `$APPLOCALDATA` folder,
including sub directories and files.
'''

[[permission.scope.allow]]
path = "$APPLOCALDATA/**"
```

> > > 《訳注》　上記 description の内容：　このスコープは、サブディレクトリとファイルを含む完全な `$APPLOCALDATA` フォルダへの再帰アクセスです。

```toml title="plugins/fs/permissions/deny-webview-data.toml"
[[permission]]
identifier = "deny-webview-data-linux"
description = '''
This denies read access to the
`$APPLOCALDATA` folder on linux as the webview data and
configuration values are stored here.
Allowing access can lead to sensitive information disclosure and
should be well considered.
'''
platforms = ["linux"]

[[scope.deny]]
path = "$APPLOCALDATA/**"

[[permission]]
identifier = "deny-webview-data-windows"
description = '''
This denies read access to the
`$APPLOCALDATA/EBWebView` folder on windows as the webview data and
configuration values are stored here.
Allowing access can lead to sensitive information disclosure and
should be well considered.
'''
platforms = ["windows"]

[[scope.deny]]
path = "$APPLOCALDATA/EBWebView/**"
```

> > > 《訳注》　上記 description の内容（Linux 用と Windows 用の記述に分かれています。内容はほぼ同一）：　このアクセス権設定により、WebView データと設定値がここに保存されるため、Linux 上〔Windows 上〕の `$APPLOCALDATA`〔$APPLOCALDATA/EBWebView/〕フォルダへの読み取りアクセスが「拒否」されます。アクセスを「許可」すると機密情報の漏洩につながる可能性があるため、十分に検討する必要があります。

上記の二つのスコープを使用すると、機密性の高い WebView データが含まれる Windows 上の `EBWebView` サブフォルダへのアクセスを防止しながら、`APPLOCALDATA` フォルダへのアクセスを許可できます。

これらをひとつのセットに統合することで、重複する構成が削減され、アプリケーション設定を調べる人にとって理解しやすくなります。

まず、「拒否」スコープが `deny-default` にマージされます：

```toml title="plugins/fs/permissions/deny-default.toml"
[[set]]
identifier = "deny-default"
description = '''
This denies access to dangerous Tauri relevant files and
folders by default.
'''
permissions = ["deny-webview-data-linux", "deny-webview-data-windows"]
```

> > > 《訳注》　上記 description の内容：　これにより、危険な Tauri 関連ファイルおよびフォルダへのアクセスがデフォルトで「拒否」されます。

その後、「拒否」スコープと「許可」スコープがマージされます：

```toml
[[set]]
identifier = "scope-applocaldata-reasonable"
description = '''
This scope set allows access to the `APPLOCALDATA` folder and
subfolders except for linux,
while it denies access to dangerous Tauri relevant files and
folders by default on windows.
'''
permissions = ["scope-applocaldata-recursive", "deny-default"]
```

> > > 《訳注》　上記 description の内容：　このスコープ・セットは、Linux 以外では `APPLOCALDATA` フォルダーとサブフォルダーへのアクセスを「許可」しますが、Windows ではデフォルトで危険な Tauri 関連ファイルとフォルダーへのアクセスを「拒否」します。

このような「スコープ」は、プラグインのグローバル・スコープを拡張することですべてのコマンドに使用することも、アクセス権内で有効なコマンドと組み合わせて使用​​する場合は選択したコマンドのみに使用することもできます。

`APPLOCALDATA` 内のファイルへの適切な読み取り専用ファイル・アクセス設定は次のようになります：

```toml
[[set]]
identifier = "read-files-applocaldata"
description = '''
This set allows file read access to the `APPLOCALDATA` folder and
subfolders except for linux,
while it denies access to dangerous Tauri relevant files and
folders by default on windows.'''
permissions = ["scope-applocaldata-reasonable", "allow-read-file"]
```

> > > 《訳注》　上記 description の内容：　このセットは、Linux 以外の `APPLOCALDATA` フォルダとサブフォルダへのファイル読み取りアクセスを「許可」しますが、Windows ではデフォルトで危険な Tauri 関連ファイルとフォルダへのアクセスを「拒否」します。

上記の各事例は、「スコープ」の機能自体を強調するためだけのものです。プラグインまたはアプリケーションの各開発者は、ユース・ケース（利用者の機能要求）に応じて適切なスコープの組み合わせを検討する必要があります。

<div style="text-align: right;">
  【※ この日本語版は、「Feb 28, 2025 英語版」に基づいています】
</div>
