다양한 창과 플랫폼에서의 보안 수준
이 장은 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"]}Note“filesystem.json” 파일 내용 초역:
- identifier: 식별자 이름
- description: 보안 내용 설명(home 디렉토리에 대한 파일 접근 허용)
- local: true
- windows: 창 이름
- permissions: 접근 권한 설정
“
first
”와 “second
” 창에 “예/아니오” 대화 상자를 만드는 기능을 추가합니다.하나 또는 여러 개의 창 레이블을 가진 “보안 기능” 파일 내의
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 부분에 나열되어 있습니다.
© 2025 Tauri Contributors. CC-BY / MIT