OAuthのコンポーネントの役割
1. Client(クライアント)
主な役割:
- リソースオーナーに代わって、保護されたリソースにアクセスするためのトークンを要求します。
やるべきこと:
- リソースオーナーからの明確な同意を取得する。
- AuthServerにリダイレクトして、認可コードまたはトークンを取得する。
- 認可コードを使用してアクセストークンを取得する際には、クライアントの認証を行う。
- アクセストークンを使用して、保護されたリソースにアクセスする。
2. Authorization Server (AuthServer)
主な役割:
- 認証および認可の両方のプロセスを管理し、適切なトークンをクライアントに発行する。
やるべきこと:
- リソースオーナーの認証を行う。
- リソースオーナーからクライアントへのアクセスの承認を得る。
- 認可コードやアクセストークンをクライアントに発行する。
- クライアントの認証を行う(特に認可コードフローにおいて)。
- トークンの有効期限や範囲を管理する。
3. Protected Resource(保護されたリソース)
主な役割:
- 適切なアクセストークンを持つクライアントのみにリソースへのアクセスを許可する。
やるべきこと:
- クライアントからのリクエストに添付されたアクセストークンの検証。
- トークンが有効であれば、要求されたリソースを提供する。
- トークンが無効または期限切れであれば、アクセスを拒否し、適切なエラーレスポンスを返す。
学習教材
- 日本語: OAuth徹底入門
- 英語: OAuth 2 in Action