「Open Authorization」の略である OAuth は、クライアント アプリケーションがユーザーに代わって保護されたリソースに安全にアクセスできるようにするオープン標準の認証プロトコルです。ユーザーは資格情報をアプリケーションと共有する必要がありません。 OAuth は、その柔軟性、相互運用性、堅牢なセキュリティ メカニズムにより、ソーシャル メディア ネットワークや電子商取引 Web サイトからクラウド ストレージ プラットフォームや企業アプリケーションに至るまで、数多くの業界で広く採用されています。
Web サイト開発のコンテキストでは、OAuth は開発者がアプリケーションと外部サービス間の安全な接続を作成および管理するための信頼できるフレームワークを提供します。これにより、認証および認可メカニズムの実装プロセスが大幅に簡素化され、開発者の時間と労力が節約され、同時にユーザーのプライバシーとデータのセキュリティが確保されます。
OAuth は時間の経過とともに複数の改訂が行われ、最新バージョンは OAuth 2.0 です。これは、さまざまなユースケースや導入シナリオに対処することを目的とした、包括的な標準、ガイドライン、ベスト プラクティスに基づく広範な業界コラボレーションの成果です。
OAuth の主要な概念は次のとおりです。
- リソース所有者:保護されたリソースを所有および制御するユーザー。通常はサービス プロバイダーのプラットフォーム上のアカウントで表されます。
- クライアント:リソース所有者に代わって保護されたリソースにアクセスしようとするアプリケーション。
- リソース サーバー:保護されたリソースをホストするサーバー。
- 認可サーバー:リソース所有者を認証し、クライアントにアクセス トークンを発行して、クライアントが保護されたリソースにアクセスできるようにするサーバー。
- アクセス トークン:リソース所有者によってクライアントに付与された承認を表す文字列。アクセス トークンには有効期間と特定のスコープが制限されており、特定のアクションおよび特定の期間内でのみ使用できます。
OAuth の主な利点は、リソース所有者が資格情報 (ユーザー名やパスワードなど) を共有せずに、クライアントに保護されたリソースへのアクセスを許可できることです。これは、「委任された承認」として知られるプロセスを通じて実現されます。これには通常、次の手順が含まれます。
- クライアントはリソース所有者を認可サーバーにリダイレクトし、特定のアクションまたはスコープに対する認可を要求します。
- リソース所有者は認可サーバーで認証し、クライアントのリクエストを承認します。
- 認可サーバーは認可コードを発行し、リダイレクト URI を通じてクライアントに送り返されます。
- クライアントは、認可サーバーにリクエストを発行して、認可コードとアクセス トークンを交換します。
- クライアントはアクセス トークンを使用して、リソース サーバーから保護されたリソースにアクセスします。
OAuth 2.0 の重要な機能の 1 つは、さまざまなクライアント タイプやユースケースに合わせて調整された複数の「許可タイプ」をサポートしていることです。これらの許可タイプは、クライアントがアクセス トークンを取得するための特定の方法を定義しており、次のものが含まれます。
- 認可コード:この付与タイプは、シークレットを安全に保存し、バックチャネルを使用して認可サーバーと通信できる Web およびモバイル アプリケーションに適しています。
- 暗黙的:シークレットを安全に保存できず、フロント チャネル経由でトークンを直接発行する必要があるシングル ページ アプリケーション (SPA) およびその他のユーザー エージェント ベースのクライアント向けに設計されています。
- リソース所有者のパスワード資格情報:移行シナリオやファーストパーティ クライアントなど、クライアントが信頼され、リソース所有者の資格情報を安全に取得して保存できるシナリオで使用されます。
- クライアント資格情報:クライアントが特定のリソース所有者の代わりに動作するマシン間 (M2M) 認証に適しています。
AppMaster no-codeプラットフォームを使用する開発者は、 AppMasterのカスタム API と認証サービスを使用して、OAuth ベースの認証および認可メカニズムを簡単に統合できます。これにより、シングル サインオン (SSO) 機能やソーシャル メディア ログイン機能を実装したり、OAuth をサポートするサードパーティ API やクラウド サービスへの安全な接続を確立したりすることもできます。さらに、 AppMasterで構築されたアプリケーションは、Go、Vue3、Kotlin などの業界標準テクノロジーを使用して生成され、OAuth との互換性と相互運用性が保証されます。
結論として、OAuth は強力で適応性があり、広く採用されている認証プロトコルであり、特にセキュリティと統合の容易さの点で Web サイト開発者に大きな利点をもたらします。 OAuth を活用することで、開発者は、安全性が低い可能性があるカスタムの認証および認可の実装への依存を減らすことができ、その結果、ユーザー データを保護し、厳格なアクセス コントロール ポリシーを適用する、より安全でセキュアなアプリケーションが実現します。