JWS/JWE/JWT/IDトークンの包含関係
- JWS (JSON Web Signature) と JWE (JSON Web Encryption) の直列化方法には、それぞれ JSON 形式とコンパクト形式がある。
- JWT (JSON Web Token) は JWS か JWE だが、いずれにしてもコンパクト形式である。仕様でそう決まっている。
- 仕様により、ID トークンには署名が必要なので、ID トークンは JWS もしくは「JWS を含む JWE」という形式をとる。
- ID トークンは「JWE を含む JWS」という形式はとらない。なぜなら、仕様により、ID トークンを暗号化する際は「署名してから暗号化」という順番と決まっているため。
アクセストークン/JWT/IDトークンの包含関係
- アクセストークンの実装が JWT だとは限らない。
- 仕様により、ID トークンは必ず JWT である。
- ID トークンを何らかのアクセス制御に用いたとしても、ID トークンのことをアクセストークンとは呼ばない。
参考
- RFC 7515 JSON Web Signature (JWS)
- RFC 7516 JSON Web Encryption (JWE)
- RFC 7519 JSON Web Token (JWT)
- OpenID Connect Core 1.0, 2. ID Token
- IDトークンが分かれば OpenID Connect が分かる
- OAuth アクセストークンの実装に関する考察
- Software Design 2021 年 10 月号、第 2 特集『挫折しない OAuth/OpenID Connect 入門』 (執筆させていただきました)