OAuth 2.0
OAuth の役割
OAuth 2.0 のフローでは、次の役割を識別できます。
- Resource Owner: 保護されたリソースへのアクセスを許可できる主体です。通常はエンドユーザーが該当します。
- Resource Server: 保護されたリソースをホストするサーバーです。つまり、アクセスしたい API のことです。
- Client: Resource Owner に代わって、保護されたリソースへのアクセスを要求するアプリケーションです。
- Authorization Server: Resource Owner を認証し、適切な認可を得た後に アクセストークン を発行するサーバーです。この場合は Auth0 の Authentication API です。
クライアントクレデンシャルズグラント

- アプリケーションは、Client ID と Client Secret を使用して Authorization Server に認証します。
- Authorization Server はこの情報を検証し、アクセストークンを返します。
- アプリケーションは、そのアクセストークンを使用して、自身の behalf で Resource Server を呼び出すことができます。
アクセストークンとスコープ
access_token とも呼ばれます) を提示する必要があります。
アクセストークンは、アプリケーションに発行された認可を表す不透明な文字列で、Authorization Server でユーザーを認証することで取得されます。その後、ユーザーは自分に代わって API にアクセスすることをアプリケーションに許可できます。詳しくは、Access Tokens を参照してください。
Timesheets API のような API では、API が公開しているさまざまなエンドポイントに対して、誰がアクセスできるかを細かく制御できます。これらの権限はスコープとして表されます。
ExampleCo の Regular Web Application またはサードパーティのアプリケーションが、アクセストークンを取得するために Auth0 で認証するとき、認証リクエストには、そのアプリケーションが必要とする要求対象のスコープ一覧が含まれます。それらのスコープが許可されると、アクセストークンにはアプリケーションに付与された承認済みスコープの一覧が含まれます。
Regular Web App またはサードパーティのアプリケーションは、Timesheets API へのリクエスト時に Authorization Server から受け取ったアクセストークンを含めます。Timesheets API はスコープクレームを確認し、その特定のエンドポイントを呼び出すために必要な権限が付与されていることを検証します。
たとえば、Timesheets API では 4 種類の認可レベルを受け付ける場合があります。timesheet の読み取り (スコープ read:timesheets) 、timesheet の作成 (スコープ create:timesheets) 、timesheet の削除 (スコープ delete:timesheets) 、timesheet の承認 (スコープ approve:timesheets) です。
スコープの詳細については、Scopes を参照してください。
Regular Web App が新しい timesheet エントリを作成するために Timesheets API にリクエストを送信する場合、アクセストークンには create:timesheets スコープが含まれている必要があります。含まれていない場合、リクエストは拒否されます。同様に、既存の timesheet を削除するには、アクセストークンに delete:timesheets スコープが含まれている必要があります。
詳しくは、Scopes を参照してください。