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ヘッダーに含まれているHS256
、RS256
またはPS256
のアルゴリズムです。
RS256の使用が最も安全で推奨されます。それには以下のような理由があります。
RS256では、秘密鍵の所有者(Auth0)のみがトークンに署名できる一方、誰でも公開鍵を使ってトークンの有効性を確認できます。
HS256では、秘密鍵が侵害されると、新しいシークレットでAPIをデプロイし直す必要があります。RS256では、複数のオーディエンスに有効なトークンを要求できます。
RS256では、新しいシークレットを使ってAPIをデプロイし直すことなく、鍵のローテーションを実装できます。
スコープを構成する
APIの設定では、アプリケーションが認可中に要求可能なスコープを構成する必要があります。[Permissions(アクセス許可)]タブに移動します。
このセクションでは、以前に説明した4つのスコープ(batch:upload
、read:timesheets
、create:timesheets
、delete:timesheets
、approve:timesheets
)すべてを追加することができます。これらに加えてbatch:upload
も追加できます。
![[Dashboard]>[API]>[アクセス許可]](http://images.ctfassets.net/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/8592f7dc5200efa97321cd50bc28e095/Timesheets_API_-_Permissions_-_Japanese.png)
アプリケーションを作成する
Auth0 DashboardでAPIを作成すると、APIのテストアプリケーションが自動的に生成されます。Auth0 Dashboardで[Application(アプリケーション)]セクションに移動すると、Timesheets APIのテストアプリケーションがあります。

一番下のメニューオプションを選択して、アプリケーションの設定に移動します。アプリケーションの名前を「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(更新)]ボタンをクリックして設定を保存します。

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