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

  • アプリケーションの大部分のコードおよびビジネスロジックとの他のアプリとの共有

もっと詳しく