Skip to main content
このシナリオでは、ExampleCo という架空の会社向けにタイムシート API を構築します。この API では、従業員または契約社員のタイムシート エントリを追加できます。 また、タイムシート エントリを記録し、API を使って一元管理されたタイムシートデータベースに送信する Single-Page Applications (SPA) も構築します。

要点

  • Auth0 は、API endpoint へのアクセスを保護する手段として API の authentication と Authorization を提供します (API Authentication and Authorization を参照)
  • SPA のユーザーを認可するために、Auth0 は Implicit Grant をサポートしています (Implicit Grant を参照)
  • SPA と API の両方を Auth0 Dashboard で設定する必要があります (Auth0 Configuration を参照)
  • Authorization Extension を使用してユーザー permissions を適用できます (Configure the Authorization Extension を参照)
  • API は、API の呼び出し時に有効な access token が HTTP Authorization header で渡されるようにすることで保護されます (Implement the API を参照)
  • auth0.js library を使用して SPA のユーザーを認可し、API の呼び出しに使用できる有効な access token を取得できます (Authorize the User を参照)
  • SPA は、API の呼び出し時に HTTP Authorization header で access token を渡すことができます (Call the API を参照)
  • SPA は、ユーザーに付与された scopes に基づいて、UI 要素を条件付きで表示できます (Display UI Elements Conditionally Based on Scope を参照)

前提

ExampleCoはコンサルティング業を営むスタートアップ企業です。現在、従業員は約100名おり、加えて一部の業務を外部の契約業者に委託しています。従業員と外部契約業者は全員、毎週タイムシートを提出する必要があります。 同社はタイムシート用のアプリケーションを構築しており、このシナリオについてはRegular Web Apps 向けシングルサインオンで取り上げました。社内の従業員はこのweb appを使ってタイムシートを入力していますが、同社はこれをSPAに置き換えたいと考えています。このアプリは、タイムシート エントリを入力し、APIを使ってそのデータを一元管理されたタイムシートデータベースに送信するために使用されます。また、このアプリでは、管理者がタイムシート エントリを承認することもできます。

目標と要件

ExampleCo は、柔軟性の高いソリューションを構築したいと考えています。現時点でタイムシートの入力に必要なのは SPA のみですが、将来的には営業チーム向けのモバイルアプリなど、さらに多くのアプリケーションをローンチする予定です。そのため同社は、このサーバープロセスだけでなく、将来のすべてのアプリケーションからも勤務時間を記録できるよう、単一の Timesheets API を開発することにしました。それに対応できるだけの柔軟性を備えたセキュリティアーキテクチャを整備したいと考えています。ExampleCo は、アプリケーションのコードとビジネスロジックの大部分を、異なるアプリケーション間で共有できるようにしたいと考えています。 許可されたユーザーとアプリケーションのみが Timesheets API にアクセスできるようにする必要があります。 この SPA を使用するユーザーは 2 種類です。従業員とマネージャーです。従業員は自分のタイムシート エントリの読み取り、作成、削除を行える必要があり、マネージャーはそれに加えてタイムシートを承認できる必要があります。

詳細はこちら