OAuth 2.0
OAuthロール
OAuth 2.0フローでは、次のロールが識別されます:
- リソース所有者(Resource Owner) :保護されたリソースへのアクセス権を付与できるエンティティ。通常は、エンドユーザーです。
- リソースサーバー(Resource Server) :保護されたリソースをホストするサーバー。アクセスしたいAPIのことです。
- クライアント(Client) :リソース所有者の代わりに保護されたリソースへのアクセス権を要求するアプリケーション。
- 認可サーバー(Authorization Server) :リソース所有者を認証し、適切な認可を得た後にアクセストークンを発行するサーバー。この場合、Auth0の認証APIになります。
クライアント資格情報付与

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