O’REILLY Learning「Mastering API Architecture」6〜10
https://learning.oreilly.com/library/view/mastering-api-architecture/9781492090625/
Chapter 6. Operational Security: Threat Modeling for APIs
Open Web Application Security Project(OWASP)
ソフトウェアのセキュリティ向上に取り組む非営利財団
OWASP API Security Top 10
https://owasp.org/www-project-api-security/
Threat Modeling 101
「アプリケーションに影響を及ぼす可能性のある脅威、攻撃、脆弱性、および対策を特定するために使用できる手法」
ソフトウェア開発ライフサイクル全体に組み込むべきプロセスです。
理想的には、プロジェクトの開始時に実施し、システムやアーキテクチャの進化に合わせて継続的に見直します。
アプローチ
・目的を特定する
・正しい情報を集める
・システムを分解する
・脅威の特定
・脅威のリスクを評価する
・検証
STRIDE:Spoofing、Tampering、Repudiation、Information disclosure、Denial of Service、Elevation of privilege
DREAD:Damage、Reproducibility、Exploitability、Affected Users、Discoverability
Chapter 7. API Authentication and Authorization
OAuth2
OAuth2 specification:https://datatracker.ietf.org/doc/html/rfc6749
役割定義
・Resource Owner
・Authorization Server
・Client
・Resource Server
Multi-Factor Authentication (MFA)
JavaScript Object Notation (JSON) Web Tokens:JWT、ジョット
OAuth2の事実上の標準トークン
エンコード機構
・JSON Web Signatures (JWS):https://datatracker.ietf.org/doc/html/rfc7515
・JSON Web Encryption (JWE):https://datatracker.ietf.org/doc/html/rfc7516
Authorization Code Grant:https://datatracker.ietf.org/doc/html/rfc6749#section-4.1
Part IV. Evolutionary Architecture with APIs
Chapter 8. Redesigning Applications to API-Driven Architectures
APIはモジュールやコンポーネントの境界となり得るため、システムを高度に結合させ、疎結合にしようとする場合、APIは自然に活用できるポイントになる。
For example, systems can be coupled in a number of ways:
・Functional cohesion
・Sequential cohesion
・Communicational cohesion
・Procedural cohesion
・Temporal cohesion
・Logical cohesion
・Coincidental cohesion
→Joseph Ingeno’s Software Architect’s Handbook
Using Fitness Functions
・Code Quality
・Resiliency
・Observability
・Performance
・Compliance
・Security
・Operability
APIへの移行を支援するアーキテクチャパターン
・Strangler Fig
・Facade and Adapter
・API Layer Cake
Chapter 9. Using API Infrastructure to Evolve Toward Cloud Platforms
クラウド移行の「6つのR」
・Retain or Revisit
・Rehost(lift-and-shift)
・Replatform(lift-tinker-and-shift)
・Repurchase
・Refactor/Re-architect
・Retire
Zero Trust Architecture
Chapter 10. Wrap-up
未来への準備
・Async Communication
・HTTP/3
・Platform-based Mesh