メインコンテンツへスキップ
このセクションでは、Auth0 Dashboardを使用したExampleCoの構成について説明します。

APIを構成する

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

JSON Web Tokenプロファイル

はアクセストークンのプロファイル(またはダイアレクト)を定義しています。Auth0は以下の異なる2つのプロファイルに対応しています。
  • Auth0トークンプロファイル
  • RFC 9068プロファイル
デフォルトはAuth0プロファイルです。これら2つのプロファイルは主にクレーム名に違いがあります。Auth0プロファイルはazpを使用し、client_idは使用しません。これらの違いについては、「アクセストークンのプロファイル」をお読みください。

署名アルゴリズム

APIを作成する際には、トークンの署名に使うアルゴリズムを選択する必要があります。署名は、の送信者が自称のとおりであることを検証し、メッセージが途中で変更されていないことを保証するために使用されます。
署名はJWTの一部です。JWTの構造に慣れていない場合は、「JSON Web Tokenの構造」を参照してください。
署名を作成するには、エンコードされたヘッダー、エンコードされたペイロード、シークレット、ヘッダーで指定されたアルゴリズムを使用して、それに署名します。APIに選択するのは、JWTヘッダーに含まれているHS256RS256またはPS256のアルゴリズムです。 RS256 の使用が最も安全で推奨されます。それには以下のような理由があります。
  • RS256では、秘密鍵の所有者(Auth0)のみがトークンに署名できる一方、誰でも公開鍵を使ってトークンの有効性を確認できます。
  • HS256では、秘密鍵が侵害されると、新しいシークレットでAPIをデプロイし直す必要があります。RS256では、複数のオーディエンスに有効なトークンを要求できます。
  • RS256では、新しいシークレットを使ってAPIをデプロイし直すことなく、鍵のローテーションを実装できます。

スコープを構成する

APIの設定では、アプリケーションが認可中に要求可能なスコープを構成する必要があります。[Permissions(アクセス許可)]タブに移動します。 このセクションでは、以前に説明した4つのスコープ(batch:uploadread:timesheetscreate:timesheetsdelete:timesheetsapprove:timesheets)すべてを追加することができます。これらに加えてbatch:uploadも追加できます。
ここでは、このドキュメントの目的に沿って、cronジョブで必要な唯一のスコープである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に必要な構成は完了です。次に、実装を始めることができます。
I