Auth0 では、ロールベースのアクセス制御 (RBAC) を実装する方法が 2 つ用意されており、API 独自の内部アクセス制御システムの代わりに、またはそれと組み合わせて使用できます。Authorization Core の機能セットは Authorization Extension の機能に対応しており、パフォーマンスとスケーラビリティを向上させるほか、Authorization Extension よりも柔軟な RBAC システムを提供します。現在は、どちらも RBAC の主要な機能を実装しており、API に対して定義されたカスタムスコープを、権限としてユーザーに割り当てられたもののみに制限できます。
- 発行されたトークンにカスタムクレームを追加する。
- ユーザーが所属するグループ、ロール、権限を特定する。
- ユーザーのグループ、ロール、権限に関する情報を
app_metadataの一部として保存する。 - ユーザーのグループ、ロール、権限を返されるトークンに追加する (これは
openid groups permissions rolesスコープでリクエストできます) 。
発行されたトークンにカスタムクレームを追加する
/authorize エンドポイントを呼び出す場合や Lock を設定する場合は、groups、permissions、および/または roles を指定して、必要な情報を scope に含める必要があります。
アプリへのアクセスを制御する
アプリのメタデータに必要なロールを設定する
-
required_rolesを含むcontext.clientMetadataフィールドを設定するには、Auth0 Dashboard > Applications > Applications で対象のアプリケーションを選択します。 アプリケーションの Settings が開いたら、下にスクロールしてページ下部の Show Advanced Settings を選択します。 - Application Metadata で項目を追加し、Key に
required_rolesを設定して、Value フィールドにロールをカンマ区切りで入力します。+ Add を選択してフィールドを追加します。 - 完了したら、Save Changes を選択します。これで、このアプリケーションからログインすると、
context.clientMetadataに、入力したロール値の文字列を持つrequired_rolesが含まれるようになります。
アプリのロールを適用する Rules を作成する
- この Rules を作成する前に、Token Contents で Roles を有効にし、Authorization Extension の Rules を公開します。
- この Rules を追加し、自動生成された “auth0-authorization-extension” ルール の後に配置されていることを確認します。
-
required_rolesを設定したら、次の内容で新しい ルール を作成します。