メインコンテンツへスキップ
ロールベースのアクセス制御 (RBAC) がなぜ必要になるのか、また、でどのように活用できるのかを、例を使って見ていきましょう。 たとえば、非営利団体向けに B2B の SaaS を提供している企業だとします。あなたの製品では、非営利団体が見込み寄付者向けの商品を作成、管理、販売促進できます。アプリケーションには複数のモジュールがあり、そのうち 2 つは次のとおりです。
  • 非営利団体がポップアップの T シャツショップを効率的に立ち上げ、売上を管理できるギフトショップの point of sale (POS) モジュール。
  • 非営利団体が寄付者向けのニュースレターを作成して配信できるマーケティングモジュール。
非営利団体の顧客がアプリケーション内の異なる機能にアクセスできる範囲を制御するために、Auth0 を使いたいと考えています。RBAC がなければ、すべての非営利団体の従業員やボランティアがアプリケーションのすべての機能にアクセスできてしまいます。これは理想的ではありません。特に、そのうちの 1 団体が動物保護団体で、各ボランティアが自分の担当分野についてしか知識を持っていない場合はなおさらです。 そこで RBAC を実装し、ギフトショップ POS モジュールのユーザーに必要ないくつかの権限を作成します。
  • read:catalog-item
  • read:customer-profile
  • create:invoice
さらに、これらを管理しやすくするために、Gift Shop Manager という名前のロールを作成し、これらの権限をそのロールに追加します。 同様に、マーケティングモジュールのユーザー向けにも次の権限を作成します。
  • create:newsletter
  • edit:newsletter
  • delete:newsletter
  • send:newsletter
  • edit:distribution-list
そして、Newsletter Admin というロールを作成し、これらの権限をそのロールに追加します。 これで、動物保護団体がポップアップ T シャツショップの運営担当としてボランティアの Astrid を迎えたとき、Astrid には Gift Shop Managerロールを割り当てることができます。このロールを Astrid に割り当てると、そのロールに設定したすべての権限が付与されます。Astrid はニュースレターの配信については何も知らず (メールもあまり得意ではないため) 、Newsletter Admin ロールは割り当てていないので、マーケティングモジュールにアクセスすることはありません。 より技術的に言うと、Astrid が製品にログインすると、Auth0 が Astrid を認証および認可し、返されるに権限を含めます。その後、製品側でトークンを確認し、Astrid にどのモジュールを表示するかを判断します。 Auth0 の RBAC を使用することで、個別の認可システムを構築して保守する必要がなくなります。代わりに、認可時にすでに受け取っているトークンを利用できます。そして、Astrid が引っ越したり、ギフトショップの運営をやめて里親プログラムの調整役を担当したくなった場合でも、Astrid から Gift Shop Manager ロールを簡単に削除し、新しいロールを割り当てることができます。 さらに、すべての顧客についてロールと権限を管理するのが煩雑になりすぎた場合は、Auth0 API を使用して、顧客自身が RBAC を管理できるモジュールを製品内に作成することもできます。これにより、責任を軽減し、人件費を削減できます。