認可コード (Authorization Code)
- 認可コードは、クライアントアプリケーションがリソースオーナー(ユーザー)の同意を得て、認可サーバーから一時的に発行されるコードです。
- 認可コードはセキュリティ上の理由から、ブラウザやURL経由でクライアントに送信されます。
- 認可コード自体はリソースに直接アクセスするための権限を持たず、アクセストークンを取得するための中間的なステップです。
- 認可コードは、通常のシーケンスではクライアントがサーバーと通信してアクセストークンと交換されます。
- 認可コードは一度だけ使用される短命のコードで、セキュリティを高める役割もあります。
アクセストークン (Access Token)
- アクセストークンは、クライアントアプリケーションがリソースサーバー(API)に対してユーザーの代わりにリソースアクセスを行うためのトークンです。
- アクセストークンは認可サーバーから発行され、リソースサーバーがそれを検証することでクライアントにアクセスを許可します。
- アクセストークンは一定の有効期間を持ち、トークンの有効期限が切れた場合、再度認証が必要になります(またはリフレッシュトークンを使用して更新することが可能)。
- アクセストークンは認証情報やユーザーの属性に基づいて発行され、APIリクエストのヘッダーに添付してアクセス権限を示します。
簡単な流れ
- ユーザーがクライアントアプリケーションにログインを試みると、クライアントは認可サーバーから認可コードを取得します。
- クライアントは認可コードを使用して認可サーバーからアクセストークンを取得します。
- アクセストークンを用いて、クライアントはリソースサーバーへリクエストを送り、ユーザーのデータやリソースにアクセスします。
まとめ
- 認可コードはアクセストークンを取得するための一時的なコードで、セキュリティの強化に寄与します。
- アクセストークンは、リソースアクセス権限を表すトークンで、ユーザーのデータやリソースへのアクセスに使用されます。
この仕組みにより、OIDCはセキュアで効率的な認証とリソースアクセスを実現しています。