ソフトウェア
上級

WebUSB API(ウェブユーエスビーエーピーアイ)

W3C WebUSB API。Web ブラウザから USB デバイスに直接アクセス可能な JavaScript API、ファームウェアアップデート / 専門機器設定 / IoT デバイス制御 Web アプリで活用、Chrome / Edge 標準対応。

0 回閲覧
0 いいね
2026/5/9 更新
関連タグ
Software
WebUSB
W3C
Web API
Project Fugu
USB

概要

WebUSB API(ウェブ ユーエスビー エーピーアイ)は、W3C Web USB Community Group が 2017 年から策定 + 2017 年 9 月に Chrome 61 で初実装公開、その後 Edge / Opera 等の Chromium 系ブラウザで標準対応された、Web ブラウザから USB デバイス(USB 1.x / 2.0 / 3.x / Type-C)に直接アクセス可能な JavaScript API です。仕様策定は Google が主導し、Reilly Grant(Google Chrome チーム)が編集者を務めています。

技術背景として、従来の Web ブラウザはセキュリティ + サンドボックス機能のため、ハードウェアへの直接アクセスが厳しく制限されていました。USB デバイスを Web 経由で操作するには、(1)ネイティブアプリのインストール + ローカル HTTP サーバ + ブラウザからのリクエスト経由・(2)ChromeOS Native Client(NaCl、廃止済み)・(3)ハードウェアベンダーの専用ドライバ + ブラウザ拡張機能、などの煩雑なアプローチが必要でした。

WebUSB はこれを根本的に解決します。navigator.usb.requestDevice({filters: [{vendorId: 0x1234}]}) のような JavaScript 呼出で、ユーザーの許可を得て USB デバイスにアクセス可能で、その後 interface.transferIn() / interface.transferOut() で USB バルク転送 / 制御転送 / 割込転送を実行できます。これによりハードウェアベンダーは Web ブラウザ経由で自社製品の管理 / 設定 / ファームウェア更新を実装でき、ユーザーは追加ソフトウェアインストールなしでハードウェア制御が可能になります。

セキュリティ + プライバシー面では、(1)HTTPS 必須(セキュアコンテキストでのみ動作)・(2)ユーザー明示許可(デバイス選択ダイアログでユーザーが明示的に選択)・(3)Origin Allowlist(ベンダーが Web USB Allowed Origins ヘッダで信頼 Origin を制限可能)・(4)Same-origin policy(別ドメインから同じデバイスへの不正アクセスを防止)・(5)カスタム HID / 標準クラスアクセス制限(キーボード / マウス等の標準クラスは制限)などの安全機構が組み込まれています。

主な用途は、(1)ファームウェアアップデート(Arduino IDE Web / DFU-util / Pro Trinket 等のフラッシュ書込 Web、micro:bit Web Editor)・(2)専門機器設定(オシロスコープ / アナライザ / カメラ / 計測機器の Web 設定)・(3)IoT デバイス制御 + キャリブレーション(IoT センサ + アクチュエータ)・(4)USB Audio + USB MIDI Web 制御(ニーズが少ないが可能)・(5)USB-C 専用機器の Web 制御(USB Power Delivery、USB Display 拡張など)・(6)EOTBR(Electron OTA via Browser、エレクトロン OTA 経由ブラウザ)・(7)決済端末 + IC カードリーダ / プリンタ等の業務機器、などです。

実装状況は、Chrome 61+(2017 年 9 月)/ Edge 79+(Chromium ベース)/ Opera 48+ で標準対応していますが、Firefox / Safari は実装されていません。Firefox は WebUSB の実装意向を保留(セキュリティ懸念)、Safari は Apple の方針で実装見送り(プライバシー優先)というスタンスを取っています。

主要採用サービスは、Arduino IDE Web Editor(2018 年から WebUSB 対応)・micro:bit Web Editor(BBC 教育用マイコン)・Adafruit Web Tools(Pro Trinket / Circuit Playground 等のファームウェア書込)・Espruino Web IDE(Espruino IoT デバイス)・Web Bluetooth + WebUSB の各種 IoT サービス・LightBurn(レーザー彫刻 Web インターフェース)などです。Project Fugu(Google の Web Platform 拡張プロジェクト)の中核 API として、Web ブラウザがハードウェア統合プラットフォームへ進化する流れを支える重要技術です。

主な特徴・仕組み

  • 策定: W3C Web USB Community Group、Google Reilly Grant 編集。
  • 公開: 2017 年 9 月 Chrome 61 で初実装、2020 年広範対応。
  • API: navigator.usb.requestDevice() + device.transferIn() / transferOut()。
  • 対応 USB: USB 1.x / 2.0 / 3.x / Type-C(USB Power Delivery 別 API)。
  • セキュリティ: HTTPS 必須 + ユーザー明示許可 + Origin Allowlist + 標準クラスアクセス制限。
  • 実装ブラウザ: Chrome 61+ / Edge 79+ / Opera 48+(Firefox / Safari 非対応)。
  • 主な用途: ファームウェア書込 / 専門機器設定 / IoT 制御 / 業務機器。
  • 主要採用: Arduino Web Editor、micro:bit Web Editor、Adafruit Web Tools。
  • 関連 API: WebSerial(シリアル)、WebHID(HID)、WebBluetooth(BT)、WebNFC、WebMIDI。
  • Project Fugu: Google の Web Platform 拡張プロジェクトの中核 API。
  • 制約: Apple Safari + Mozilla Firefox 非対応のため、対応サイトは Chromium 系限定。

Web ハードウェア API ファミリー比較

API対象公開年実装ブラウザ
WebUSBUSB デバイス2017Chrome / Edge
WebSerialシリアルポート2020Chrome 89+
WebHIDHID デバイス2020Chrome 89+
WebBluetoothBluetooth2016Chrome 56+
WebNFCNFC タグ2020Chrome Android
WebMIDIMIDI 楽器2015Chrome 43+
Web Audioオーディオ2014全ブラウザ

自作PCユーザー向けの注意点

WebUSB は自作 PC ユーザー + DIY エレクトロニクス愛好家にとって極めて魅力的な技術です。Arduino / Raspberry Pi Pico / micro:bit 等のマイコンボードのファームウェア書込が、追加ソフトウェアインストール不要で Chrome / Edge ブラウザから直接実行可能になります。Arduino Web Editor(create.arduino.cc)・Web DFU(USB DFU プロトコル経由のファームウェア書込ライブラリ)などのサービスで実体験できます。

注意点として、WebUSB は Chromium 系(Chrome / Edge / Opera)でしか動作しません。Firefox / Safari ユーザーは利用できないため、対応サイトを設計する場合は Chromium 系限定と明記する必要があります。また、HTTPS 必須のため、自宅でテスト開発する場合も HTTPS サーバ + 証明書 + Origin 設定が必要です。Chrome 拡張機能の「Web USB Permissions」で開発時のデバッグが容易になります。

関連用語との違い

  • WebSerial: シリアルポート(COM)アクセス、WebUSB は USB 全般。
  • WebHID: HID デバイス(キーボード / ゲームパッド)、WebUSB はより低レベル USB。
  • WebBluetooth: Bluetooth デバイスアクセス、WebUSB は USB 専用。
  • WebNFC: NFC タグ読書(Android のみ)、WebUSB は USB 接続。
  • Project Fugu: Google の Web Platform 拡張、WebUSB はその中核 API。

よくある質問(FAQ)

Q1: WebUSB は安全ですか? A: 設計上は安全に作られています。HTTPS 必須 + ユーザー明示許可 + Origin Allowlist + 標準クラスアクセス制限により、悪意のある Web サイトがユーザーの USB デバイスを乗っ取ることが困難な仕組みです。ただし、Firefox / Safari がプライバシー懸念で非対応であることから、完全に安全とは言えない側面もあります。

Q2: Firefox / Safari は WebUSB を実装しますか? A: 短期的には実装される見込みは低いです。Mozilla はセキュリティ + プライバシー懸念から WebUSB の実装意向を保留しており、Apple は Safari でハードウェア API 全般に消極的なスタンスです。WebUSB を活用するサイトは Chromium 系(Chrome / Edge)限定の対応が現実的です。

Q3: WebSerial / WebHID と何が違いますか? A: WebSerial はシリアルポート(COM)、WebHID は HID デバイス(キーボード / ゲームパッド / 専用ボタン)、WebUSB は USB 全般のより低レベルアクセスです。USB ベンダ独自プロトコルや汎用 USB バルク / 制御転送が必要な場合は WebUSB が必須です。

まとめ

  • W3C 2017-2020 策定の Web 上 USB アクセス API
  • Chrome 61+ / Edge 79+ / Opera 48+ 対応(Firefox / Safari 非対応)
  • ファームウェア書込 / 専門機器設定 / IoT 制御で活用
  • Project Fugu の中核 API、Web ハードウェア統合の基盤
この記事について
カテゴリーソフトウェア
難易度上級
作成日2026/5/9