メインコンテンツへスキップ
2019 年 12 月 31 日をもって、Node.js v8 の長期サポート (LTS) が終了しました。これは、Node.js 開発チームがこのバージョンに対する重要なセキュリティ修正をバックポートしなくなったことを意味します。その結果、拡張機能のコードがセキュリティ脆弱性にさらされる可能性があります。そのため、Auth0 は Node 8 から Node 12 へ移行しました。

影響を受ける機能

以下の Auth0 の機能は Node 8 を使用しています:
  • Rules
  • Hooks
  • カスタムデータベース接続
  • カスタムソーシャル接続
  • 拡張機能
上記の拡張機能をいずれも使用していない場合、この移行の影響はありません。

タスク

Webtask ランタイムに Node 12 を導入するプロセスの一環として、Node 8 から 12 への移行で互換性のないモジュールを特定するために、複数のテストを実施しました。ほとんどのお客様は、問題なく Node 12 にアップグレードできます。 ただし、移行前に、以下のすべてをテストすることを強くお勧めします。
  • Rules
  • Hooks
  • カスタムデータベース接続とスクリプト
  • カスタムソーシャル接続
  • 拡張機能
Auth0 では、まず開発テナントを Node 12 ランタイムに切り替え、開発テナントでテストを完了したうえで、開発環境で問題がないことを確認してから本番テナントを移行することを推奨しています。

Node 12 ランタイムを有効にする

この移行に伴って追加の動作変更が発生する可能性があるため、Node 12 を使用する新しい Webtask ランタイムへの環境の移行を制御できる移行スイッチを用意しています。 Auth0 では、まず開発テナントを Node 12 ランタイムに切り替え、開発テナントでテストを完了して、開発環境で問題がないことを確認してから本番テナントを移行することを推奨しています。 Management API を使用して、Rules、Hooks、カスタムデータベーススクリプト、カスタムソーシャル接続を確認できます。これにより、テスト目的で本番テナントから開発テナントへ項目を移しやすくなります。 の Connections エンドポイントを使用すると、カスタムデータベーススクリプトは options.customScripts を使用して取得または更新できます。同様に、カスタムソーシャル接続は options.scripts.fetchUserProfile で確認できます。
  1. Dashboard の 高度なテナント設定 ページにある新しい 拡張機能 パネルを使用して、開発テナントで Node 12 を有効にします。Runtime ドロップダウンから Node 12 を選択します。
  2. Save をクリックします。
  3. 以下に示す項目を使用している場合は、それぞれの移行手順を完了します。
  4. 設定をテストします。
  5. 問題が発生していないことを確認したら、上記の手順 1 と 2 を使用して本番テナントで Node 12 を有効にします。

新しい URL を許可リストに追加する

Delegated Administration Extension と (SSO) Dashboard Extension では、拡張機能やカスタム webtask へのアクセスに使用する URL を許可リストに登録する必要があります。Node 12 にアップグレードすると、拡張機能やカスタム webtask へのアクセスに使用する URL が変更されます。これは、これらの拡張機能にとって互換性のない変更です。 これらの拡張機能のいずれかを使用している場合は、新しい URL を Allowed Callback URLsAllowed 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. Dashboard > Applications > Applications > Settings に移動し、Allowed Callback URLs フィールドと Allowed Logout URLs フィールドに URL を追加します。
  2. Auth0 コンテナ内のカスタム webtask の実行 URL も変更されます。これらの webtask を呼び出す外部アプリケーションも更新する必要があります。

Authorization Extension の Rule を再公開する

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

Delegated Administration の URL を設定する

Delegated Administration Extension を使用している場合は、Node 12 への移行後に設定する必要がある更新済み URL を以下の表で確認できます。URL は利用リージョンによって異なります。
地域Node 12 用の Allowed Callback URLNode 12 用の Allowed Logout URL
US-1https://{yourTenant}.us12.webtask.io/auth0-delegated-admin/loginhttps://{yourTenant}.us12.webtask.io/auth0-delegated-admin
US-3https://{yourTenant}.us.webtask.run/auth0-delegated-admin/loginhttps://{yourTenant}.us.webtask.run/auth0-delegated-admin
EUhttps://{yourTenant}.eu12.webtask.io/auth0-delegated-admin/loginhttps://{yourTenant}.eu12.webtask.io/auth0-delegated-admin
AUhttps://{yourTenant}.au12.webtask.io/auth0-delegated-admin/loginhttps://{yourTenant}.au12.webtask.io/auth0-delegated-admin
JP-1https://{yourTenant}.jp.webtask.run/auth0-delegated-admin/loginhttps://{yourTenant}.jp.webtask.run/auth0-delegated-admin
たとえば、米国リージョンで Delegated Administration を使用している場合は、アプリケーション設定で次のフィールドを更新する必要があります。
  • Allowed Callback URLs: https://{yourTenant}.us12.webtask.io/auth0-delegated-admin/login
  • Allowed Logout URLs: https://{yourTenant}.us12.webtask.io/auth0-delegated-admin

SSO Dashboard の URL を設定する

以下の表には、Node 12 への移行後に設定が必要な更新済み URL を示します。URL は使用する地域によって異なります。 Admin 向けのログイン URL:
地域Allowed Callback URL
US-1https://{yourTenant}.us12.webtask.io/auth0-sso-dashboard/admins/login
US-3https://{yourTenant}.us.webtask.run/auth0-sso-dashboard/admins/login
Europehttps://{yourTenant}.eu12.webtask.io/auth0-sso-dashboard/admins/login
Australiahttps://{yourTenant}.au12.webtask.io/auth0-sso-dashboard/admins/login
Japanhttps://{yourTenant}.jp.webtask.run/auth0-sso-dashboard/admins/login
ユーザー向けのログイン URL:
地域Allowed Callback URL
US-1https://{yourTenant}.us12.webtask.io/auth0-sso-dashboard/login
US-3https://{yourTenant}.us.webtask.run/auth0-sso-dashboard/login
Europehttps://{yourTenant}.eu12.webtask.io/auth0-sso-dashboard/login
Australiahttps://{yourTenant}.au12.webtask.io/auth0-sso-dashboard/login
Japanhttps://{yourTenant}.jp.webtask.run/auth0-sso-dashboard/login

拡張機能を更新する

ほとんどの拡張機能では、認可に PUBLIC_WT_URL の非表示のシークレットを使用します。このシークレットはランタイムのバージョンに依存しており、自動的には更新されません。 これを更新するには、拡張機能の設定を保存する必要があります (変更は不要です) 。そのためには、ランタイムを Node 12 に切り替えた後、Extensions の Dashboard で拡張機能の設定 (歯車アイコン) を開き、Save をクリックします。その後、extensions gallery により、選択したランタイムに基づいて PUBLIC_WT_URL シークレットが更新されます。 PUBLIC_WT_URL の非表示のシークレットを更新しない場合は、次のエラーが表示されます。
設定ミスまたはサービス停止エラー

固定したモジュールを更新する

次の組み込みモジュール (つまり、明示的に require していないモジュール) を使用している場合は、一部のバージョンが Node 12 で動作するよう更新されています。変更点の概要を次の表に示します。これらの新しいバージョンは、以前のバージョンとの下位互換性を維持しているはずです。
モジュール名旧バージョン新バージョン
couchbase~2.5.12.6.10
bcrypt1.0.33.0.8
モジュールのバージョンを手動で固定している場合は、コードが Node 12 で実行されるよう、手動で更新が必要になることがあります。 たとえば、次のように変更する必要があります。 var bcrypt = require(‘bcrypt@1.0.3’); var bcrypt = require(‘bcrypt’); に変更します。 または、モジュールを特定のバージョンに固定する必要がある場合は、次のようにします。 var bcrypt = require(‘bcrypt@3.0.8’);