> ## 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 v8 から Node.js v12 への移行によって影響を受ける Auth0 の機能を説明し、移行に関する推奨事項を示します。

# Node.js 8 から Node.js 12 への移行

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

<div id="features-affected">
  ## 影響を受ける機能
</div>

以下の Auth0 機能は Node 8 を使用しています。

* ルール
* Hooks
* カスタムデータベース接続
* カスタムソーシャル接続
* Extensions

上記の拡張機能をいずれも使用していない場合、この移行による影響はありません。

<div id="tasks">
  ## Tasks
</div>

Webtask ランタイムへの Node 12 の導入にあたり、Node 8 から 12 への移行後に動作しなくなるモジュールがないかを確認するため、さまざまなテストを実施しました。ほとんどのお客様は、問題なく Node 12 にアップグレードできるはずです。

ただし、移行前に、以下のすべてをテストすることを強くお勧めします。

* ルール
* Hooks
* カスタムデータベース接続とスクリプト
* カスタムソーシャル接続
* Extensions

Auth0 では、まず開発テナントを Node 12 ランタイムに切り替え、開発テナントでテストを完了したうえで、開発環境で問題がないことを確認してから本番テナントを移行することを推奨しています。

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

この移行により、追加の動作変更が生じる可能性があります。そのため、Node 12 を使用する新しい Webtask ランタイムへの環境移行を制御できる移行スイッチを用意しています。

Auth0 では、まず開発テナントを Node 12 ランタイムに切り替え、開発テナントでのテストを完了して、開発環境で問題がないことを確認してから本番テナントを移行することを推奨しています。

ルール、Hooks、カスタムデータベーススクリプト、カスタムソーシャル接続については、[Management API](/docs/ja-jp/api) を使用して確認できます。これにより、テスト目的で項目を本番テナントから開発テナントへ移しやすくなります。

<Tooltip tip="Management API: お客様が管理タスクを実行できるようにする製品です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> の Connections エンドポイントを使用すると、カスタムデータベーススクリプトは `options.customScripts` を使って取得または更新できます。同様に、カスタムソーシャル接続は `options.scripts.fetchUserProfile` で確認できます。

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

<div id="allowlist-new-urls">
  ### 新しいURLを許可リストに追加
</div>

Delegated Administration Extension と <Tooltip tip="シングルサインオン（SSO）: ユーザーが1つのアプリケーションにログインすると、他のアプリケーションにも自動的にログインできるようにするサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Single+Sign-on">シングルサインオン</Tooltip> (SSO) Dashboard Extension では、拡張機能とカスタム webtask へのアクセスに使用する URL を許可リストに追加する必要があります。Node 12 にアップグレードすると、拡張機能とカスタム webtask へのアクセスに使用する URL が変更されます。これは、これらの拡張機能に対する互換性のない変更です。

これらの拡張機能のいずれかを使用している場合は、新しい URL を Allowed Callback URLs と Allowed Logout URLs の両方に許可リストとして追加する必要があります。

URL のリージョン部分は 8 から 12 に変わります。たとえば、次の URL を使用して拡張機能にアクセスしている場合:

`https://{yourTenant}.us8.webtask.io/dummy-extension-url`

Node 12 にアップグレードすると、URL は次のようになります。

`https://{yourTenant}.us12.webtask.io/dummy-extension-url`

1. [Auth0 Dashboard > アプリケーション > アプリケーション > Settings](https://manage.auth0.com/#/applications/\{yourClientId}/settings) に移動し、URL を **Allowed Callback URLs** フィールドと **Allowed Logout URLs** フィールドに追加します。
2. Auth0 コンテナ内のカスタム webtask の実行 URL も変更されます。これらの webtask を呼び出す外部アプリケーションは更新が必要です。

<div id="republish-authorization-extension-rule">
  ### Authorization Extension のルールを再公開する
</div>

Authorization Extension を使用している場合は、`auth0-authorization-extension` ルールが生成されます。URL を自動的に更新するには、Authorization Extension 内からこのルールを再公開してください。

1. **Installed Extensions** タブで、Authorization Extension が最新バージョンにアップグレードされていることを確認します。**Upgrade** ボタンが表示されている場合は、それをクリックしてアップグレードしてください。表示されていない場合は、すでに拡張機能の最新バージョンを使用しています。
2. **Authorization Extension** の設定ページを開きます。
3. ルール内の URL を更新するには、**Publish Rule** ボタンをクリックしてルールを再公開します。
4. 更新後も正常に動作していることを確認するため、テストを実行します。更新後に Invalid API Key エラーが表示される場合は、**Rotate** ボタンをクリックして新しい API キーを生成してください。

<div id="configure-delegated-administration-urls">
  ### Delegated Administration の URL を設定する
</div>

Delegated Administration Extension を使用している場合は、次の表に、Node 12 へ移行した後に設定が必要な更新済み URL を示しています。URL は利用するロケーションによって異なります。

| ロケーション | Node 12 用の Allowed Callback URL                                    | Node 12 用の Allowed Logout URL                                |
| ------ | ------------------------------------------------------------------ | ------------------------------------------------------------ |
| US-1   | `https://{yourTenant}.us12.webtask.io/auth0-delegated-admin/login` | `https://{yourTenant}.us12.webtask.io/auth0-delegated-admin` |
| US-3   | `https://{yourTenant}.us.webtask.run/auth0-delegated-admin/login`  | `https://{yourTenant}.us.webtask.run/auth0-delegated-admin`  |
| EU     | `https://{yourTenant}.eu12.webtask.io/auth0-delegated-admin/login` | `https://{yourTenant}.eu12.webtask.io/auth0-delegated-admin` |
| AU     | `https://{yourTenant}.au12.webtask.io/auth0-delegated-admin/login` | `https://{yourTenant}.au12.webtask.io/auth0-delegated-admin` |
| JP-1   | `https://{yourTenant}.jp.webtask.run/auth0-delegated-admin/login`  | `https://{yourTenant}.jp.webtask.run/auth0-delegated-admin`  |

たとえば、米国で Delegated Administration を使用している場合は、アプリケーションの Settings で次のフィールドを更新する必要があります。

* **Allowed Callback URLs**: `https://{yourTenant}.us12.webtask.io/auth0-delegated-admin/login`
* **Allowed Logout URLs**: `https://{yourTenant}.us12.webtask.io/auth0-delegated-admin`

<div id="configure-sso-dashboard-urls">
  ### SSO Dashboard の URL を設定する
</div>

以下の表には、Node 12 への移行後に設定が必要となる新しい URL を記載しています。URL はロケーションによって異なります。

Admins のログイン URL:

| Location  | Allowed Callback URL                                                    |
| --------- | ----------------------------------------------------------------------- |
| US-1      | `https://{yourTenant}.us12.webtask.io/auth0-sso-dashboard/admins/login` |
| US-3      | `https://{yourTenant}.us.webtask.run/auth0-sso-dashboard/admins/login`  |
| Europe    | `https://{yourTenant}.eu12.webtask.io/auth0-sso-dashboard/admins/login` |
| Australia | `https://{yourTenant}.au12.webtask.io/auth0-sso-dashboard/admins/login` |
| Japan     | `https://{yourTenant}.jp.webtask.run/auth0-sso-dashboard/admins/login`  |

Users のログイン URL:

| Location  | Allowed Callback URL                                             |
| --------- | ---------------------------------------------------------------- |
| US-1      | `https://{yourTenant}.us12.webtask.io/auth0-sso-dashboard/login` |
| US-3      | `https://{yourTenant}.us.webtask.run/auth0-sso-dashboard/login`  |
| Europe    | `https://{yourTenant}.eu12.webtask.io/auth0-sso-dashboard/login` |
| Australia | `https://{yourTenant}.au12.webtask.io/auth0-sso-dashboard/login` |
| Japan     | `https://{yourTenant}.jp.webtask.run/auth0-sso-dashboard/login`  |

<div id="update-extensions">
  ### Extensions を更新する
</div>

ほとんどの拡張機能では、認証のために `PUBLIC_WT_URL` の非表示のシークレットを使用します。このシークレットはランタイムのバージョンに依存しており、自動的には更新されません。

これを更新するには、拡張機能の設定を保存する必要があります (変更は不要です) 。そのためには、ランタイムを `Node 12` に切り替えたあと、Extensions ダッシュボード (歯車アイコン) で対象の拡張機能の設定を開き、`Save` をクリックします。すると、拡張機能ギャラリーが選択したランタイムに基づいて `PUBLIC_WT_URL` シークレットを更新します。

`PUBLIC_WT_URL` の非表示のシークレットを更新しない場合は、次のエラーが表示されます。

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4mq5ebCa83XNLlbn28pp9s/beb869df9a11d188f30332030655ac9d/node-hidden-secret-error.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=e08236377c71df799eb94a413cf6ded2" alt="設定ミスまたはサービス停止エラー" width="1431" height="1055" data-path="docs/images/cdy7uua7fh8z/4mq5ebCa83XNLlbn28pp9s/beb869df9a11d188f30332030655ac9d/node-hidden-secret-error.png" />
</Frame>

<div id="update-pinned-modules">
  ### 固定したモジュールを更新する
</div>

次の組み込みモジュール (つまり、明示的に `require` していないモジュール) を使用している場合は、一部のバージョンが Node 12 で動作するよう更新されています。変更点の概要は以下の表のとおりです。これらの新しいバージョンは、以前のバージョンとの後方互換性を維持しているはずです。

| モジュール名    | 旧バージョン  | 新バージョン |
| --------- | ------- | ------ |
| couchbase | \~2.5.1 | 2.6.10 |
| bcrypt    | 1.0.3   | 3.0.8  |

モジュールのバージョンを手動で固定している場合は、コードが Node 12 で動作するよう、それらも手動で更新する必要があることがあります。

たとえば、次のような記述は変更する必要があります。

`var bcrypt = require(‘bcrypt@1.0.3’);`

これを

`var bcrypt = require(‘bcrypt’);`

に変更します。

または、モジュールを特定のバージョンに固定する必要がある場合は、次のようにします。

`var bcrypt = require(‘bcrypt@3.0.8’);`
