メインコンテンツへスキップ
このセクションでは、Auth0 Dashboard での ExampleCo の設定を確認します。

API を設定する

API を保護するには、 で API を登録する必要があります。タイムシート API を設定するには、API を登録する の手順に従ってください。

JSON Web Token プロファイル

では、 のプロファイル (方言) を定義しています。Auth0 は 2 種類のプロファイルをサポートしています。
  • Auth0 トークンプロファイル
  • RFC 9068 プロファイル
既定では Auth0 プロファイルが使用されます。これら 2 つのプロファイルの主な違いは、クレーム名です。Auth0 プロファイルでは、client_id ではなく azp を使用します。違いの詳細については、アクセストークンプロファイル を参照してください。

署名アルゴリズム

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

Scopes を設定する

API の設定で、アプリケーションが認可時にリクエストできる Scopes を設定する必要があります。Permissions タブに移動します。 このセクションでは、前述のスコープ batch:uploadread:timesheetscreate:timesheetsdelete:timesheetsapprove:timesheets を追加できます。さらに、追加のスコープとして batch:upload も追加します。
このドキュメントでは、cron ジョブに必要なのが batch:upload スコープのみであるため、このスコープだけを扱います。ただし、網羅性のために、今後のアプリケーションで必要になるスコープも追加しています。
Dashboard > APIs > Permissions

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

Auth0 Dashboard で API を作成すると、その API 用のテストアプリケーションが自動的に自動生成されます。Auth0 Dashboard で Application Section に移動すると、タイムシート API のテストアプリケーションが表示されます。
undefined
右端のメニューオプションを選択して、アプリケーションの設定を開きます。アプリケーションの名前を Timesheets Import Job に変更します。 cron ジョブには、マシン間アプリケーションが必要です。API の作成時に生成されたテストアプリケーションは、自動的にマシン間アプリケーションとして構成されています。

アプリケーションの API へのアクセスを設定する

最後に、アプリケーションが Timesheets API にアクセスできるようにする必要があります。API の設定画面に戻り、Machine to Machine Application タブを選択します。 一覧に Timesheets Import Job アプリケーションが表示され、アプリケーション名の右側にあるスイッチが Authorized になっていれば、そのアプリケーションに API へのアクセスが許可されていることを確認できます。Authorized になっていない場合は、スイッチを Unauthorized から Authorized に切り替えてください。 また、アプリケーションが Auth0 で認可される際に、そのアプリケーションに発行されるアクセストークンに含めるスコープも指定する必要があります。 右端の下向き矢印をクリックしてアプリケーションの設定を展開すると、使用可能なスコープの一覧が表示されます。この cron ジョブは外部システム内のタイムシート項目に基づいて新しいタイムシートを作成するだけなので、必要なのは batch:upload スコープのみです。 batch:upload スコープを選択したら、Update ボタンをクリックして設定を保存します。
Dashboard - Applications - APIs - Machine to Machine Applications - Authorize
これでソリューションの設計と Auth0 側で必要な設定について説明できたので、次は実装に進みます。