認可 (Authorization)
認可とは、確認済みのユーザー(またはシステム)が特定のリソースにアクセスしたり、特定のアクションを実行したりする権限があるかどうかを判断するセキュリティプロセスです。
承認は、ユーザーが何を実行できるかを決定します。これは、ユーザーが誰であるかを確認する認証の後に続きます。承認は、ロールベースアクセス制御(RBAC)や属性ベースアクセス制御(ABAC)などのアクセス制御メカニズムに依存して、事前に定義されたルールとポリシーに基づいてアクセスを許可または拒否します。このプロセスは、ユーザーが使用を許可されたリソースと機能にのみアクセスできるようにし、セキュリティを強化し、不正な操作を防ぎます。
graph LR
Center["認可 (Authorization)"]:::main
Pre_authentication["authentication"]:::pre --> Center
click Pre_authentication "/terms/authentication"
Rel_rbac["rbac"]:::related -.-> Center
click Rel_rbac "/terms/rbac"
Rel_authentication["authentication"]:::related -.-> Center
click Rel_authentication "/terms/authentication"
Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
🔑 認証とは、あなたが誰であるかを確認するだけでなく、「どの本」を借りるのが許可されているかを確認するために、図書館員があなたの図書館カードをチェックするようなものです。
🤓 Expert Deep Dive
``markdown
## 技術仕様:認可 - 詳細分析
認可とは、認証されたプリンシパル(ユーザー、サービスなど)が特定の資源やアクションに対して持つアクセス権限と許可を検証し、強制するプロセスです。これは、認証が成功した後に行われます。
### コアコンセプト
認証との区別: 認証は身元を確認し(「あなたは誰か」)、認可は許可される操作を定義します(「何ができるか」)。
ポリシーベースの意思決定: 事前に定義されたポリシーをリクエストに対して評価することで、アクセスが許可または拒否されます。
権限の粒度: 権限は、広範なロールから、特定の資源に対するきめ細かなアクション(例:読み取り、書き込み、削除、実行)まで多岐にわたります。
リソース中心 vs.ID中心: 認可は、どのプリンシパルがリソースにアクセスできるかを定義するか、またはプリンシパルが許可されているリソースとアクションを定義することでモデル化できます。
コンテキストアウェアな認可: アクセス決定には、動的な環境要因(例:時間、場所、デバイスの姿勢)が考慮される場合があります。
### 認可モデル
アクセス制御リスト (ACL): プリンシパルへのアクセスを指定する、リソースに付与される権限。
ロールベースアクセス制御 (RBAC): 権限はロールに割り当てられ、そのロールがユーザーに割り当てられます。管理を簡素化します。
属性ベースアクセス制御 (ABAC): アクセス決定は、サブジェクト、オブジェクト、アクション、環境の属性を評価するポリシーに基づきます。非常に柔軟です。
ポリシーベースアクセス制御 (PBAC): アクセスは、明示的で宣言的なポリシーによって駆動されます。多くの場合、ABACを含みます。
### 認可決定ライフサイクル
ポリシー強制ポイント (PEP): リクエストを傍受し、意思決定のために転送します。
ポリシー決定ポイント (PDP): ポリシーを評価し、許可/拒否の決定を行います。
ポリシー情報ポイント (PIP): PDPにコンテキストまたは属性を提供します。
* ポリシー管理ポイント (PAP): ポリシーを管理します。
### 技術的考慮事項
IAM、データベースなどのデータストレージ、APIゲートウェイ、サービスメッシュなどの強制メカニズム、動的認可と静的認可、分散システム(JWT、マイクロサービス)の課題、スケーラビリティ、失効、監査、最小権限の原則、職務分掌などが含まれます。
### ELI5(5歳児にもわかる)アナロジー:図書館システム
認証は、図書館カードのためにIDを見せることです。認可は、そのカードで何ができるかです:本の貸し出し、学習室へのアクセス、または希少なアーカイブの閲覧などです。司書は、あなたのカードの権限を図書館の規則(ポリシー)と照合して、あなたのアクセスを決定します。
``