ITAP - IoT Access Permission

Fine-grained, Token-Based Access Control for IoT Devices

複数のIoT機器の中から必要な機器・機能だけを安全に共有するためのアクセス制御システム

ITAPとは

ITAP(IoT Access Permission)は、 IoT機器に対して 必要な機能だけを第三者へ安全に許可する ためのトークンベース・アクセス許可システムです。

従来のIoT機器共有では、 アカウント全体やデバイス全体の権限を共有する必要がありました。 ITAPでは、所有者が 「どの機器の、どの状態取得・操作を許可するか」 を選択し、利用者は許可された範囲だけを利用できます。

現在は SwitchBot を中心に実装しており、 Tapo、Tuyaなどへの拡張も想定しています。

ITAPでできること

利用者の種類

ITAP管理者

IoT機器の所有者です。 SwitchBotなどのAPIトークンを使って機器一覧を取得し、 許可する機器・操作・状態取得項目を選択して、 ITAPトークンを発行します。

ITAP利用者

管理者から受け取ったITAPトークンとパスワードを使い、 許可されたIoT機器の状態確認や操作を行います。

外部アプリ開発者

ITAP APIを利用することで、 許可された範囲だけIoT機器へアクセスする Webアプリ・授業用ツール・研究システムを開発できます。

管理者向け:ITAPトークン発行の流れ

  1. SwitchBotのAPIトークンとシークレットを用意します。
  2. ITAP Owner Pageへアクセスします。
  3. SwitchBotの機器一覧を取得します。
  4. 許可する機器・状態取得・操作を選択します。
  5. ITAPトークンを発行します。
  6. ITAPトークンと復号用パスワードを利用者へ渡します。

旧版: ITAP v1 Owner Page

ITAPでは、IoTベンダーAPI用のアクセストークンやシークレットは サーバー側で扱われます。 利用者には、許可された機器・機能のみが見えるよう設計されています。

利用者向け:許可された機器を使う流れ

  1. 管理者からITAPトークンとパスワードを受け取ります。
  2. ITAP User Pageへアクセスします。
  3. ITAPトークンとパスワードを入力します。
  4. 許可された機器一覧を確認します。
  5. 許可された範囲で状態取得や操作を行います。

User Pageでは、 ITAPトークンに含まれる許可情報をもとに、 利用できる機器と操作だけが一覧表示されます。

API利用例

外部アプリや授業用ツールからは、 ITAP APIを通じてIoT機器の状態を取得できます。

POST https://itap.watalab.info/v2/vendor/switchbot/devices/status
Content-Type: application/json

{
  "itapToken": "発行されたITAPトークン",
  "ownerPassword": "復号用パスワード",
  "deviceId": "対象デバイスID"
}

実際に利用できる機器・状態取得項目・操作内容は、 ITAPトークンに含まれる許可設定によって制限されます。

ITAP APIバージョン

ITAP v2

ITAP v1

ITAPアーキテクチャ

ITAPは、 利用者や外部アプリとIoTベンダーAPIの間に入り、 ITAPトークンを復号・検証したうえで、 許可された範囲のリクエストのみを中継します。

免責事項

関連リンク

API仕様書、GitHubリポジトリ、サンプルコードは順次公開予定です。

研究プロジェクト

本システム ITAP は、 watalab(渡部研究室) による研究開発プロジェクトです。

IoT機器の安全な共有、 細粒度アクセス制御、 教育利用、 API連携、 IoT権限委譲などをテーマとして研究を進めています。