メインコンテンツへスキップ
Auth0 Actionsは、事前構成された認可ポリシーの決定結果を修正または補完できるため、Role-based Access Control(RBAC)だけでは対応できないより複雑なケースを処理することができます。Actionsは実行順序に基づいて、アクセストークンにアクセス許可が追加される前に、認可での決定を変更することができます。また、トークンの内容をカスタマイズすることもできます。

特定のアプリケーションに平日のみのアクセスを許可する

たとえば、平日のみにアクセスを許可したいアプリケーションがあるとします。新しいアクションを作成し、ログインフローにアクションを追加するためにLogin / Post Loginトリガーを選択します。以下のコードを[Actions Code Editor(アクションコードエディター)]にコピーします。
そして、作成したアクションをログインフローに追加します。Actionsをフローにアタッチする方法については、「初めてアクションを作成する」の「アクションをフローにアタッチする」セクションをお読みください。 ユーザーが週末にアプリケーションにアクセスしようとした場合には、たとえ認証され、適切な権限があったとしても、アクセスが拒否されます。

企業ネットワーク内部のユーザーにのみアクセスを許可する

たとえば、アプリケーションへのアクセスを許可するのに、企業ネットワークの内側からアクセスするユーザーに限定したいとします。新しいアクションを作成し、ログインフローにアクションを追加するためにLogin / Post loginトリガーを選択します。以下のコードをActionsコードエディターにコピーします。
そして、作成したアクションをログインフローに追加します。Actionsをフローにアタッチする方法については、「初めてアクションを作成する」の「アクションをフローにアタッチする」セクションをお読みください。 ユーザーが企業ネットワークの外側にいる場合には、たとえ認証に成功して、適切な権限があったとしても、アクセスが拒否されます。
ipaddr.jsなどのnpmライブラリーを使用する場合は、依存関係としてアクションに追加しなければなりません。詳細については、「初めてアクションを作成する」の「依存関係を追加する」セクションをお読みください。

APIを呼び出すユーザーすべてのアクセスを拒否する

たとえば、APIを呼び出すユーザーのすべてに対して、アクセスを拒否したいとします。つまり、[Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]から、APIオーディエンス フィールドに記載された識別子の値に基づいてアクセスを拒否する必要があります。新しいアクションを作成し、ログインフローにアクションを追加するためにLogin / Post loginトリガーを選択します。以下のコードをActionsコードエディターにコピーします。
そして、作成したアクションをログインフローに追加します。Actionsをフローにアタッチする方法については、「初めてアクションを作成する」の「アクションをフローにアタッチする」セクションをお読みください。 この場合、APIのidentifierの値はhttps://api.example.comであり、これが拒否する対象となるオーディエンスです。

ユーザーのロールをトークンに追加する

Auth0が発行したトークンにユーザーロールを追加するには、event.authorizationオブジェクトとapi.idToken.setCustomClaimおよびapi.accessToken.setCustomClaimメソッドを使用します。新しいアクションを作成し、ログインフローにアクションを追加するためにLogin / Post loginトリガーを選択します。以下のコードをActionsコードエディターにコピーします。
そして、作成したアクションをログインフローに追加します。Actionsをフローにアタッチする方法については、「初めてアクションを作成する」の「アクションをフローにアタッチする」セクションをお読みください。 注意:
  • 要求元のアプリケーションに返されるは、トリガー処理の終わりに作成され、署名されます。最終の署名されたJWTは、アクションでは処理できません。