Redbook : IBM i 7.6 Features and Function を読む Chapter.6 アプリケーション開発④コンパイラーの続きです。
6.5章 Integrated Web Services (IWS)
※IWSは従来, Integrated Web Server、Integrated Web Service server とAPサーバーの名称として使われてきたと思いますが、この章ではサービス、と機能名として使用されています。
IWSは、ユーザーインターフェース、豊富な機能、そして強力なセキュリティを備えた最新のREST APIエンジンとして機能します。RESTful標準に準拠し、包括的なサービスツールを提供し、統合セキュリティを確保することで、実用的な価値を提供します。
**Integrated Web Services for i (IWS) でILEプログラムまたはDb2 for i へのSQL実行をREST APIから実行できます。IWS には以下の機能が含まれます。
- トラスト認証インターセプター (Trust authentication interceptor : TAI)
- ユーザーレジストリー、グループ、およびロール
- HTTPエラー発生時の様々なステータス・情報の取得
- PATCH HTTP メソッドのサポート
現時点での仕様? Web Administrator for i ブックマークから開くとポート番号が異なる件
ところで、IBM i 7.6 でIWSの設定をしようとして、Navigator for iからブックマーク → IBM Web Administrator for i を開くと、httpsで2010番ポートに接続しに行きます。

これまでだとhttp, 2001番ポートでした。このシステムはhttpsセットアップしておらず2010番ポートで受けられない為、手動でurlを
http://ホスト名:2001//HTTPAdmin
に書き換えてログインしました。
トラスト認証インターセプター (TAI)
Web サービスでベーシック認証を使用する場合、特定のリクエストに必要な資格情報が含まれていない場合があります。このような場合、Trust Association Interceptor (TAI) をサーバーにデプロイすることで、特定の認証されていないリクエストの処理を許可できます。
使用例として、APIゲートウェイが認証情報を提供するリクエストを既に認証しているものの、サーバーに転送されたリクエストにそれらの認証情報が欠けている場合、TAIを実装してこれらのリクエストを認識し、指定されたアプリケーションまたはタスクIDで処理することができます。TAIの基準を満たさないリクエストでも、処理を続行するには必要な認証情報を提示する必要があります。TAIがリクエストをブロックするか許可するかを決定する基準は、TAI実装設計に依存します。
TAIはIBM iの出口プログラムに似ています。TAIコードは、Webサービスがリクエストを処理する前に呼び出されます。つまり、SQLインジェクションのスキャン、HTTPリクエストの送信元ロケーションの検証など、他のアクティビティも検証され、承認または拒否されます。
詳細とサンプルコードは Trust authentication interceptorを参照
設定は Web Administration for i 画面からできます。詳細は別途調べてみます。

ユーザーレジストリ、グループ、ロール
・ユーザーレジストリ : 認証時にアクセスする固有のユーザーアカウント資格情報(主にユーザー名とパスワード)が格納されます。Java8以降のAPサーバーを新規作成すると自動的に有効になります。
デフォルトでは、ユーザーレジストリはユーザープロファイルに基づいています。または、検証リストオブジェクト、ファイルに基づいてユーザーレジストリを作成することもできます。
設定は上記TAIと同様に セキュリティタブ → ユーザーレジストリ から行います。

HTTPエラー発生時の様々なステータス・情報の取得
エラー発生時などで、Web サービスの特定のリソースメソッドに関する情報を返す、以下の機能が追加されました。
Web サービスがエラー HTTP ステータスコードを返した場合にペイロード(実際のアプリケーションデータなど)を返す
HTTP ヘッダーを返す
入力および出力ラッパー要素に使用する識別子を返す
入力ソースから挿入されていない複数の入力パラメータを許可する
PATCH HTTPメソッドのサポート
REST API でサポートされるHTTP メソッド
-POST メソッド : 通常、リソースの作成に使用
-PUT メソッド : リソース内のすべてのフィールドを更新するために使用
-PATCH メソッド : 特定のフィールドの変更が必要であることを示すために使用
IWS サーバーで REST API を使用する場合、次の HTTP メソッドを使用できます。
- GET
- POST
- PUT
- DELETE
- PATCH HTTP
APIサーバーの管理
これまでは上でも説明した、Web Administration for i のリンクからIWS, HTTPサーバーの管理を実行していました。

IBM i 7.6からNavigator i でIWSの管理が可能となりました。 現時点では、IWSの起動・停止 +プラスアルファ の機能程度ですが、今後拡張される計画です。
Navigator for i のネットワーク タブからIWSの管理画面にアクセスできます。

上記のように IWSサーバーの起動・停止、プロパティ変更などが出来ます。
プロパティは、ポートの確認・変更

※は将来的にはWeb Administoration for i はNavigator for i に統合・廃止されるのでしょうね。(インターフェースも旧式ですし、操作性統一の観点でも妥当な計画かと思います。)


