ここでは、接続ライセンスの技術的な仕組みと利用方法について説明します。
接続ライセンスには、接続できるWebサーバの情報が登録されています。Biz/Browserは、登録されたWebサーバへの通信のみを許可します。
接続ライセンスは接続するサーバ単位で必要です。サーバAへの接続ライセンスはサーバBでは利用できません。また、有効期限が明示されている場合は、示された期日以降はその接続ライセンスは無効となります。
Biz/Browserには多くの通信機能が搭載されていますが、そのうちNetObjectクラスのGetメソッドを利用したhttpまたはhttps通信だけが、接続ライセンスの有無により制限されます。
RootクラスのLoginメソッド、HttpSessionクラスのGet、Postメソッド、import命令などは、接続ライセンスの有無に関わらず通信を行います。
接続ライセンスがない場合
接続ライセンスは、Biz/Browserに接続ライセンス証明書をインポートすることで登録されます。
接続ライセンス証明書(XMLファイル)は、Webサーバに配置して各クライアントPCのBiz/Browserに配布します。CRSプログラム上からimportConnectionLicense関数で接続ライセンス証明書をダウンロードします。記載内容に問題がなければ接続ライセンスが登録されます。
登録された接続ライセンス証明書は、Biz/BrowserがインストールされているクライアントPCに保存され、次回以降のBiz/Browserの起動時には自動的に読み込まれます。
Biz/Browser V以降では、接続ライセンス証明書にセキュリティレベルが記載されます。そのWebサーバへの接続時は証明書のセキュリティレベルが適用されます。接続ライセンス証明書を利用することで、各クライアントPCのセキュリティレベルをサーバ側で一括管理できます。
登録された接続ライセンスは、Biz/Browserのメニュー「表示」→「接続ライセンスの確認」から確認できます。
また、CRSプログラム上ではhasConnectionLicense関数で確認できます。
Biz/Browserを利用したシステムは、Loginメソッドの呼び出しから始まります。(ログイン画面のURL選択でもLoginメソッドが呼ばれます)
//.Login("http://server/start.crs");
Loginメソッドによる通信は接続ライセンスによる制限がありません。つまり、このメソッドに指定するCRSファイルは制限を受けずに実行できます。通常、このCRSファイル内で接続ライセンスを登録するプログラムを記述します。
start.crs
/* 接続ライセンスの確認とインポート */ if (!hasConnectionLicense("http://server")) { try { importConnectionLicense("http://server/license.xml"); } catch (exp) { MessageBox(exp); Login(); } } Get("appmain.crs");
システムのメインとなるCRSファイルは、接続ライセンスの確認、登録のあとでNetObjectクラスのGetメソッドで呼び出します。
接続ライセンスには、Webサーバ情報として「プロトコル(http、httpsなど)」、「ホスト名」、「ポート番号」が登録されています。(例:http://example.com:8080)
Biz/Browserは、これらの情報と完全に一致する場合のみ、通信を許可します。
例えば、「ホスト名」はドメインの有無、IPアドレスの直接表記、ホスト名の別名など、同一の接続先を示すさまざまな表記方法がありますが、接続ライセンスに登録されたホスト名と一致する表記だけが有効になります。
接続ライセンスはWebサーバ単位で登録されるため、それ以降のURLにより制限されることはありません。例えば、/app1/sample1.crsと/app2/sample2.crsのようなURLで、app1とapp2が別システムの場合でも、個別に制限を受けることはありません。
接続ライセンスによる接続先のチェックは、GetメソッドによりアクセスするURLに対して行われます。実際に配置されたCRSファイルの場所が異なる場合(別のサーバによる中継、ロードバランサなど)でも、最初にアクセスするURLが対象になります。
Biz/Browser HT 1.2.2より、ローカルアドレス上に配置したCRSを実行する場合も、ライセンスによる認証が必要になりました。
ローカルアドレスはfileプロトコルで記述されます。(例:file:///sdcard/esample)
接続ライセンス証明書(XMLファイル)のクライアントPCへの保存先は、証明書に記載された利用目的(public、private)、OS、Biz/Browserのバージョンによって異なります。
利用目的がpublicの場合
Android版
内蔵ストレージ内に格納されます。ライセンスの保存先にアクセスすることは出来ません。
利用目的がprivateの場合
Android版
内蔵ストレージ内の利用目的がpublicのライセンスと異なる場所に格納されます。ライセンスの保存先にアクセスすることは出来ません。