> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> さまざまなシナリオでロールベースの認可（RBAC）を実装する方法と、RBAC で Rules を活用する方法について説明します。

# サンプルユースケース: ロールベースのアクセス制御

[ロールベースのアクセス制御 (RBAC) ](/ja/docs/manage-users/access-control/rbac) がなぜ必要になるのか、また、<Tooltip tip="認可フロー: OAuth 2.0 フレームワークで規定される認可グラント（またはワークフロー）。" cta="用語集を表示" href="/ja/docs/glossary?term=authorization+flow">認可フロー</Tooltip>でどのように活用できるのかを、例を使って見ていきましょう。

たとえば、非営利団体向けに B2B の SaaS を提供している企業だとします。あなたの製品では、非営利団体が見込み寄付者向けの商品を作成、管理、販売促進できます。アプリケーションには複数のモジュールがあり、そのうち 2 つは次のとおりです。

* 非営利団体がポップアップの T シャツショップを効率的に立ち上げ、売上を管理できるギフトショップの point of sale (POS) モジュール。
* 非営利団体が寄付者向けのニュースレターを作成して配信できるマーケティングモジュール。

非営利団体の顧客がアプリケーション内の異なる機能にアクセスできる範囲を制御するために、Auth0 を使いたいと考えています。RBAC がなければ、すべての非営利団体の従業員やボランティアがアプリケーションのすべての機能にアクセスできてしまいます。これは理想的ではありません。特に、そのうちの 1 団体が動物保護団体で、各ボランティアが自分の担当分野についてしか知識を持っていない場合はなおさらです。

そこで RBAC を実装し、ギフトショップ POS モジュールのユーザーに必要な[いくつかの権限を作成](/ja/docs/get-started/apis/add-api-permissions)します。

* `read:catalog-item`
* `read:customer-profile`
* `create:invoice`

さらに、これらを管理しやすくするために、`Gift Shop Manager` という名前の[ロールを作成](/ja/docs/manage-users/access-control/configure-core-rbac/roles/create-roles)し、[これらの権限をそのロールに追加](/ja/docs/manage-users/access-control/configure-core-rbac/roles/add-permissions-to-roles)します。

同様に、マーケティングモジュールのユーザー向けにも次の権限を作成します。

* `create:newsletter`
* `edit:newsletter`
* `delete:newsletter`
* `send:newsletter`
* `edit:distribution-list`

そして、`Newsletter Admin` というロールを作成し、これらの権限をそのロールに追加します。

これで、動物保護団体がポップアップ T シャツショップの運営担当としてボランティアの Astrid を迎えたとき、Astrid には `Gift Shop Manager` の[ロールを割り当てる](/ja/docs/manage-users/access-control/configure-core-rbac/rbac-users/assign-roles-to-users)ことができます。このロールを Astrid に割り当てると、そのロールに設定したすべての権限が付与されます。Astrid はニュースレターの配信については何も知らず (メールもあまり得意ではないため) 、`Newsletter Admin` ロールは割り当てていないので、マーケティングモジュールにアクセスすることはありません。

より技術的に言うと、Astrid が製品にログインすると、Auth0 が Astrid を認証および認可し、返される<Tooltip tip="アクセストークン: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報。" cta="用語集を表示" href="/ja/docs/glossary?term=Access+Token">アクセストークン</Tooltip>に権限を含めます。その後、製品側でトークンを確認し、Astrid にどのモジュールを表示するかを判断します。

Auth0 の RBAC を使用することで、個別の認可システムを構築して保守する必要がなくなります。代わりに、認可時にすでに受け取っているトークンを利用できます。そして、Astrid が引っ越したり、ギフトショップの運営をやめて里親プログラムの調整役を担当したくなった場合でも、Astrid から [Gift Shop Manager ロールを簡単に削除](/ja/docs/manage-users/access-control/configure-core-rbac/rbac-users/remove-roles-from-users)し、新しいロールを割り当てることができます。

さらに、すべての顧客についてロールと権限を管理するのが煩雑になりすぎた場合は、Auth0 API を使用して、顧客自身が RBAC を管理できるモジュールを製品内に作成することもできます。これにより、責任を軽減し、人件費を削減できます。
