Auth0 Dashboard の ルール 移行ツールを使用すると、ルール から Actions への移行プロセスを簡素化できます。新しいツールは、ルール から Action への切り替えを容易にするだけでなく、一般的な ルール パターンに対する組み込みのガイダンスや修正も提供します。
移行を始める前に、ルールからActionsへの移行を参照してください。この移行ガイドでは、ルールとActionsの違いをわかりやすく説明しており、移行を進める際に役立ちます。
ルールは Actions より前に実行されるため、ルールは実行順の逆順で移行する必要があります。既存のフローで最後に実行される ルール から移行を始め、そこから時系列をさかのぼって最初の ルール へ進めてください。
この順序で移行しないと、ルール と Actions の実行順における依存関係によって予期しない副作用が生じ、エラーが発生する可能性があります。
移行ツールを使えば、問題が発生しても安全かつ簡単にロールバックできます。ルール を再度有効にし、対応する Action のロジックはスキップしてください。
ルール の移行を開始するには、Auth Pipeline > Rules を選択します。選択すると、ルールが表示され、各ルールを個別に移行するためのオプションが表示されます。
Migrate to Action を選択しても、その時点では移行が開始されるだけです。新しい Action をいつ有効化するかは、開発者が選べます。
Migrate to Action を選択すると、ツールで新しい Action を作成するよう求められます。
Create を選択すると、新しい Action が作成され、Actions Editor が表示されます。
ルールが Actions に移行され、なおかつ有効なままの場合は、ロジックが実行される前にそのルールが終了します。
これは api.rules.wasExecuted() を呼び出すことで実現されます。wasExecuted 関数にルール ID を含む文字列を渡すと、そのルールがすでに実行されている場合は true を返し、そうでない場合は false を返します。
これにより、ロジックが二重に実行されるのを防げます。参照先のルールを無効にすると、この関数は false を返すようになり、以降は Action 内でビジネスロジックが実行されます。
ルール ID の値は、Migrate to Action 機能を使って移行されたすべてのルールに対して自動的に設定されます。
api.rules.wasExecuted() 関数の詳細については、Actions Triggers: post-login - API Object を参照してください。
Actions Editor で ルール ボタンを選択し、ルール移行ツールを開きます。ここでは、移行された 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 を選択し、選択されているルールを無効化 すると、新しい Action を有効にし、元の ルール を同時に無効化できます。まだ準備ができていない場合は、Cancel を選択してください。ルール は後で無効化して、移行した Action ロジックを有効にすることもできます。
Action をフローに追加する方法について詳しくは、最初の Action を作成する を参照してください。
ルール を再度有効にすると、対応する Action ロジックはスキップされます。
このプロセスは、ログインフロー内の各 ルール を移行する際に繰り返し実行できます。ルールは、ログインフローで実行される順序とは逆の順番で移行する必要があることに注意してください。