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

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