マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
7章
APIの認証と認可
前章で、APIサービスの脅威モデリングとOWASP API Security Top 10について学びました。Attendeeサービスは外部からの通信を受け入れる準備ができていますが、API利用者は具体的にどのように識別されるのでしょうか? 本章では、APIの認証と認可を説明していきます。認証は呼び出し元がだれであるかを示し、認可はユーザに許可されたアクションを意味します。
まず、API用の認証と認可の意味に焦点を当ててみましょう。これによって、APIセキュリティの重要性と、APIキーとトークンを利用する際の潜在的な制限が明らかになります。OAuth2は、2012年に導入されたトークンベースの認可フレームワークで、APIセキュリティを確保し、アプリケーションがAPIに対してどのアクションを実行できるかを判断するための業界標準となりました。この章の大部分は、OAuth2、およびエンドユーザとシステムの両方に提供されるセキュリティアプローチに焦点を当てます。API利用者は、自分が代理でアクションを実行しているユーザ詳細を知る必要があります。これがどのように実現できるかを示すために、OIDCを紹介します。
また、この章では、外部CFPシステムからのアクセスのため、Attendee APIサービスが準備すべき別なセキュリティアプローチを説明します。
7.1 認証
認証(Authentication)は、身元(Identity)を確認する行為です。ユーザの場合、最も伝統的な方法は、ユーザがユーザ名とパスワードの形で認証情報を提示することです。現在では、多要素認証(Multi-Factor Authentication、MFA)*1が標準のログインフローの一部となることが一般的になりつつあります。MFAは、ユーザが本人であることを、より高い保証レベル(Assurance ...