リリースノート
v23.1LTS-patch20250128 [Active]
依存関係
Node Version
- 18.x
redis Version
- 6.x
- 7.2
機能追加
- 認証プロバイダーとの連携強化
- SDK Coreの認証と連携が可能な外部認証プロバイダーとして、以下を新たに追加いたしました。
- Auth0
- AzureAD
- GitHub
- SDK Coreの認証と連携が可能な外部認証プロバイダーとして、以下を新たに追加いたしました。
- 外部認証とSDK認証の連携機能の追加
- 外部認証によって取得したユーザーID(email)を基に、指定されたSDK Core環境においてアカウントの作成および認証を自動で行うように改善いたしました。
- SDK Portal経由で設定が必要だったSDK Coreとの連携が、APIFrontのみで実現できるように変更しました。
v23.1LTS-patch20241204
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- Proxy使用時にインジェクション処理がない場合はpipeを使用してレスポンスを返却するよう修正を行いました。
これによりProxy経由のファイルダウンロード時のPodへの負荷が改善されます。
v23.1LTS-patch20241118
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- Proxy経由でファイルダウンロード時にpodが再起動する問題の修正を行いました。
v23.1LTS-patch20240221
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- verifyRenderIdモードのrenderIdReferQueryのValueに特殊文字が指定された際にエラーする事象を改修しました。
これにより、"
や'
、\
といった特殊文字はエンコードされてverifyRenderIdとして使用されます。
( 例 )+content.renderIdReferQueryにrender_queryを指定した場合. ?render_query='\ をリクエスト ↓ renderId : %27%5C を生成 - 上記verifyRenderIdモードでエラーした際にコンテンツ描画モードが解除されず、セッションに認証情報が存在する場合に認証がスキップされてしまう不具合を修正しました。
v23.1LTS-patch20240115
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- AzureAD認証連携のβ版機能を追加しました。
v23.1LTS-patch20231207
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- カスタムプラグインでBodyのログ隠蔽が可能になりました。カスタムプラグイン上のヘッダで
X-CASVAL-SECURED-REQUEST
を指定いただくと、APIのRequest/Response Bodyがログ上でmaskされます。 - セッション有効期限切れの処理、session entiretyリクエスト処理について軽微な修正を行いました。
v23.1LTS-patch20230927
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- +content.verifyRenderIdがFetchに対しても有効になりました。
- +content.enableInlineScriptを追加しました。
有効化することで、ユーザが指定したmainファイルに存在するnonce属性を持たないscriptタグに対して、nonce属性を追加します。
Nuxtのbuild時にinline-scriptが自動生成される場合などで、CSPの設定に抵触する問題を解消可能です。 - +apis.allowedMethodsを追加しました。
ApiFront(API Proxyを含む)リクエストに対して、指定していないMethodからのリクエストの場合、400を返却します。
デフォルトは[‘post’, ‘get’, ‘put’, ‘patch’, ‘delete’, ‘options’, ‘head’]です。
ユーザで上記以外のMethodを使用する場合、追加Methodを含め使用するすべてのMethodを記述してください。
v23.1LTS-patch20230626
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- +content.verifyRenderIdを有効時に、異なるオリジンに対してAPIリクエストを実行するスクリプトタグを追加した場合、そのリクエストヘッダがA欠損するバグを修正しました。
v23.1LTS-patch20230621
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
-
cacheTokens / transparentTokens を有効化時に、同一ブラウザで複数タブで別のテナントを操作した場合に、tokenが混ざる可能性のある不具合の修正しました。
起動パラメータに
+content.verifyRenderId
,+content.renderIdReferQuery
を追加しています。
content: verifyRenderId: true # boolean (defalut false) renderIdReferQuery: "tokenIdentifier" # String (defalut null)+content.verifyRenderId:
有効化することで、コンテンツレンダリング単位でrenderIDを払出し、ブラウザに自動印加 / 内部セッションに保持します。
ブラウザではAPIリクエストのヘッダにrenderIDを印加し、ApiFrontで保持したrenderIDを比較することで、tokenを取得したブラウザとリクエストしたブラウザが一致するかを確認します。
一致する場合、tokenを印加してリクエストを続行、一致しない場合はtokenを不正に使用する可能性があるため403
を返却します。
なお、この対応を入れることで、1ブラウザで使用できるタブは1つのみとなります(シングルタブモード)。+content.renderIdReferQuery:
異なるtoken発行の識別をクエリで行っている場合、同一クエリvalueにおけるマルチタブモードを可能にします。
+content.renderIdReferQuery
にはランディング時に使用するクエリKeyをStringで指定します。
指定したクエリでランディングが起こった場合、renderIDに該当クエリvalueが使用され、同一ブラウザでの複数タブでの動作が可能になります(マルチタブモード)。
なお、クエリが存在しない場合はシングルタブモードとして動作します。
[注意事項]
本起動パラメータはXMLHttpRequest
にのみ対応しています。
fetchAPIをご使用の場合、ご相談ください。
v23.1LTS-patch20230522
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.cacheTokens でtoken関連の情報を返却するように変更しました。
これにより、/session
のresponse bodyに tokenのキーが追加されます。
なお、本parameterはあくまでtokenの付属情報を返却しており、tokenの値(token.token)は返却しません。
/session response body イメージjson
{ "id": "hoge", "auth":{ ... }, "token":{ "expires": 1684475023466, "generator": "qmonus", "properties":{ ... }, }, ... }
v23.1LTS-patch20230425
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.cacheTokens / authentication.transparentTokens時のバグ修正
/session APIでtoken隠蔽に関するバグを修正しました。 - /session でのtoken有無を返却する existsToken の追加
tokenの有無を /sessionのauth.existTokenにてbooleanで返却します。これによりtokenを隠蔽した状態でもtokenの取得状況を確認可能になります。
v22.7LTS-patch20230425
依存関係
Node Version
- 16.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.transparentTokens時のバグ修正
/session APIでtoken隠蔽に関するバグを修正しました。 - /session でのtoken有無を返却する existsToken の追加
tokenの有無を /sessionのauth.existTokenにてbooleanで返却します。これによりtokenを隠蔽した状態でもtokenの取得状況を確認可能になります。
v23.1LTS-patch20230317
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.cacheTokens / authentication.transparentTokensのバグ修正
/session APIでtoken隠蔽に関する処理を追加しました。
v22.7LTS-patch20230317
依存関係
Node Version
- 16.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.transparentTokensのバグ修正
/session APIでtoken隠蔽に関する処理を追加しました。
v23.1LTS
依存関係
Node Version
- 18.x
redis Version
- 6.x
機能追加
- 起動パラメータ authentication.cacheTokens の追加
ApiFront側で外部認証連携で取得したアクセストークンをキャッシュすることができます。true の場合、該当セッションのAPIアクセスには自動でアクセストークンが印加されるので、SAP側でトークンを管理する必要なくなります。そのため、/session APIからはトークン情報は含まれなくなります。
その他
- SPAビルド機能のバグ修正(memcapが効かない)
- /echo APIのセキュリティ向上(payloadデータを無効化)
v23.1からApiFrontの公式コンテナイメージのベースOSが、centos(Red Hat系)から、bullseye(Debian系)に変更されています。公式コンテナイメージをベースとしたDockerfileのカスタマイズでは、利用するパッケージマネージャーに変更がある点に注意してください。
v22.7LTS [Maintenance]
Node Version
- 16.x
redis Version
- 6.x
機能追加
-
ApiFrontのアプリケーションでSPAビルドをサポート
起動パラメータで指定したビルドコマンドにて、ApiFront起動時やSPAコード変更時にビルドを実施する機能を追加しました。SDK Lab からのデプロイ時に、コンテナデプロイと合わせてSPAのビルドを行う機能を提供していましたが、ビルドの失敗(コードの不具合)によりコンテナデプロイができないケースや、プライベートリポジトリのトークンの秘匿化ができないなどの問題に対応するため、ApiFrontの機能としてSPAをビルドする機能を提供しました。ファイルのwatch指定も可能なため、git pull 契機でビルドを行うことも可能になります。
[注意!] ApiFrontの再起動時にSPAのビルドが行われます。商用環境ではこの機能は利用せず、ビルド済みSPAを利用するようにしてください。
boot-params
+content.build.cwd="/var/plugins/xxx_gui/client" ## ビルドワークディレクトリ +content.build.command="npm ci&&npm run build" ## ビルドコマンド +content.build.watch.path="/var/plugins/xxx_gui/client/src" ## 変更監視設定(任意)
その他
- 認証連携スクリプトで利用できる calloutHelper の エイリアス callout を追加
- 起動パラメータ[content.snipets] => [content.snippets] に修正。※snipetsも引き続きサポート
v22.2LTS-patch20220725
Node Version
- 16.x
redis Version
- 6.x
起動パラメータ追加
-
※/echo API利用ユーザ
v21.12R1以降でpuppeteerがデフォルトでバンドルされなくなりましたが、ApiFrontの起動時にパラメータ(+apis.echo.enable)に連動して自動でpuppeteerをインストールする機能を追加しました。ただし、productionモードではこの機能は使えないためStaging以降では、Dockerfileにてpuppeteerをインストールする記載を追加してください。
boot-params
+production=false +apis.echo.enable=true
Dockerfile
WORKDIR /root/casval-stable
RUN npm install puppeteer@1.20.0
v22.2LTS-patch20220623
Node Version
- 16.x
redis Version
- 6.x
起動パラメータ追加
- 起動パラメータのcontent.securityPolicy で、ContentSecurityPolicyのカスタマイズが可能ですが、追加で必要なSourceに対応する際のカスタマイズが煩雑になる問題がありました。securityPolicyの設定に加えて任意のHostを追加できる以下のオプションを追加しました。指定したSourceは、script-srcとscript-src-elem に追加されます。
boot-params
+content.securityPolicyOptions.additionalScriptSrc="https://xxxx"
v22.2LTS [Maintenance]
Node Version
- 16.x
redis Version
- 6.x
v21.X との差分
-
[注意!] node.js のバージョンが 16系に変更されています。SPAのビルドには同じく16系を利用してください。
-
redis のデフォルトバージョンが 6系に変更されています。
-
package.jsonから、puppeteerを削除しました。/echo APIを利用している場合は、SDK Labをご利用の際は、buildSettings の command パラメータで、
npm install puppeteer@xx
のように、任意のpuppeteerバージョンのインストールを行うことができます。※/echo APIは今後削除される予定です。 -
デフォルトで利用するSecurityPolicy設定が self になっています。SPAから外部サイトのコンテンツ読み込みはできません。SPAで外部コンテンツの参照が必要な場合は、以下の設定で明示的にCecurityPolicyの設定を行い、読み込みを許可してください。WAFを経由した環境においては、CSPの設定を無効にすることもできます。
boot-params
+content.securityPolicy="default-src 'self' ;script-src 'unsafe-eval' http://xxxxxxx; ..." or +content.securityPolicy=null
v21.12R2
Node Version
14.x
仕様変更
・Redis利用時の再接続ポリシーを変更(再接続間隔を延長しながら、最大1時間になるまで再接続を繰り返します)
v21.12R1
Node Version
14.x
仕様変更
・package.jsonから、puppeteerを削除
[注意!] /echo APIを利用している場合は、ビルド時に npm install コマンド等で、適切な puppeteerバージョンのインストールを実施してください
・API Proxy のbodyパース処理を、json応答でかつinjection指定時のみ実施するように改修
(streamデータ時にも余計なエンコードがされない)
v21.11R4
Node Version
14.x
仕様変更
・セッション保持に利用するCookieのデフォルト値を変更
起動パラメータ追加
・マルチページモードで認証リダイレクトの除外コンテンツを指定可能にした
boot-params
+content.pageRoot=/static
v21.11R3
Node Version
14.x
仕様変更
・/session APIのレスポンスから、params 排除
起動パラメータ追加
・/session APIのレスポンスカスタマイズ機能追加 (apis.session.overwrite)
boot-params
+apis.session.overwrite.auth.account_id=hoge +apis.session.overwrite.auth.email=undefined
その他改修
・request / response の Injection処理(backend.requestInjection.headers)が正しく行われないバグ改修
・transparentTokensモードでカスタムtoken ジェネレータを利用する際に、ランディングページリクエスト時のクエリが参照できないバグ改修
・SDK Labから指定する一部の起動パラメータで起動できなくなるバグ改修( cookieMaxAge / proxyTimeout )
v21.11R2
Node Version
14.x
その他改修
・起動パラメータで指定したObject/Arrayデータのパース処理追加
・トークン払い出しでのエラーハンドリング処理のバグ改修
v21.11R1
Node Version
14.x
起動パラメータ追加
・+content.securityPolicy オプションを追加しContentSecurityPolicyのコントロールを可能に ( nonce / self / null )
boot-params
+content.securityPolicy=self
その他改修
・push header設定が、コンテンツレンダリングレスポンスにも反映されるように変更
v21.10R2
Node Version
14.x
起動パラメータ追加
・ enableMultipageオプションを追加し、MPAにも対応(非推奨)
boot-params
+content.enableMultipage=true
その他改修
・+backend.requestInjection.headers / +backend.responseInjection.headers で文字列指定された場合のパース処理を追加
v21.10R1
Node Version
14.x
その他改修
・DockerImageファイル修正 ※gettext追加
v21.8R2
Node Version
14.x
起動パラメータ追加
・動的にコンフィグ上書き可能な、enableConfigWrite を追加
※デバッグ用途のため、productionモードでは使用不可。再起動時には元のコンフィグに戻る仕様。
・content.snipets 配下の指定をObject型にも対応
API追加
・PATCH /config で動的なコンフィグ上書きが可能
json
key : "backend.requestInjection.script"
value : "/var/plugins/hoge_plugins/casval/snipets.js"
v21.8R1
Node Version
14.x
起動パラメータ追加
・Frameモードのinnercontentにのみ作用するスニペットオプションを追加
boot-params
content.innerSnipets ※ Frameモードの場合のみ有効
その他改修
・CSP nonce対応のためページキャッシュロジック変更
・npmライブラリ更新
v21.7R1
Node Version
14.x
起動パラメータ追加
・ログファイル出力に対応
boot-params
+logger.path=/var/console.log
その他改修
・起動ファイル未指定でも起動可能に
v21.6R3 よりも古いバージョンとの差分
以下の仕様差分があります
・Accept : ※/※ でのリクエストに対するレスポンス応答の変更(302 => 401)※外形監視では注意が必要です。