> ## 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 でルールを活用する方法を見ていきましょう。

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

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

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

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

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

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

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

さらに、管理しやすくするために、`Gift Shop Manager` という[ロールを作成](/docs/ja-jp/manage-users/access-control/configure-core-rbac/roles/create-roles)し、[そのロールにこれらの権限を追加](/docs/ja-jp/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` の[ロールを割り当てる](/docs/ja-jp/manage-users/access-control/configure-core-rbac/rbac-users/assign-roles-to-users)ことができます。このロールを Astrid に割り当てると、そのロールに割り当てたすべての権限が Astrid に付与されます。Astrid はニュースレター配信について何も知らず (しかもメールもあまり得意ではない) ため、`Newsletter Admin` ロールは割り当てません。したがって、彼女がマーケティングモジュールにアクセスすることはありません。

もう少し技術的な観点で見ると、Astrid があなたの製品にログインすると、Auth0 は彼女を認証・認可し、返された<Tooltip tip="アクセストークン: API へのアクセスに使用される、opaque な文字列または JWT 形式の認可クレデンシャル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Access+Token">アクセストークン</Tooltip>に権限を含めます。その後、あなたの製品はトークンを確認し、Astrid にどのモジュールを表示するかを判断します。

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

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