Node 18からNode 22への移行

2025年1月15日以降、Node 22の拡張ランタイムは、弊社の一連の拡張オファリングにおいて、一般利用可能(GA)です。これにはアクション、ルール、フック、データベーススクリプト、カスタムソーシャル接続が含まれます。コードセキュリティのベストプラクティスに従うために、できるだけ早くNode 22にアップデートすることを強くお勧めします。

一般的な考慮事項

  • アクションにあるモジュールレベルのコードは、アクションのインスタンスあたり1回だけ起動され、多くの実行で必要に応じて何度も実行されます。

  • 新しいランタイムに含まれる利用可能なモジュールについては、「必要かを判断する:Auth0の拡張性」を参照してください。

  • use npmディレクティブはNode 22では利用できません。

  • ファイルシステムへの書き込みアクセスが無効になりました。

Marketplaceの統合

ソーシャル接続の統合

Nodeランタイムバージョンの変更が影響を与える可能性があるソーシャル接続の全リストを確認するには、Management APIを使用します。特に、カスタムソーシャル接続として明示的に作成されたものか、Marketplaceを通して最初に追加されたものかを問わず、影響を受ける可能性があるソーシャル接続はすべて、oauth1oauth2のいずれかの値のstrategy属性を持ちます。

テナントに含まれるすべてのカスタムソーシャル接続は、全接続取得エンドポイントを使用すると、ページ分割して取得できます。たとえば、以下のクエリオプションは先頭から100までのカスタムソーシャル接続の名前と識別子を返します。

/api/v2/connections?strategy=oauth1&strategy=oauth2&include_totals=true&fields=name&per_page=100

Was this helpful?

/

Auth0 Dashboardでは、Marketplaceから追加したカスタムソーシャル接続のスクリプトを更新できません。Node 22との互換性にスクリプトの変更が必要な場合は、Management APIを使用しなければなりません。

移行タスク

新しいカスタムアクションを作成する

Node 22で新たにカスタムアクションを作成するには、Auth0 Dashboardで以下を行います。

  1. [Auth0 Dashboard]>[Actions(アクション)]>[Library(ライブラリー)]に移動します。

  2. [Create Action(アクションの作成)]>[Build from Scratch(初めから構築する)]を選択します。

  3. [Runtime(ランタイム)]*フィールドで[Node 22](推奨)を選択します。

  4. Node 22でカスタムアクションを作成し、検証と準備ができたらデプロイします。

既存のカスタムアクションをアップグレードする

Node 12、16、18で作成した既存のカスタムアクションをそれぞれNode 22にアップグレードできる他にも、古いランタイムを使用して前のバージョンに戻すことができます。アクションをNode 22にアップグレードするには、必要な変更を既存の実装に加えて新しいバージョンの作成とデプロイを行い、ランタイムとしてNode 22の使用を設定します。

他の拡張製品にNode 22を選択する

残りの(Actions以外の)拡張オファリングに使用されるランタイムは、テナントの詳細設定レベルでグローバルに定義されます。この設定を変更すると、同時に以下の機能性に影響を及ぼします。

  • ルール

  • フック

  • カスタムデータベーススクリプト

  • カスタムソーシャル接続スクリプト

テナントの拡張性ランタイムの設定を変更するには、Auth0 Dashboardで以下を行います。

  1. [Dashboard]>[Settings(設定)]>[Advanced(詳細設定)]に移動します。

  2. [Extensibility(拡張性)]セクションまでスクロールします。

  3. [Runtime(ランタイム)][Node 22]を選択します。

  4. [Legacy Extensibility(レガシーの拡張性)]には、必要なランタイムのバージョンを選択します。

これはグローバルな設定で複数の拡張性に同時に影響与えるため、まず開発テナントで変更してから、関連するすべての拡張機能をテストして、問題が認められなかった場合にのみ運用テナントで変更することをお勧めします。

特にカスタムデータベーススクリプトに関してはこちらのページにある手順に従って、特定のランタイムのバージョンでスクリプトを個別に検証してから、グローバルにランタイムのバージョンを変更してください。