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

影響を受ける機能

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

Tasks

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

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

この移行により、追加の動作変更が生じる可能性があります。そのため、Node 12 を使用する新しい Webtask ランタイムへの環境移行を制御できる移行スイッチを用意しています。 Auth0 では、まず開発テナントを Node 12 ランタイムに切り替え、開発テナントでのテストを完了して、開発環境で問題がないことを確認してから本番テナントを移行することを推奨しています。 ルール、Hooks、カスタムデータベーススクリプト、カスタムソーシャル接続については、Management API を使用して確認できます。これにより、テスト目的で項目を本番テナントから開発テナントへ移しやすくなります。 の Connections エンドポイントを使用すると、カスタムデータベーススクリプトは options.customScripts を使って取得または更新できます。同様に、カスタムソーシャル接続は options.scripts.fetchUserProfile で確認できます。
  1. Auth0 Dashboard の Advanced Tenant Settings ページにある新しい Extensibility パネルを使用して、開発テナントで 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 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 に移動し、URL を Allowed Callback URLs フィールドと Allowed Logout URLs フィールドに追加します。
  2. Auth0 コンテナ内のカスタム webtask の実行 URL も変更されます。これらの webtask を呼び出す外部アプリケーションは更新が必要です。

Authorization Extension のルールを再公開する

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 キーを生成してください。

Delegated Administration の URL を設定する

Delegated Administration Extension を使用している場合は、次の表に、Node 12 へ移行した後に設定が必要な更新済み URL を示しています。URL は利用するロケーションによって異なります。 たとえば、米国で 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

SSO Dashboard の URL を設定する

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

Extensions を更新する

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

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

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