SORACOM BeamのWebサイト エントリポイントでWebコンテンツをセキュアに配信する
ども、大瀧です。
12/25にソラコムサンタという企画の一環でSORACOM BeamのWebサイト エントリポイントがリリースされました。
BeamのWebサイトエントリポイントとは
SORACOM Beamは、SORACOM Air専用のプロキシサービスです。Webサイトエントリポイントは、従来からSORACOM BeamにあるHTTPエントリポイントの強化版のような感じです。簡単な比較表を示します。
設定名 | HTTPエントリポイント | Webサイトエントリポイント |
---|---|---|
対象パス/クエリストリングの指定 | ○ | × |
複数パスの指定 | パス1つずつを個別に設定 | 全パスが対象 |
エントリポイントの80番ポートの使用 | × | ○ |
エントリポイントのHTTPSでのListen | × | × |
カスタムヘッダの追加・変更 | ○ | ○ |
Webサイトエントリポイントでは、ルートパス以下の全てのパス情報がそのまま転送先へのリクエストに反映されます。そのため、サブディレクトリで切っているケースやクエリストリングにAPIキーを含ませるようなケースは、Webサイトエントリポイントでは対応できません。APIキーといった認証情報は、カスタムヘッダに設定し転送先Webサーバーで適切に対応するよう検討するのをお奨めします。
ユースケース
Webサイトエントリポイントという名前の通り、Webコンテンツの配信目的で利用するのが良さそうです。デバイスからは beam.soracom.io
(Beamエントリポイントのホスト名)にアクセスするようにしておいて、Beamの転送先にコンテンツ配信を行うWebサーバーを指定します。Beamの公式ページの「接続先の切り替え」の要領でBeam側で転送先の設定を持つことで、Air SIMのグループ毎に本番/開発サーバーを切り替えるといった運用ができます。前述の通り、Webサイトエントリポイントではパスは扱えないので、本番/開発を同一Webサーバーで扱うためには、最低限サブドメインを用意してバーチャルホストを構成する必要があります。
また、Webコンテンツにアクセス制限を設定しセキュアに配信するのも良いでしょう。Beamのカスタムヘッダ機能を活用し、Webサーバー側でヘッダの有無および内容を評価することでBeam経由以外のアクセスを拒否することができます。
HTTPエントリポイントでの設定を紹介した、以下の記事と同様の実装で対応できます。
やってみた
今回は大瀧の個人ブログを転送先にしてWebサイトエントリポイントを構成してみます。 SORACOMユーザーコンソールのグループ設定画面から[+] - [Webサイトエントリポイント]を選択します。
エントリポイント、転送先それぞれの情報を入力します。プロトコルは、エントリポイントはHTTPで固定、転送先はHTTPとHTTPSから選択できます。TLS処理をオフロードさせる用途で使うこともできますね。
[保存]をクリックすれば設定完了です。
SORACOM Air SIMを装着するマシンないしテザリングで接続するPC/MacのWebブラウザからbeam.soracom.io
にアクセスしてみると。。。
転送先(takipone.com
)のWebページが表示されました!念のため開発ツールでそれぞれのアクセス状況を確認してみましょう。
Beamへのアクセス
元のサイトへの直接アクセス
HTTPでBeamにアクセスしつつ、元のサイトと同じコンテンツを取得できていることがわかりますね。 一般的なWebページと同様に、画像やAjaxのリンク設定によってはCORSの設定やリダイレクトを考慮する必要もあると思います。入念な動作確認の元、利用するのが良いでしょう。
まとめ
SORACOM Beamの新機能、Webサイトエントリポイントをご紹介しました。どんどん機能強化されていくSORACOMから引き続き目が離せませんね!