Auth0 Dashboard の Rule 移行ツールを使用すると、Rules から Actions への移行を簡素化できます。Rule から Action への移行を容易にするだけでなく、この新しいツールには、一般的な Rule パターンに対応する組み込みのガイダンスや修正機能も用意されています。
移行を開始する前に、Rules から Actions への移行を参照してください。この移行ガイドでは、Rules と Actions の違いをわかりやすく説明しており、移行を進める際に役立ちます。
Rules は Actions より先に実行されるため、Rules は実行順の逆順で移行する必要があります。現在のフローで最後に実行される Rule から移行を始め、そこから時系列をさかのぼって最初の Rule まで進めてください。
この順序で移行しないと、Rules と Actions の実行順の依存関係による想定外の副作用が原因で、エラーが発生する可能性があります。
移行ツールを使用すると、問題が発生した場合でも、安全かつ簡単にロールバックできます。Rule を再び有効にし、対応する Action のロジックをスキップしてください。
Rule の移行を開始するには、Auth Pipeline > Rules を選択します。選択すると、各 Rule を個別に移行するオプションが表示されます。
Migrate to Action を選択すると、開始されるのは移行プロセスのみです。新しい Action をいつ有効化するかは、開発者が選択できます。
Migrate to Action を選択すると、新しい Action を作成するようツールによって促されます。
Create を選択すると、新しい Action が作成され、Actions Editor が表示されます。
Rule が Actions に移行され、なお有効なままの場合、その Rule はロジックが実行される前に終了します。
これは、api.rules.wasExecuted() を呼び出すことで実現されます。wasExecuted 関数に Rule ID を含む文字列を渡すと、その Rule がすでに実行されていれば true を返し、そうでない場合は false を返します。
これは、ロジックが 2 回実行されるのを防ぐのに役立ちます。参照先の Rule を無効にすると、この関数は false を返すようになり、以後は Action 内でビジネスロジックが実行されます。
Rule ID の値は、Migrate to Action 機能を使用して移行されたすべての Rule で自動的に設定されます。
api.rules.wasExecuted() 関数の詳細については、Actions Triggers: post-login - API Object を参照してください。
Actions Editor で Rules ボタンを選択し、Rules Migration ツールを読み込みます。ここでは、移行された Rule のコードをすばやく参照できます。サイドバーで、選択した Rule のコードを確認してください。
Rule 関数の内容をコピーし、Action の // YOUR CODE HERE コメントの下に貼り付けます。このコードは、Actions のプログラミングモデルに合わせて調整されていない可能性があります。
Actions Editor では、コードのリファクタリングが必要な箇所についてフィードバックが表示されます。また、多くのケースでは自動修正の提案も表示されます。提案や修正内容を確認するには、下線付きのコードにカーソルを合わせます。
Quick Fix モーダルでオプションを選択すると、Action 固有の更新を適用できる場合があります。
推奨される修正を選択すると、コードは互換性のある形に自動的に更新されます。
修正を自動的に適用できない場合でも、ガイダンスは表示されます。
たとえば Rule の callback 関数では、エラー時には api.access.deny を使用し、成功時には単に return することが推奨されます。
Actions はエディター内で直接テストできます。これは移行作業の重要な一部です。詳細については、Actions のテストを参照してください。
本番環境で有効にする前に、開発用テナントですべての移行ロジックを検証することを強く推奨します。
Action のコードを更新し、切り替える準備ができたら、次の手順を実行します。
- Deploy を選択します。
- デプロイを確認するアラートで、Add to flow を選択します。
- 新しく作成した Action をフローに追加し、Apply. を選択します。
- Continue を選択し、選択されている Rules を無効にします。これにより、新しい Action が有効になり、元の Rule は同時に無効になります。まだ準備ができていない場合は、Cancel を選択します。後で Rule を無効にして、移行した Action ロジックを有効にすることもできます。
Action をフローに追加する方法の詳細については、最初の Action を作成するを参照してください。
Rule を再度有効にすると、対応する Action ロジックはスキップされます。
このプロセスは、ログインフロー内の各Ruleの移行に対して繰り返し実行できます。Rulesは、ログインフローで実行される順序とは逆の順番で移行する必要があることに注意してください。