JWSとJWK Set
ID Tokenの真正性を検証するためのJSON Web Signature(JWS)とJSON Web Key Set(JWKS)について学びます。
「JWSとJWK Set」はCoddyKit上の無料OAuth2 & OpenID Connect Deep Diveレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはOAuth2 & OpenID Connect Deep Dive学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 OAuth2 & OpenID Connect Deep Diveコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
JWS & JWK Sets Intro
Welcome! In this lesson, we'll dive into two crucial components for securing OpenID Connect: JSON Web Signatures (JWS) and JSON Web Key Sets (JWKS).
These mechanisms ensure that the ID Tokens you receive are authentic and haven't been tampered with.
Why Signatures are Essential
Imagine receiving an ID Token that tells you who a user is. How do you know it's truly from the trusted Identity Provider and not a malicious actor?
This is where signatures come in. They provide:
- Authenticity: Verifying the sender's identity.
- Integrity: Ensuring the token hasn't been changed since it was signed.
JSON Web Signature (JWS)
A JSON Web Signature (JWS) is a compact, URL-safe representation of signed content. Think of it as a digital seal on your JSON data.
An ID Token is typically a type of JWS, meaning it has been digitally signed to prove its origin and integrity.
JWS Structure: 3 Parts
A JWS consists of three parts, separated by dots (.):
- Header: Describes the signing algorithm (e.g., RS256) and the key used.
- Payload: The actual data (e.g., the user claims in an ID Token).
- Signature: The cryptographic signature generated from the header, payload, and a secret key.
Example: HEADER.PAYLOAD.SIGNATURE
JSON Web Key (JWK)
To verify a JWS signature, you need the correct public key. A JSON Web Key (JWK) is a standard way to represent cryptographic keys (like RSA or EC public keys) in a JSON format.
It makes it easy for systems to share and understand cryptographic keys.
Key Details in a JWK
A JWK contains several parameters to describe a key. Common ones include:
kty(Key Type): e.g.,RSA,ECuse(Public Key Use): e.g.,sig(for signing)alg(Algorithm): e.g.,RS256kid(Key ID): A unique identifier for the key.- Specific key components (e.g.,
nandefor an RSA public key).
JSON Web Key Set (JWKS)
An Identity Provider (IdP) might use several keys for signing ID Tokens, or rotate them over time. A JSON Web Key Set (JWKS) is a JSON object containing an array of JWKs.
It's the standard way for an IdP to publish all its public keys that clients can use for verification.
Discovering the JWKS Endpoint
How does your application find the IdP's JWKS?
The OpenID Connect Discovery Endpoint (e.g., https://idp.com/.well-known/openid-configuration) provides a URL called jwks_uri.
Your application fetches the JWKS from this jwks_uri to get the public keys needed for verification.
ID Token Verification Flow
Here's the typical process for a client to verify an ID Token:
- Receive the ID Token (JWS).
- Parse its header to find the
kid(Key ID) andalg(algorithm). - Fetch the JWKS from the IdP's
jwks_uri. - Locate the JWK in the JWKS that matches the
kidandalgfrom the ID Token header. - Use the public key from the matched JWK to cryptographically verify the ID Token's signature.
Quick Check: JWS & JWKS
An ID Token is received by a client application. The client needs to verify its signature. Which of the following is the correct sequence of actions?
Recap: JWS & JWK Sets
Great job! You've learned about the core components for ID Token security:
- JWS: A signed JSON structure, ensuring token authenticity and integrity.
- JWK: A standard JSON format for cryptographic keys.
- JWKS: A set of JWKs published by an IdP, allowing clients to discover and retrieve public keys for signature verification.
These pieces work together to build trust in the identity information provided by OpenID Connect.
AI チューターと学ぶ OAuth2 & OpenID Connect Deep Dive — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 12
- レッスン
- 48
よくある質問
「JWSとJWK Set」レッスンは無料ですか?
はい。「JWSとJWK Set」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、OAuth2 & OpenID Connect Deep Diveコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 OAuth2 & OpenID Connect Deep Diveコースには全4レッスンが含まれています。
「JWSとJWK Set」で何を学びますか?
ID Tokenの真正性を検証するためのJSON Web Signature(JWS)とJSON Web Key Set(JWKS)について学びます。 ブラウザで直接実行するハンズオンコードでOAuth2 & OpenID Connect Deep Diveを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
OAuth2 & OpenID Connect Deep Diveを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのOAuth2 & OpenID Connect Deep Diveは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「JWSとJWK Set」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このOAuth2 & OpenID Connect Deep Diveレッスンでコードを書いて実行できますか?
はい。すべてのOAuth2 & OpenID Connect Deep Diveレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。