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