Fine-grained, Token-Based Access Control for IoT Devices
複数のIoT機器の中から必要な機器・機能だけを安全に共有するためのアクセス制御システム
ITAP(IoT Access Permission)は、 IoT機器に対して 必要な機能だけを第三者へ安全に許可する ためのトークンベース・アクセス許可システムです。
従来のIoT機器共有では、 アカウント全体やデバイス全体の権限を共有する必要がありました。 ITAPでは、所有者が 「どの機器の、どの状態取得・操作を許可するか」 を選択し、利用者は許可された範囲だけを利用できます。
現在は SwitchBot を中心に実装しており、 Tapo、Tuyaなどへの拡張も想定しています。
IoT機器の所有者です。 SwitchBotなどのAPIトークンを使って機器一覧を取得し、 許可する機器・操作・状態取得項目を選択して、 ITAPトークンを発行します。
管理者から受け取ったITAPトークンとパスワードを使い、 許可されたIoT機器の状態確認や操作を行います。
ITAP APIを利用することで、 許可された範囲だけIoT機器へアクセスする Webアプリ・授業用ツール・研究システムを開発できます。
User Pageでは、 ITAPトークンに含まれる許可情報をもとに、 利用できる機器と操作だけが一覧表示されます。
外部アプリや授業用ツールからは、 ITAP APIを通じてIoT機器の状態を取得できます。
POST https://itap.watalab.info/v2/vendor/switchbot/devices/status
Content-Type: application/json
{
"itapToken": "発行されたITAPトークン",
"ownerPassword": "復号用パスワード",
"deviceId": "対象デバイスID"
}
実際に利用できる機器・状態取得項目・操作内容は、 ITAPトークンに含まれる許可設定によって制限されます。
ITAPは、 利用者や外部アプリとIoTベンダーAPIの間に入り、 ITAPトークンを復号・検証したうえで、 許可された範囲のリクエストのみを中継します。
API仕様書、GitHubリポジトリ、サンプルコードは順次公開予定です。
本システム ITAP は、 watalab(渡部研究室) による研究開発プロジェクトです。
IoT機器の安全な共有、 細粒度アクセス制御、 教育利用、 API連携、 IoT権限委譲などをテーマとして研究を進めています。