Auth0構成(サーバーアプリ + API)

このセクションでは、Auth0 Dashboardを使用したExampleCoの構成について説明します。

APIを構成する

APIを保護するには、Auth0 Dashboardを使ってAPIを登録する必要があります。「APIを登録する」に記載の手順に従って、Timesheets APIを構成します。

JSON Web Tokenプロファイル

OAuth 2.0はアクセストークンのプロファイル(またはダイアレクト)を定義しています。Auth0は以下の異なる2つのプロファイルに対応しています。

  • Auth0トークンプロファイル

  • RFC 9068プロファイル

デフォルトはAuth0プロファイルです。これら2つのプロファイルは主にクレーム名に違いがあります。Auth0プロファイルはazpを使用し、client_idは使用しません。これらの違いについては、「アクセストークンのプロファイル」をお読みください。

署名アルゴリズム

APIを作成する際には、トークンの署名に使うアルゴリズムを選択する必要があります。署名は、JWTの送信者が自称のとおりであることを検証し、メッセージが途中で変更されていないことを保証するために使用されます。

署名を作成するには、エンコードされたヘッダー、エンコードされたペイロード、シークレット、ヘッダーで指定されたアルゴリズムを使用して、それに署名します。APIに選択するのは、JWTヘッダーに含まれているHS256RS256またはPS256のアルゴリズムです。

RS256の使用が最も安全で推奨されます。それには以下のような理由があります。

  • RS256では、秘密鍵の所有者(Auth0)のみがトークンに署名できる一方、誰でも公開鍵を使ってトークンの有効性を確認できます。

  • HS256では、秘密鍵が侵害されると、新しいシークレットでAPIをデプロイし直す必要があります。RS256では、複数のオーディエンスに有効なトークンを要求できます。

  • RS256では、新しいシークレットを使ってAPIをデプロイし直すことなく、鍵のローテーションを実装できます。

スコープを構成する

APIの設定では、アプリケーションが認可中に要求可能なスコープを構成する必要があります。[Permissions(アクセス許可)]タブに移動します。

このセクションでは、以前に説明した4つのスコープ(batch:uploadread:timesheetscreate:timesheetsdelete:timesheetsapprove:timesheets)すべてを追加することができます。これらに加えてbatch:uploadも追加できます。

[Dashboard]>[API]>[アクセス許可]

アプリケーションを作成する

Auth0 DashboardでAPIを作成すると、APIのテストアプリケーションが自動的に生成されます。Auth0 Dashboardで[Application(アプリケーション)]セクションに移動すると、Timesheets APIのテストアプリケーションがあります。

undefined

一番下のメニューオプションを選択して、アプリケーションの設定に移動します。アプリケーションの名前を「Timesheets Import Job」に変更します。

cronジョブには、M2Mアプリケーションが必要です。APIの作成時に生成されたテストアプリケーションが、M2Mアプリケーションとして自動的に構成されます。

アプリケーションのAPIアクセスを構成する

最後に、アプリケーションにTimesheets APIへのアクセスを許可する必要があります。APIの構成に戻って、[Machine to Machine Application(M2Mアプリケーション)]タブを選択します。

リスト内のTimesheets Import JobアプリケーションにAPIへのアクセスが有効になっていることを確認します。有効な場合には、アプリケーション名の右にあるスイッチの値が[Authorized(許可)]になります。アプリケーションが認可されていない場合には、スイッチの値を[Unauthorized(不許可)]から[Authorized(許可)]に切り替えます。

また、Auth0での認可についてアプリケーションに発行されるアクセストークンに、どのようなスコープが含まれるのかを指定する必要があります。

アプリケーション名の右端にある下矢印をクリックしてアプリケーションの設定を展開すると、使用可能なスコープが表示されます。cronジョブは外部システムにある入力内容を基に新しいタイムシートを作成するだけなので、batch:uploadスコープのみが必要です。

batch:uploadスコープを選択したら、[Update(更新)]ボタンをクリックして設定を保存します。

Dashboard - アプリケーション - API - マシンツーマシンアプリケーション - 認可

これで、ソリューションの設計とAuth0に必要な構成は完了です。次に、実装を始めることができます。