Domino Administrators - What You Need to Know About the Domino Rest API Part Two の翻訳版です。
Domino 管理者 - Domino REST API について知っておくべきこと (後編)
2023年12月15日
著者: Heather J Hottenstein / Technical Advisor
「Domino 管理者が Domino REST API について知っておくべきこと」の前回の記事では、Domino管理者が Domino REST API に関心を持つ理由について説明し、ダウンロードとインストールの方法を紹介し、コンポーネントを紹介しました。インストール後、DRAPI は Domino サーバー上で自動的に実行を開始します。しかし、Domino 上で動作する HTTP のように、"load HTTP"を発行したからといって、本番に耐えうる Web サーバーができたわけではありません。この記事では、Dominoアプリケーションの完全な機能と安全なインタフェースを確保するために必要な設定手順について説明します。
ポートの保護
Domino REST API には HTTP を使用してアクセスする 4 つのポートがあります。ポートと提供する機能は次のとおりです。
データ・ポート | 8880 | Domino REST API が使用するメイン・ポート。デフォルトの認証では、文書のユーザー名とインターネット・パスワードが使用されます。 |
ヘルスチェック・ポート | 8886 | /health エンドポイントを使用して、Domino REST API が稼働しているかどうかを確認するために使用されます。他のポートへのアクセスを提供しない独自の機能アカウントがあります。 |
管理ポート | 8889 | 現在の構成 (/config)、ランタイム情報 (/info)、または Domino REST API のシャットダウン/再起動など、Domino REST API ランタイム動作へのアクセスを提供します。ポートをブロックし、localhost からのみのアクセスを推奨する。他のポートへのアクセスを提供しない独自の機能アカウントがあります。 |
Prometheus メトリクス | 8890 | Prometheus 形式のメトリクスを提供します。他のポートへのアクセスを提供しない独自の機能アカウントを持っています。 |
他のHTTPトラフィックと同様に、これらのポートも証明書で保護する必要があります。デフォルトの Web ポート 80 とは異なり、TLS を使用してアクセスしてもポートは変更されません。以下の図では、HTTP を介した外部 Web トラフィック要求は nginx プロキシで受信され、Domino REST API または Domino Web サーバーにルーティングされます。さらに、DRAPI 管理コンソールへのアクセスは 8889 経由のローカルアクセスで発生することがわかります。
これらのポートは Domino の HTTP エンジンとは別物であることに注意することが重要です。実際、Domino REST API は Domino サーバーに HTTP をロードせずに動作します。現在、これらのポートは Domino の証明書マネージャとそれぞれの TLS キャッシュによって保護されていません。ただし、証明書マネージャを使用して Let's Encrypt 証明書を取得できます。その後、証明書ストアの certstore.nsf から証明書をエクスポートし、セキュアポート構成に使用します。高レベルでは、証明書取得プロセスで証明書マネージャを活用し、Domino サーバー上で直接 DRAPI のポートをセキュアにするためにその証明書を使用するために、以下のステップを踏みます。
証明書ストアの certstore.nsf で、エクスポート可能な TLS クレデンシャルを作成します。
クレデンシャル要求が処理され、有効な証明書が作成されたら、TLS クレデンシャル文書の [Export TLS Credentials]アクションボタンを使用して証明書をエクスポートします。この例では、PKCS12 形式が選択され、ファイルは PFX タイプとしてエクスポートされます。
rock.pfx を DRAPI がインストールされている Domino サーバーの Domino\Data フォルダにコピーします。 注:証明書の場所は Data フォルダである必要はありません。証明書の場所は Data フォルダである必要はなく、Domino サーバにローカルで、ステップ 4 で説明する JSON 設定ファイルで正しく参照される必要があります。
DRAPI がインストールされた Domino サーバで、テキストエディタを使用して以下のような情報を含む JSON 設定ファイル(tls-config.json)を作成し、keepconfig.d フォルダに保存します。
注意事項:証明書のパスは、フォワード・スラッシュ(/)を使用して指定されたTLSFile.です。
{
"TLSFile": "c:/domino/data/go.pfx",
"TLSPassword": "P@$$w0rd1352",
"TLSType": "pfx"
}
テキストエディタを使って、サーバーのnotes.iniを開きます。
KeepManagementURLを更新し、httpsとサーバーのホスト名を含めます。
KeepManagementURL=https://rock.adventure.com:8889
重要:restapiをリロードする前に、サーバーのnotes.iniのLeepManagementURLを更新してください。
注意事項: Let's Encrypt証明書が更新されたら、エクスポート、コピー、リロードの手順を繰り返す必要があります。 または、これらの手順を自動化するプロセスを作成してください。
もう 1 つのオプションは、外向きのプロキシ、つまり nginx を使用することです。上記と同様に、Certificate Manager を使用して証明書を取得し、それをエクスポートしてプロキシで使用することができます。証明書の更新には証明書のエクスポートを繰り返す必要があることに注意してください。HTTP が終了する外向きのプロキシを使用する場合、つまり Domino サーバーとプロキシ間のトラフィックが HTTP を使用する場合、KeepManagementURL を更新する必要はなく、keepconfig.d フォルダに TLS JSON 設定ファイルも必要ありません。
nginx を HTTPS プロキシとして構成する - 単一ドメイン - HCL Domino REST API ドキュメント (hcltechsw.com)
nginxをサブドメインでHTTPSプロキシとして構成する - HCL Domino REST API Documentation (hcltechsw.com)
Healthcheck、Management、Prometheusポートにアクセスできるように、機能アカウントを設定することも、インストール後に必要なステップです。機能アカウントは、さまざまなタスクを実行するために必要な個人アカウントではありません。機能アカウントを作成するには、json 構成ファイルを作成し、DominoDatakeepconfig.d フォルダに配置します。この構成ファイルにはユーザー名とシークレットが含まれる。DRAPI ドキュメントには、管理機能アカウントのデフォルトテキストとして、ユーザー名が Doctor Notes、シークレットがパスワードの塩漬け値である以下の16進数テキストが含まれています。
{
"identity": {
"managementAPI": {
"Doctor Notes": {
"active": true,
"secret":
"E4B321EBA91B7F92D9BF5EAFA5322824FEC2287B8A6C133D7C31EFB706A2BA30:1A57478185E7AF3A98F01ECA08F0BA881DBC88BEC60AE8C6F1B1CC5CC55C11A20F676E082BF2D28BB96DB5A8CFB091C767C035B380DB4CBC7D1001EA8BE01663"
}
}
}
}
この例を使用して構成ファイルを作成します。必要に応じて別のユーザー名を指定します。Domino コンソールで tell restapi reload を発行した後、https://localhost:8889 を使用して管理コンソールにアクセスします。
注:ログインするには、構成ファイルに記載されているユーザー名(大文字と小文字が区別され ます)を入力し、パスワードは password とします。
もちろん、デフォルトのパスワードは変更する必要があります。新しいシークレットを取得するには、Salt thisフィールドにパスワードを入力します。Saltボタンを押すと、新しいシークレットが設定ファイルに入力されます。そして、新しいパスワードを有効にするために "tell restapi reload" を発行することを忘れないでください。
管理コンソールには、「Create IdP Certificate」ボタンがあります。これは DRAPI を実行している複数の Domino サーバーで共有できる恒久的な JWT トークンを作成するために使用します。Create IdP Certificate ボタンを押すと、keepconfig.d フォルダに証明書、公開/秘密鍵ペア、json 設定ファイルが生成されます。これらの4つのファイルは、環境全体で共有したい場合は、DRAPIを実行している他のDominoサーバーにコピーペーストすることができます。
JWT コンフィギュレーションに関する注意事項: Domino REST API は複数の外部プロバイダから JWT トークンを受け入れることができます。Domino REST API は複数の外部プロバイダから JWT トークンを受け入れることができます。そのための手順はここにあります。
Domino REST API はアクセストークンを消費するように設計されています。このトークンは OAuth ダンスの結果であることも、単に Domino 認証情報の交換の結果であることもあります。Domino REST API は OAuth ダンスを行う IdP を提供します。
OAuth を動作させるには、 oauth.nsf データベースと、keepconfig.d フォルダ内の oauth 設定ファイルが必要です。
oauth.nsfデータベースはDRAPIインストールの一部として作成されます。データベースの ACL を編集し、DRAPI を実行している Domino サーバーを OAuthAdmin ロールに追加する必要があります。
次に oauth 設定ファイルを作成します。以下のテキストをコピーしてください。
{
"oauth": {
"active": true,
"database": "oauth.nsf",
"url": "http://rock.adventure.com:8880",
"authCodeExpiresIn": 120,
"accessTokenExpiresIn": 3600,
"refreshTokenExpiresIn": 525600
}
}
次に、テキストベースのエディタ(メモ帳など)を開き、テキストを貼り付けます。ドキュメントを拡張子.json、つまりoauth.jsonで保存し、keepconfig.dフォルダに置きます。最後に、tell restapi reloadを実行して、構成の更新を有効にします。
DRAPI インストールの一部として作成された Domino データベースでは、それぞれの ACL に LocalKeepAdmins グループが自動的に追加されます。この ACL エントリを利用するには、Domino ディレクトリにグループを作成し、DRAPI 管理者、つまりスコープとアプリケーションの作成と更新を行う者を追加する必要があります。
DRAPI の一部としてインストールされた 3 つのデータベースは、管理グループとサーバーグループを追加して、組織のセキュリティ要件を満たすように ACL を更新する必要があります。さらに、DRAPI がインストールされている Domino サーバを管理サーバとして追加することを推奨します。
Domino Keep Agent Scheduler(keepagents.nsf)データベースのデフォルトは Reader ですが、No Access に変更することもできます。ランタイムエージェントを管理する人、つまり LocalKeepAdmins には Editor アクセス権が必要です。
Domino Keep OAuth(oauth.nsf)データベースには、DeleteフラグのないAuthorへのDefaultアクセスが必要です。これにより、ユーザーは管理 UI を使用して同意を取り消すことができます。
Domino Keep 設定(keepconfig.nsf)データベースのデフォルトアクセスは Reader にする必要があります。
最後に、Domino サーバーに追加するデータベースと同様に、サーバーの ID または組織の署名 ID でこれら 3 つのデータベースに署名することをお勧めします。そこで、Domino Administrator クライアントを使用して、keepagents.nsf、keepconfig.nsf、および oauth.nsf を選択し、それぞれの ID ファイルで署名します。
まとめると、Domino REST API の構成手順には以下のものが含まれます。
TLS 証明書で HTTP トラフィックを保護し、notes.ini で KeepManagementURL を更新します。
DominoDatakeepconfig.d フォルダに json 設定ファイルを作成して機能アカウントを作成し、管理コンソールを使用してパスワードをカスタム値に変更します。
DRAPI を実行している複数の Domino サーバーで共有できる恒久的な JWT トークンを作成します。DRAPI を実行する複数の Domino サーバ間で共有できる恒久的な JWT トークンを作成します。
oauth.nsf データベースの ACL を更新し、oauth 設定ファイルを作成することで、アプリケーションアクセス用の OAuth を設定します。
LocakKeepAdminsグループを作成し、設定します。
DRAPIデータベースのACLを更新します。
DRAPI データベースに署名します。
さて、Domino REST API が完全に機能し、セキュアになったところで、次回のブログ記事では DRAPI Admin UI を使ってスキーマ、スコープ、OAuth アプリケーションを作成し、REST API アクセス用のデータベースを準備する方法を紹介します。
新しい試みのトライアルとして、1週間分のサポート技術情報更新のインデックスを作成してみました。しばらく継続してみます。新規追加と内容更新したものが含まれています。システム上、軽微な修正であってもリストに含まれてしまいます。予めご了解ください。
テクてく Lotus 技術者夜会 2024年1月度を、2024年1月19日 (金) 17:30 - 19:00 で開催します。
テクてく Lotus 技術者夜会は、Lotus、ICS (IBM Collaboration Solutions) で発展してきた、Notes/Domino を中心とした、コラボレーション製品の活用に携わる技術者を対象とした勉強会です。金曜日の夜に、コラボレーションという同じ分野に関わる技術者同士で「楽しく」「ゆる〜く」集まることができる勉強会です。
2024年1月 アジェンダは以下のとおりです。
お申し込み、詳細は以下のページをご覧ください。
2023/12/21 09:37 追記
2023年12月19日、HCL Nomad Web 1.0.10 IF1 をリリースしました。障害修正3件が含まれています。詳細はリリース情報を参照してください。
2023年12月13日、HCL Nomad Web 1.0.10 をリリースしました。今回のリリースでの大きな変更点は、HCL Nomad Designer が追加されたことと、ReStyle が改善されたことです。
尚、HCL Nomad Designer を動作させるためには、ブラウザーのロケールを英語にする必要があります。詳細は下記リリース情報を参照してください。
2023年12月14日、HCL Domino REST API 1.0.9 をリリースしました。今回のリリースでは HCL Domino 14 に対応しています。新機能、機能改善等については以下のリリース情報をご覧ください。
2023年12月13日、Domino v14 Factory Tour を開催しました。多数のお客様、関係者様にご来場いただき、最終セッションまで盛況のうち終了できました。改めて感謝申し上げます。この後、資料の公開を行いますので暫くお待ちくださるようお願い致します。
HCLSoftware Digital Solutions Global Team & Japan Team 一同
2023年12月7日、HCL Domino Leap 1.1.3 をリリースしました。詳細はリリース情報を参照してください。
HCL Sametime 12.0.2 - Seamless Collaboration and Easier Administration の翻訳版です。
HCL Sametime 12.0.2 - シームレスなコラボレーションと容易な管理
2023年12月7日
著者: Trevor Tallackson / Product Manager for HCL Sametime
Sametime 12.0.2がリリースされ、シームレスなコラボレーションの新時代が幕を開けました。Sametime12.0.2は、お客様のミーティングやチャットの利便性を向上させることを第一に考え、管理・導入の簡素化を実現しました。私たちのコミットメントは、データセキュリティを重視し、総所有コスト(TCO)を削減し、機能豊富なチャットとミーティング環境を提供する堅牢なエンタープライズ・ビジネス・コラボレーション・ツールを提供することです。
今、あなたの指先にあるエキサイティングな機能を探ってみましょう:
機能一覧はこちら をご覧ください。
強化されたコラボレーション機能、簡素化された管理およびデプロイメントなど、最新リリースでカバーされています。
今すぐアップグレードするか、組織で初めて Sametime 12.0.2 を導入して、これらの機能の利点を最大限に活用してください。このリリースは、HCL Sametimeのライセンスをお持ちの Sametime Premium のお客様、および Domino のお客様すべてにご利用いただけます。ダウンロードするには、HCL License and Download Portal にアクセスし、"HCL Sametime" 製品カテゴリーで検索してください。
HCL Sametimeを使用したセキュアなミーティングやチャットで、組織のコラボレーションをどのように向上させることができるかについてのご相談は、こちらをクリックしてください。
今すぐSametime 12.0.2でコラボレーション体験を向上させましょう。