← スキル一覧に戻る

userinfo-endpoint-reviewer
by maronnjapan
⭐ 0🍴 0📅 2026年1月6日
SKILL.md
name: userinfo-endpoint-reviewer description: Review test cases for UserInfo Endpoint. Covers access token validation, Bearer token handling, sub claim consistency, scope-based claims, and signed responses per OIDC Core 1.0 Section 5.3.
UserInfo Endpoint Test Case Reviewer
Review test cases for UserInfo Endpoint in OpenID Connect Basic OP.
Scope
- Feature: UserInfo Endpoint
- Specifications: OIDC Core 1.0 Section 5.3, 5.4
- Profile: Basic OP
Review Process
- Identify which UserInfo requirement the test targets
- Check against the checklist below
- Verify both success and error scenarios
- Ensure scope-based claim filtering is tested
- Report gaps with specific spec section references
Basic Requirements
| Check | Requirement | Spec Reference |
|---|---|---|
| [ ] | Accept access token via Authorization header (Bearer) | OIDC Core 5.3.1 |
| [ ] | Support GET method | OIDC Core 5.3.1 |
| [ ] | Support POST method | OIDC Core 5.3.1 |
| [ ] | Return sub claim (REQUIRED) | OIDC Core 5.3.2 |
| [ ] | sub matches ID Token sub | OIDC Core 5.3.2 |
| [ ] | Return claims based on granted scopes | OIDC Core 5.4 |
Request Format
GET Request
GET /userinfo HTTP/1.1
Host: server.example.com
Authorization: Bearer SlAV32hkKG
POST Request
POST /userinfo HTTP/1.1
Host: server.example.com
Authorization: Bearer SlAV32hkKG
Content-Type: application/x-www-form-urlencoded
Response Format
JSON Response (Default)
HTTP/1.1 200 OK
Content-Type: application/json
{
"sub": "248289761001",
"name": "Jane Doe",
"given_name": "Jane",
"family_name": "Doe",
"email": "janedoe@example.com",
"email_verified": true,
"picture": "http://example.com/janedoe/me.jpg"
}
Signed Response (JWT)
| Check | Requirement | Spec Reference |
|---|---|---|
| [ ] | Support RS256 signed response when requested | OIDC Core 5.3.2 |
| [ ] | Honor userinfo_signed_response_alg registration | OIDC Core 5.3.2 |
Subject Identifier Consistency
| Check | Requirement | Spec Reference |
|---|---|---|
| [ ] | sub claim MUST be present | OIDC Core 5.3.2 |
| [ ] | sub value MUST match ID Token sub | OIDC Core 5.3.2 |
| [ ] | sub is stable for the user | OIDC Core 5.3.2 |
Access Token Validation
| Check | Requirement | Spec Reference |
|---|---|---|
| [ ] | Validate access token | OIDC Core 5.3.1 |
| [ ] | Return 401 for invalid/expired token | RFC 6750 |
| [ ] | Return 403 for insufficient scope | RFC 6750 |
Error Response
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="invalid_token",
error_description="The access token expired"
Test Case Categories
Access Token Tests
- Valid: Bearer token in Authorization header
- Invalid: Missing Authorization header
- Invalid: Expired access token
- Invalid: Revoked access token
- Invalid: Malformed token
HTTP Method Tests
- Valid: GET request with Bearer token
- Valid: POST request with Bearer token
- Invalid: Other HTTP methods (PUT, DELETE, etc.)
Sub Claim Tests
- Valid:
subpresent in response - Valid:
submatches ID Tokensub - Invalid:
submissing from response
Scope-Based Claims Tests
- Valid: Only requested scope claims returned
- Valid:
openidscope returnssubonly - Valid:
profilescope returns profile claims - Valid:
emailscope returns email claims - Valid:
phonescope returns phone claims - Valid:
addressscope returns address claim
Signed Response Tests (Optional)
- Valid: RS256 signed JWT response
- Valid: Signature verifiable with OP's key
- Valid: Honors registered
userinfo_signed_response_alg
Scope to Claims Mapping
| Scope | Claims |
|---|---|
openid | sub |
profile | name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at |
email | email, email_verified |
address | address |
phone | phone_number, phone_number_verified |
Error Responses
| Condition | HTTP Status | WWW-Authenticate |
|---|---|---|
| Missing token | 401 | Bearer |
| Invalid token | 401 | Bearer error="invalid_token" |
| Expired token | 401 | Bearer error="invalid_token" |
| Insufficient scope | 403 | Bearer error="insufficient_scope" |
Conformance Test IDs
| Test ID | Feature |
|---|---|
| OP-UserInfo-Endpoint | Basic UserInfo functionality |
| OP-UserInfo-RS256 | Signed UserInfo response |
| OP-UserInfo-Header | Bearer token in header |
Review Output Format
## Test Case: [Name]
### Target Feature: UserInfo Endpoint - [specific aspect]
### Test ID: OP-UserInfo-[xxx]
### Spec Compliance:
- [x] Covers required behavior per [spec section]
- [ ] Missing: [specific requirement]
### Sub Consistency:
- [x/blank] sub matches ID Token
### Verdict: PASS / FAIL / PARTIAL
### Recommendations: [if any]
スコア
総合スコア
40/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です