APIを使ったサーバーアプリケーション
この例ではExampleCoという架空の会社のためにタイムシートAPIを作成します。このAPIにより、従業員・請負業者のタイムシートエントリーが追加できるようになります。
また、このAPIを使って、社外システムからのタイムシートエントリーを処理してそれを一元化されたタイムシートデータベースに送るcronジョブもビルドします。
TL;DR
- Auth0は、APIエンドポイントへのアクセスを保護する手段として、API認証および認可を提供しています(「API認証と認可」を参照)
- マシンツーマシンアプリケーションを認可する場合(ユーザー操作を必要としないCLI、サービス、またはdaemon)、Auth0はクライアント資格情報付与をサポートしています(「クライアント資格情報付与」を参照)
- マシンツーマシンアプリケーションとAPIの両方をAuth0 Dashboardで構成する必要があります(「Auth0の構成」を参照)
- APIは、APIへの呼び出し時にHTTP認可ヘッダーに有効なアクセストークン(JSON Webトークンとして実装)が渡されることを確実にすることで保護されます(「APIを実装する」を参照)
- 認可が成功すると、マシンツーマシンアプリケーションにアクセストークンが発行されます(「アクセストークンを取得する」を参照)
- マシンツーマシンアプリケーションは、このアクセストークンを使ってHTTP認可ヘッダーとして渡し、APIエンドポイントへの呼び出しを認証します(「APIを呼び出す」を参照)
前提条件
ExampleCoは、コンサルティングを行うスタートアップ企業です。現在従業員は約100名で、業務を社外の請負業者に外注もしています。従業員と請負業者は全員、毎週タイムシートに入力する必要があります。そこで同社は、通常のWebアプリ向けシングルサインオンで紹介しているシナリオに従って、タイムシートのアプリケーションを構築しました。社内の従業員は、このWebアプリを使用してタイムシートに入力しますが、一部の社外請負業者は、タイムシートを追跡する別のツールをすでに使用しています。ExampleCoは、重複作業を避けるためのソリューションが必要であり、そこでAPIを使用して、社外システムからタイムシートエントリーを読み取り、それをExampleCoのバックエンドに自動的にアップロードするcronジョブを構築することに決めました。
目標と要件
ExampleCoは、以下のことが可能なフレキシブルなソリューションを構築したいと考えています。
バックエンドで操作する自動化されたプロセス
モバイルアプリケーションなど、アーキテクチャ内の将来的なアプリケーションのローンチ
認可済みユーザーおよびアプリケーションが安全にアクセスできるタイムシートAPI
アプリケーションの大部分のコードおよびビジネスロジックとの他のアプリとの共有