Skip to main content
このセクションでは、Auth0 Dashboard での ExampleCo の設定を確認します。

API を設定する

API を保護するには、 で API を登録する必要があります。Timesheets API を設定するには、Register APIs の手順に従ってください。

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 最も安全な方法であり、私たちが推奨するのは、RS256 を使用することです。理由としては、次のようなものがあります。
  • RS256 では、秘密鍵の保有者 (Auth0) のみがトークンに署名でき、公開鍵を使えば誰でもそのトークンが有効かどうかを確認できます。
  • HS256 では、秘密鍵が漏えいした場合、新しいシークレットで API を再デプロイする必要があります。RS256 では、複数のオーディエンスに対して有効なトークンをリクエストできます。
  • RS256 では、新しいシークレットで API を再デプロイしなくても、鍵のローテーションを実装できます。

スコープを設定する

API の設定で、認可時にアプリケーションが要求できるスコープを設定する必要があります。Permissions タブに移動してください。 このセクションでは、前述した 4 つのスコープ batch:uploadread:timesheetscreate:timesheetsdelete:timesheetsapprove:timesheets をすべて追加できます。さらに、追加のスコープとして batch:upload も追加します。
このドキュメントでは、cron ジョブに必要なのは batch:upload スコープのみであるため、これだけを扱います。ただし、今後のアプリケーションで必要になるスコープも、完全を期すために追加しています。
ダッシュボード > APIs > 権限

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

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

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

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