🍣

UniFi-API-Browserインストールと注意点

に公開

UniFi-API-Browserとは

UbiquitiのAPIに触れてみたいけど、効率的に確認できるものはないかなと思ったところ、
見つけたのがUniFi API Browserです。
要はUbiquitiのネットワーク状態のAPIを簡単に見れるツールです。

作成者はArt of WiFi
ライセンスはMIT Licenseです。
https://github.com/Art-of-WiFi/UniFi-API-browser

UbiquitiのUDMやUCGなどのゲートウェイがあればAPIの一覧をブラウザで取得できます。
今回、初期設定で多少躓いたため、記事に残しておきます。

UniFi側の設定

最近のアップデートにより、UniFi NetworkにログインするときにはMFA(2FA)が必要になりました。
UniFi-API-BrowserはAPI Keyではなく、ユーザー/パスワードで認証を行っていますのでUniFi Networkのユーザー(クラウドアクセスのユーザー)ではUniFi-API-Browserにはログインできません。
したがって、UDMのLAN側にUniFi-API-Browserがいる構成にして、かつMFAが必要のないローカルユーザーアカウントを作成しておくことが前提になります。

躓いたポイントここで、MFAを回避するのにローカルユーザーを作成しないとアクセスできないことに気づくのに時間を要しました。

UDMへのローカルユーザー作成方法

UniFi Networkバージョン10.0のGUIをベースにした解説。

UniFi Networkにアクセスして、Admin & Usersに入ります。
Create Newにてユーザーの新規作成を行います。
ポイントはAdminにチェック、Restrict to Local Access Onlyにチェックです。

作成したユーザーでUDMのLAN側からログインできることを確認してください。

UDMへのFW設定追加(必要な場合)

設定→ポリシーエンジン→新しいポリシー作成

送信元をUniFI-API-Browserのいるネットワークを指定、送信先をゲートウェイでゲートウェイのLAN IPのみ指定で許可がよいと思います。

UniFi-API-Browserインストール

Ubuntu 24.04にインストールしていきます。
といってもここはGithubの通りですが、細かく説明しましょう。

まずは必要パッケージを入れます。

sudo apt update
sudo apt install -y apache2 php php-curl php-json php-cli php-xml git unzip

ディレクトリ移動してGit Cloneします。

cd /var/www/html
sudo git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git

パーミッション変更をしておきます。あとApache再起動

sudo chown -R www-data:www-data UniFi-API-browser
sudo chmod -R 755 UniFi-API-browser
sudo systemctl restart apache2

ここまででインストールはできているはず。ブラウザでアクセスできると思います。
http://<サーバーのIP>/UniFi-API-browser/
ただし設定しないのでエラー表示になりますがこれでOK

UniFi-API-Browser設定

phpを環境に合わせて編集します。
ディレクトリを移動してテンプレートをコピー。

cd /var/www/html/UniFi-API-browser/config
sudo cp config-template.php config.php

パーミッション変更をしておきます。

sudo chown www-data:www-data config.php
sudo chmod 644 config.php

設定ファイルを編集

sudo vi config.php

設定時の注意点

ここで記述するユーザー、パスワードは作成したローカルユーザーである必要があります。
URLはゲートウェイのLAN側アドレスです。

$controllers = [
    [
        'user'     => 'ユーザー',                    // Username for access to the UniFi Controller
        'password' => 'パスワード',                    // Password for access to the UniFi Controller
        'url'      => 'https://IP Address:443', // Full URL to the UniFi Controller, e.g., 'https://22.22.11.11:8443'
        'name'     => 'UDM Pro',           // Name for this controller which will be used in the dropdown menu
    ],
];

UniFi API Browserにアクセス

改めてサーバーにアクセスするとAPIが簡単にGetできる環境が作成されています。
http://<サーバーのIP>/UniFi-API-browser/

Discussion