Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FC Tokyo2025 フロントエンドで実現するアクセス制御入門
Search
E_Chanoknan
September 21, 2025
2
550
FC Tokyo2025 フロントエンドで実現するアクセス制御入門
E_Chanoknan
September 21, 2025
Tweet
Share
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
A Soul's Torment
seathinner
5
2.3k
Designing Experiences People Love
moore
144
24k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
The Pragmatic Product Professional
lauravandoore
37
7.1k
4 Signs Your Business is Dying
shpigford
187
22k
Music & Morning Musume
bryan
47
7.1k
Code Review Best Practice
trishagee
74
20k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Transcript
フ ロ ン ト エ ン ド で 実 現
す る ア ク セ ス 制 御 入 門 フロントエンドカンファレンス東京2025 EC-9624(@e_chanoknan)
自己紹介 Eakudompong Chanoknan エークドッムポン チャノックナン 株式会社 PRTIMES 2025年新卒 主にフロントエンド領域を担当しています。 X:@e_chanoknan タイ・バンコク出身
Agenda アクセス制御とは? 01. アクセス制御モデル RBAC VS ABAC 02. CASLで実装するABAC 03.
Policy-as-Code 04. まとめ 05.
アクセス制御とは?
あなたは誰ですか? Who are you? あなたは何を許可されていますか? What are you allowed to
do?
アクセス制御 誰が・どのリソースに・何ができるかを定義する 主な2つの役割: 認証(Authentication) — あなたが誰であるかの確認 認可(Authorization) — 何を行う権限があるかの確認 アクセス制御モデル:
Role-base access control Attribute-Based Access Control
Role-Based Access Control
RBAC RBAC (Role-Based Access Control) アクセス判断は、ユーザーに割り当てられたロールに基づいて行われる。 ユーザーはロール(例:‘admin’、‘manager’、‘employee’)を通じて 権限を得る。 例: managerのロールは従業員記録にアクセスできる。
adminのロールは給与データにアクセスできる。 メリット: 実装が容易 デメリット: 柔軟性に欠ける 制御が複雑になるとがロール急増してしまう
Attribute-Based Access Control
ABAC ABAC (Attribute-Based Access Control) アクセス判定はユーザー(主体) 、リソース(対象) 、アクション、環境の 属性に基づいて行われます。 例:
ユーザー: ロール, 部署, 位置情報 アクション: 作成、編集、削除 リソース: カテゴリ, オーナー 環境: 時間、デバイス、ネットワーク メリット 柔軟・細粒度・コンテキストに応じたルールが可能。 デメリット 設計と保守がより複雑になります。
OWASP のガイダンス OWASP Authorization Cheat Sheet は、単純な RBAC の限界を指摘。 より柔軟で安全な
ABAC/リレーションシップベースのモデルを推奨。 以降のフロントエンド例でRBACの限界を説明します。 RBAC VS ABAC
Requirments: Admin すべてを管理可能。 Editor 新規ブログを作成とブログ編集できますが、ブログを削除できない。 例:ブログ配信サービス
要件を最初に見たとき、おそらくこんな感じでやると思います。 でも、このやり方だと、新しいロールが追加されたり権限が変更されたりす るたびに、チェックを行っている箇所をすべて修正しなければならないとい う問題があります
None
ロールや権限が追加する場合 このファイルのみを編集する。
None
ここで要件が変更され、より強力なアクセス制御を適用したいと考えます。 要件: 管理者(Admin) :すべてを管理できる 編集者(Editor) :割り当てられたカテゴリー内で自分のポストを編集・ 削除できるが、公開済みの投稿は削除できない この要件は少し複雑なので、モデルを ABAC に変更し、実装には
CASL とい うライブラリを使用します。 例:ブログ配信サービス
CASLはフロントエンドで ABACスタイルのチェックを実装できる。
None
フロントエンドの責務: ユーザーが実行できない操作を示すUI要素を表示しない Fail-fastなUX: ボタンを非表示/無効化する、ルートをガードする セキュリティにはならない。 認可は必ず サーバー側 で強制すること フロントエンドだけのチェックの限界
スケーリングの問題 バックエンドとフロントエンドも権限を統一しなければならない。 システムがない場合: フロントとバックで権限ロジックが重複。 同期が難しい。 新しいロールや権限を追加するたびにコードを複数箇所編集。 解決策: Policy-as-Code 権限ロジックを宣言的ファイル(YAML/JSON)に保存。 共通エンジン(CEL
など)で評価。 ソースコードとして管理
リーソース アクション Cel evaluator で評価
ポイント: condition は CEL で評価。 同じポリシーファイルをバックエンドでもフロントエンドでも利用可能。(Single Source of truth) バックエンドが強制、フロントエンドは
UI 表示用に消費。 POLICY AS CODE
まとめ RBAC はシンプルだが限界あり。 ABAC(OWASP 推奨)は柔軟で強力。 CASL でフロントエンドでも ABAC を実現可能だが、サーバー側での enforcement
は必須。 Policy-as-Code でスケールし、Single Source of truthを実現。 フロントとバックで同じルールを使うことで、一貫性と保守性が向上。
参照 https://casl.js.org/v6/en/guide/intro https://cheatsheetseries.owasp.org/cheatsheets/Authorizati on_Cheat_Sheet.html https://github.com/WebDevSimplified/permission-system/ https://www.reactmiami.com/speakers/prasad
ご清聴ありがとうございました!