第1章. なぜOAuthが必要なのか?
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
2010年頃、もしあなたがデジタル・ソリューションを開発するチームの一員であれば、おそらくブラウザという単一クライアントにデータを公開するWebサイトを構築していただろう。当時、ユーザはユーザ名、パスワードで認証し、Webサイトは認証クッキーを発行した。このクッキーはバックエンドへの呼び出しを保護し、ユーザIDと有効期限タイムスタンプを含んでいた。そしてバックエンドは、クッキーのユーザIDを使って、ユーザAがユーザBのデータにアクセスできないようにするなどのセキュリティ規則を実施した。
今日のビジネスニーズに対応するため、よりモジュール化されたシステムを使用する。バックエンドプラットフォームは通常、複数のAPIで構成され、ウェブ、モバイル、企業間(B2B)クライアントにデータを提供する。Webサイトと同様に、APIへの、あるいはAPI間のリクエストを認証認可する方法が必要だ。クッキーは特定のシナリオではまだリクエストを認証するのに適しているが、さまざまなクライアントに対応するソリューションが必要だ。加えて、多くの演算子は多数のAPIとクライアントを運用しているため、スケールするソリューションも必要だ。そこでOAuthの出番となる。
OAuth は、APIに一貫したスケーラブルなアクセス制御を実装するためのプロトコルとツールを提供する。その中核にあるのは、APIとその結果としての(ビジネス)データへのアクセス許可を伝えるアクセストークンである。APIは今やビジネス製品であり、その公開データはビジネス価値を生み出す。APIアクセスの強化は、技術的な問題ではなく、ビジネス上の重要な関心事である。OAuthは、 のビジネス要件に合わせてAPIの認可をカスタマイズすることを可能にする。
この章では、まず正しい認可に主眼を置いて、最新のAPIファーストのセキュリティを実現するために推奨する主な手順を学ぶ。OAuth 2.0がどのようにこの認可を可能にするかを説明し、全てのAPIリクエストに適用することを推奨する。私たちはこれを ゼロトラストAPIセキュリティと呼びかけている。正しいセキュリティを実現するには、APIとアプリケーションをサポートするコンポーネントが必要だ。また、APIとそれをサポートするコンポーネントの両方を運用する必要もある。クラウド・ネイティブ・プラットフォームが、高度なインフラ・セキュリティを含む先進的な運用機能をどのように提供するかを説明する。技術的な選択が、最良のビジネス成果を達成できるかどうかを決定する上で、いかに重要な役割を果たすかがおわかりいただけるだろう。
APIファーストのセキュリティ
デジタル・ビジネスのセキュリティ は、以下のような多くのベスト・プラクティスを含む多面的なトピックである:
-
SQLインジェクションのような脅威から守るために、安全な開発ライフサイクルに従う。
-
脆弱性スキャンなどのテクニックを使って、ソフトウェアのサプライチェーンを保護する。
-
バックエンドコンポーネントを安全なオペレーティングシステム上で低特権のサービスアカウントを使用して実行する。
-
トランスポート・レイヤー・セキュリティ(TLS)を使ってデータをインターネットに公開する。
-
プロキシやファイアウォールを使用してネットワーク保護を適用する。
しかし、これらの戦略だけでは、ビジネス・データを保護するには不十分である。そのためには、アプリケーション、API、ユーザに焦点を当てたセキュリティアーキテクチャが必要である。このようなアーキテクチャの重要な振る舞いは、最小権限の原則( ...