> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Node.js v12 から Node.js v16 への移行の影響を受ける Auth0 の機能について説明し、移行に関する推奨事項を示します。

# Node.js 16 に移行

2022 年 4 月 30 日に、[Node.js v12 の長期サポート (LTS) が終了しました](https://github.com/nodejs/Release#release-schedule)。これは、Node.js 開発チームがこのバージョンに対する重大なセキュリティ修正をバックポートしなくなったことを意味します。そのため、拡張コードがセキュリティ脆弱性にさらされる可能性があります。そこで、Auth0 は Node 12 から Node 16 への移行を進めています。

<div id="recommendations">
  ## 推奨事項
</div>

Node 16 への更新によって Node.js 標準ライブラリに互換性のない変更が加わることはありません (影響を受けるのはルールと Custom Database アクションスクリプトです。詳しくは [互換性のない変更 - ルールと Custom Database アクションスクリプトのみ](#breaking-changes-rules-only) を参照してください) 。ただし、セキュリティおよびコンプライアンスの観点から、Node バージョン 12 をご利用のお客様には、アクティブな長期サポート (LTS) 対象の Node バージョンを継続して利用することをお勧めします。現在も Node 8 を使用しているお客様は、セキュリティコンプライアンスを満たしておらず、セキュリティリスクを解消するために Node 16 へ移行する必要があります。Public Cloud テナントでは 2022 年 2 月 22 日に Node 8 ランタイムを削除し、Private Cloud では 2022 年 4 月リリースで削除しました。これらの日付以降も Node 8 のまま設定されているテナントでは、サービス中断のリスクがあります。

Actions は複数の Node バージョンを同時にサポートするよう設計されており、現在は Node 12 と Node 16 の両方をサポートしています。さらに、ノーコードの Actions Integrations では、業界標準の「常に最新」のバージョン管理に従い、マイナー バージョンが自動的に更新されます。基盤となるコードは常に最新の状態に保たれ、Node.js の最新バージョンに追随します。

| 使用中のお客様                           | 対応内容                                                                                                             | タスク                                                                          |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| Actions Node 12                   | 既存のカスタム Action バージョンを新しいバージョンに更新してください。これにより Node 16 に更新されます。                                                    | すべてのカスタム Action バージョンをできるだけ早く更新してください。                                       |
| レガシー Node 12 (ルール/フック/Extensions) | Actions Node 16 への移行を開始してください。                                                                                   | できるだけ早く [Actions Node 16 へ移行](/docs/ja-jp/customize/actions/migrate) してください。 |
| レガシー Node 8                       | 可能な限り、直ちに Actions へ移行してください。すぐに Actions へ移行できないルールとフックについては、少なくともコードを Node 12 に更新し、テナント設定を Node 12 に更新する必要があります。 | 直ちに [Actions Node 16 へ移行](/docs/ja-jp/customize/actions/migrate) してください。     |

<div id="tasks">
  ## タスク
</div>

<div id="upgrade-actions">
  ### Actions をアップグレードする
</div>

Node 12 上に構築された既存の Actions は、Node 16 にアップグレードでき、必要に応じて後から Node 12 の以前のバージョンに戻すこともできます。Actions を Node 16 にアップグレードするには、ランタイムとして Node 16 を使用するよう設定した[新しいバージョンを作成してデプロイ](/docs/ja-jp/customize/actions/manage-versions)します。

<div id="migrate-rules-and-hooks-to-actions">
  ### ルールとフックをActionsに移行する
</div>

可能であれば、ルールとフックはActionsに移行してください。どのルールとフックを移行できるか確認するには、[Actions の制限事項](/docs/ja-jp/customize/actions/limitations)を参照してください。ルールとフックをActionsに移行する方法については、[Actions への移行](/docs/ja-jp/customize/actions/migrate)にあるガイドを参照してください。

<div id="enable-node-16-runtime">
  ### Node 16 ランタイムを有効にする
</div>

ルール、フック、Extensions などのレガシーな拡張機能製品を使用している場合は、テナント レベルで Node 16 ランタイムを有効にする必要があります。まず開発用テナントを Node 16 ランタイムに切り替えて設定をテストし、その後で本番用テナントを切り替えることをお勧めします。

1. Auth0 Dashboard の [Advanced Tenant Settings](https://manage.auth0.com/#/tenant/advanced) ページにある **Extensibility** パネルを使用して、開発用テナントで Node 16 を有効にします。**Runtime** ドロップダウンから **Node 16** を選択します。
2. **Save** をクリックします。
3. 以下に記載されている項目が存在しないこと、または各項目の移行手順が完了していることを確認します。
4. 設定をテストします。テストが完了したら、上記の手順 1 と 2 を本番用テナントでも繰り返して、本番環境で Node 16 を有効にします。

<div id="breaking-changes-rules-and-custom-database-action-scripts-only">
  ### 互換性のない変更 - ルールおよび Custom Database アクションスクリプトのみ
</div>

ルールは JavaScript のサンドボックス内で実行されます。このサンドボックスでは、ECMAScript 6 と多数の Node.js (バージョン 16 以上) モジュールがサポートされています。ルールまたは Custom Database アクションスクリプト内で以下のグローバルプロパティを使用している場合は、[サポートされているサンドボックスモジュールの一覧で代替手段を確認し](https://auth0-extensions.github.io/canirequire/)、`require` で明示的に読み込んでください。

* `_`
* `async`
* `Auth0`
* `azure_storage`
* `bcrypt`
* `crypto`
* `couchbase`
* `cql`
* `ip`
* `jwt`
* `Knex`
* `mongo`
* `mysql`
* `mysql_pool`
* `ObjectID`
* `pbkdf2`
* `pg`
* `postgres`
* `Pubnub`
* `q`
* `querystring`
* `request`
* `sqlserver`
* `uuid`
* `xml2js`
* `xmldom`
* `xpath`
* `xtend`
