セルフホスティング

OS7以降

インターネットが利用できない環境でobnizの端末をソフトウェアから利用する方法が「セルフホスティング」です。

以下のようなシーンで活用いただくことができます。

  • 閉域網や現場のネットワークを使う必要がある。
  • クラウドサービスを利用できないため、obnizCloudに依存せず自分のサーバーのみで運用したい。

注意点

セルフホスティングではobniz社のクラウド契約から外れることとなり、接続や端末の管理はご自身で行っていただくことになります。

そのため以下のような項目がサービス対象から外れ弊社ではサポートできなくなる点をご注意ください。

  • 端末の接続管理と障害対応
  • 端末への攻撃対策
  • 端末への意図しないソフトウェアの書き込み
  • 端末のOS更新

構成

通常obnizOSはobnizCloudとTLS接続を行い常時双方向通信が確立され、obnizCloudへの指示をSDKから行うことで制御することが可能となります。

セルフホスティングでは端末の接続先サーバーをobnizCloudから変更します。自分で用意したサーバーを指定することでobnizCloudを利用しないSDKとの接続を可能とします。

サーバーの構築

obniz.jsAppSDKを利用した開発では、プログラムからobnizCloudのAPIへアクセスしますが、セルフホスティングでは外部にアクセスせず、代わりにデバイスからの接続を待ち受けることになります。

obniz-dock

がデバイスの接続を待ち受け、obniz.jsを利用したデバイス制御プログラムとデバイスとの接続を確立させます。

詳しくは上記GitHubページを参照ください。

obniz-dockを利用したサーバーを現地環境のサーバーやクラウドサービス上に立ち上げ継続動作を行うことで、デバイスの制御を行います。

接続とデバイス設定方法

OS7以降の端末に対して設定用JSONを用いた接続先の変更が可能です。シリアルコンソールやブラウザから設定することができます。

上記obniz-dockが起動しているサーバーを接続先として指定します。

接続はWebsocketが利用されます。セルフホスティングではTLSは利用できず平文接続となる点を注意してください。

IPアドレスでの指定

サーバーがIPアドレスでの接続を待ち受ける場合には以下のような指定を行います。
ポートを指定しない場合は80ポートとなります。

{
    "ws_server": "ws://192.168.0.2"
}
{
    "ws_server": "ws://192.168.0.2:8080"
}

ドメインでの指定

ドメインを利用した指定は以下のような形式となります。ポートを指定しない場合は80ポートとなります。

{
    "ws_server": "ws://mydomain.com"
}

セキュリティ

セルルホスティングでは通常のクラウド接続と異なり以下のセキュリティに関する注意点があります。

項目 obnizCloud セルフホスティング
端末ソフトの脆弱性 OSがリリースされ更新が可能です OSの更新は行えません。一度クラウドに接続し更新する必要があります。
通信暗号化 TLS1.2での暗号化 平文での通信
サーバー認証 obniz社運用の証明書による認証 行われません
デバイス認証 obniz社運用の証明書による認証 行われません

セキュリティレベルを上げるためには以下の様な対策が推奨されます。

  • ネットワークに参加できる機器のmacaddressが限定など、接続機器の限定
  • 閉域網など限られたネットワークの利用

カスタマイズ

obniz社では以下のご要望を持つ企業様に対して機器やOSのカスタマイズを行っておりますので、必要に応じてご連絡ください。

  • TLSや証明書を利用したセルフホスティングサーバーへの接続
  • デバイス認証の追加

Articles