Domino のアプリケーションを Notes クライアント無しで Web ブラウザから利用できる「HCL Nomad Web」は、事例も公開されましたし本格的に導入を検討される企業も多いのではないでしょうか。
事例にもある現行バージョンの 1.0.4 では、Web ブラウザと Domino サーバーの間に Nomad Web Proxy と呼ばれる SafeLinx サーバーを設置しなければなりません。SafeLinx がポート番号 443 から 1352 へとその逆の変換を行います(この SafeLinx 環境の構築がなかなか難しい...)。
Notes クライアントに相当する「HCL Nomad Web」は、PWA (Progressive Web App)という技術が用いられており、以前のバージョンから存在する「Notes ブラウザ・プラグイン」とは全く異なるものです。HCL Nomad Web は、いったんブラウザで Domino へログインできればアプリとしてインストールすることも可能です。
現在 Nomad Server 1.0.5 ベータ版が公式サイトからダウンロードできます。
Nomad Server は、SafeLinx を代替するタスク「nomad」をDomino 上で稼働させることで、これまで必要だった SafeLinx サーバーを不要にします。※不要でよいかどうかは環境によるかもしれません
さて今回はこの新しい Nomad Server 1.0.5 ベータ版を使った Nomad Web の試用環境を Domino 12.0 の新機能を活用しながらなるべく手数を少なく実現することができるか?というテーマでチャレンジしてみます。今はお盆休みですので「夏休みの自由研究」といったところですね。ちなみに今回使用する Domino は 12.0.2 のベータ版ですが、既に日本語言語パックのベータ版もあるんです。
サーバー環境ですが、Windows 10 の Hyper-V 上に作成した、CPU x 2、メモリ 8GBの仮想環境に試用版の Windows Server 2022 を導入しています。
そのローカルドライブ「c:\work」へあらかじめダウンロード等しておいた次のファイルをコピーしました。
- 7-Zip のインストーラ(tar 形式で提供される言語パックの解凍用として)
- Google Chrome のインストーラ(Nomad Web がサポートするブラウザ)
- HCL Domino 12.0.2 Windows English ベータ版(Early Access Program 3)
- HCL Domino 12.0.2 日本語 言語パック ベータ版(Early Access Program 3)
- HCL Nomad Server 1.0.5 Windows 12.0.2用 ベータ版(後述)
- ワンタッチセットアップで使用する json ファイル(後述)
※12.0.2 のベータ版には、Designer と Admin クライアントを含む Notes クライアントの64ビット版(!)もあります。ここでは Notes クライアントを使用しませんが、もし Notes クライアントをインストールする場合、事前に DigiCert の証明書(上図では DigiCertで始まる2つの .crt ファイル)をインストールしておく必要があります 【参考 KB0099624 DigiCert Trusted Root G4 Cert のインストール】
また Web ブラウザに Domino のホスト名を指定するとローカルの Domino へアクセスするように hosts ファイルへ次の1行を追加しています。
127.0.0.1 himawari.noteslab.local himawari
コピーしたファイルをリストの順にインストールします。ここでは1~4のインストール手順を割愛します。Domino はワンタッチセットアップを行うため、ここではまだセットアップを起動しません。
Nomad Server 1.0.5 は、zip 形式のファイルで提供されています。zip ファイル内にある1つのフォルダと2つのファイルを、Domino プログラムディレクトリ( Windows のデフォルトでは "C:\Program Files\HCL\Domino")へコピーします(下図)。Nomad Server のインストールはこれだけです。
続いて Domino をセットアップします。セットアップは Domino 12.0 の新機能である「ワンタッチセットアップ」を利用しました。ワンタッチセットアップでは、GUI のセットアップウィザードで設定できる項目の他にも様々な設定をセットアップと同時に実施することができます。設定する内容はファイルに記載します。ファイルは json 形式と環境変数の2通り利用できますが、今回は json 形式のファイル setup.json として作成しました。
json ファイルの内容は次のとおりです。
{ "serverSetup": { "server": { "type": "first", "name": "himawari", "domainName": "noteslab", "title": "testing nomad server" }, "network": { "hostName": "himawari.noteslab.local" }, "org": { "orgName": "noteslab", "certifierPassword": "password" }, "admin": { "lastName": "Administrator", "password": "password", "IDFilePath": "noteslab.admin.id" }, "notesINI": { "ServerTasks": "Update,Replica,Router,AMgr,Adminp,HTTP,nomad", "LOG_REPLICATION": "1", "LOG_SESSIONS": "1", "CREATE_R12_DATABASES": "1", "DisableLDAPOnAdmin": "1", "NOMAD_WEB_HOST": "himawari.noteslab.local" }, "security": { "ACL": { "prohibitAnonymousAccess": true, "addLocalDomainAdmins": true }, "TLSSetup": { "method": "dominoMicroCA", "CAKeyType": "ECDSA", "CAExpirationDays": 365, "TLSKeyType": "RSA2048", "certExpirationDays": 90 } }, "registerUsers": { "defaults" : { "saveIDToPersonDocument": true, "password": "password", "mailTemplatePath": "mail12.ntf", "enableFullTextIndex": true, "certificateExpirationMonths": 36 }, "users": [ { "firstName": "Hideki", "middleName": "", "lastName": "Masui", "shortName": "HMasui", "mailFilePath": "mail/HMasui.nsf", "IDFilePath": "HMasui.id", "internetAddress": "hideki.masui@noteslab.local" } ] } }, "IDVault": { "name": "O=noteslabVault", "description": "noteslab Vault", "IDFile": "noteslabVault.id", "IDPassword": "noteslabPassword", "passwordReset": { "helpText": "sample help text" }, "securitySettingsPolicy": { "name": "noteslab Vault Security Settings Policy", "description": "noteslab Vault Security Settings" }, "masterPolicy": { "description": "noteslab Vault Master Policy Description" } }, "appConfiguration": { "databases": [ { "filePath": "names.nsf", "action": "update", "documents": [ { "action": "update", "findDocument": { "Type": "Server", "ServerName": "CN=himawari/O=noteslab" }, "computeWithForm": true, "items": { "HTTP_SSLKeyFile": "himawari.noteslab.local", "HTTP_SSLMode": "1" } } ] } ] } }
json のパラメータ等はこちらのオンラインヘルプを見ていただくこととして、構築する環境について簡単に説明します。
Domino は既存の Domino と切り離すため「最初のサーバー」とします。サーバー名は夏っぽく「himawari」とし、ドメイン名と組織名は「noteslab」としました。
Domino 起動時に自動起動したいので notes.ini の「ServerTasks」に、Web ブラウザからアクセスさせるため HTTP タスクと、Nomad Server タスク「nomad」を追加しています。
Web ブラウザが Nomad Server へアクセスする際の FQDN を「NOMAD_WEB_HOST」というパラメータで notes.ini へ追加しています。
Nomad Server へのアクセス(というか PWA の要件?)に https でのアクセスが必要になるため、Domino 側に証明書を用意する必要があります。そこで Domino 12.0 の新機能である証明書ストアを利用し、さらに 12.0.1 の新機能である MicroCA を利用することで自己署名証明書を作成しています。json では "serverSetup/security/TLSSetup/" の部分です。
さらに、Domino サーバーが証明書ストアに用意した証明書を使用できるようにするためサーバー文書を更新しています。json では "appConfiguration/databases/documents/" の部分です。"items" で2つのフィールドを置換します。ひとつは「TLS キーファイル名(HTTP_SSLKeyFile)」です。デフォルトではキーリングファイル名 "keyfile.kyr" が設定される部分ですが、これを証明書ストアにある TLS証明書文書のホスト名を指定します。もうひとつは「TLS ポートステータス(HTTP_SSLMode)」です。このデフォルト値は"無効"ですがこれを"有効"にします。json ファイルには自己署名証明書を持つTLS証明書を作成するような記述がありませんが、「serverSetup/network/hostName」で指定したホスト名と同じ名前で自動でTLS証明書文書が作成されました。
Nomad Web でログインするユーザーのアカウントの ID ファイルが ID ボールトに登録されていることが必要です。そこで json では、ユーザー1名の追加とIDボールトを作成する記述を追加しています。ID ボールトを作成する場合、ユーザーの ID ファイルは自動で ID ボールトへ登録されます。
この json ファイルを使用して Domino のワンタッチセットアップを行います。
セットアップの起動は、コマンドプロンプトから次のコマンドを投入しました。オプション -autoconf に json ファイルを指定します。
cd \program files\hcl\domino
nserver.exe -autoconf c:\work\setup.json
上のコマンドを投入してから Domino が起動するまでの動画を撮ってみました。初めから 0:24 あたりまで Domino のセットアップ処理が実行されます。
0:28 に Domino が起動して 0:50 あたりでコンソールのスクロールがいったん落ち着きます。
その後起動しているタスクを確認したあと(特に理由はありませんが)Domino を再起動します。再起動が完了したあたりで動画が終わります。
これで Domino は完了です。Dominoのセットアップに加えて、IDボールトの作成+ユーザー登録+notes.ini の編集+自己署名証明書作成+サーバー文書の編集がまさにワンタッチで完了しました。
いよいよ Nomad サーバーへ Google Chrome を使ってアクセスします。
この環境は、Domino が自己署名証明書(通称:オレオレ証明書)を使用するため(?)3つの問題があります。
1つめは、Google Chrome を使って最初にアクセスしたとき「この接続ではプライバシーが保護されません」が表示されることです。
このメッセージは、アドレスバーへ Nomad サーバーのURLを投入すると表示されます。アクセスするには、[詳細情報]から「himawari.noteslab.local にアクセスする(安全ではありません)」をクリックします。
2つめは、Google Chrome では Nomad の画面でユーザー名を指定した後「サービスワーカーの登録に失敗しました。[更新]をクリックして再試行してください。」と表示されることです。更新をクリックするとこの画面が繰り返し表示されます。
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\Users\Administrator" --unsafely-treat-insecure-origin-as-secure="https://himawari.noteslab.local:9443/nomad/" --ignore-certificate-errors
上記の2点の問題をクリアして Nomad Web の画面を表示することができました。
このエントリを参考にされる皆さんは、自己署名証明書ではなく外部CAが発行した証明書を使ってください。私は3つの問題にずいぶん時間を使ってしまいましたので...
なお、動画ではユーザーが2名追加されていますが、上に示した json では1名削除しました。ユーザーの切り替えなどテストする場合は2名以上登録したいですね。
2022/8/23 追記
Domino 12.0.2 EAP4 と Nomad Server 1.0.5 ベータの次のバージョン(450?)が公開され、以前より話題になっていた「Restyle」が実装されたとのことでしたので早速検証環境を構築してみました。
こちらは証明書ストアとCertMgr 以外を One-Touch セットアップで実施し、TLS証明書は Let's Encrypt と CloudFlare という外部DNSプロバイダを使って取得しました。Let's Encrypt には証明書を発行する環境が2つあり、本番で使用可能な証明書を発行可能な Production と、そうではない Staging です。私の検証環境では、Staging で発行した証明書を使用すると、Nomad Web でアカウント名を入力した後、パスワード入力画面が表示されず先へ進めませんでしたが、Production で発行しなおした証明書では何の問題もありませんでした。
Restyle ですが、Nomad Web を Google Chrome の言語設定を日本語で使用するとファイルメニューに Restyle のアイテムが表示されません。現在のところ言語設定を英語にしなければならないようです。
手持ちの Notes アプリケーションを幾つか Restyle してみたところ、3つは Complete でしたが1つはエラーとなりました。エラーの詳細がどこにあるのか不明ですし、メニューから再度 Restyle しようにもこのアプリではメニューアイテムに Restyle が表示されなくなりました。試される場合は、データベースのバックアップあるいは設計のコピーを取るなどしてやり直しがきくように対策しましょう。
もともと背景色を濃い青、ボタンの文字色を白に設定していた割とイマドキのデザインのページを Restyle にかけたところ、文字色が白のまま背景色も明るい色になってしまい、なんのボタンか分かりづらくなってしまう場合がありました。こういった細かいところは今後に期待したいです。
0 件のコメント:
コメントを投稿