# Custom Claims

> - documentation/docs/content03concepts/04-tokens-claims/concept-03-custom-claims.md - カスタムクレーム概念

- Skill: `majiayu000/custom-claims` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/custom-claims`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/custom-claims/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/custom-claims

---


---
name: custom-claims
description: カスタムクレーム（Custom Claims）機能の開発・修正を行う際に使用。claims: scopeマッピング、verified_claims: マッピング実装時に役立つ。
---

# カスタムクレーム（Custom Claims）開発ガイド

## ドキュメント

- `documentation/docs/content_03_concepts/04-tokens-claims/concept-03-custom-claims.md` - カスタムクレーム概念
- `documentation/docs/content_03_concepts/04-tokens-claims/concept-01-id-token.md` - ID Token概念

## 機能概要

カスタムクレーム機能は、ID Tokenに任意の属性を含める層。
- **カスタムクレームscopeマッピング**: `claims:attribute_name` 構文
- **Verified claimマッピング**: `verified_claims:attribute_name` 構文（OIDC4IDA準拠）

## モジュール構成

```
libs/
└── idp-server-core/                         # クレームコア
    └── .../oauth/
        ├── response/
        │   ├── AuthorizationResponseIdTokenCreator.java
        │   ├── AuthorizationResponseCodeIdTokenCreator.java
        │   └── AuthorizationResponseCodeTokenIdTokenCreator.java
        └── token/
            └── (トークン生成関連クラス)
```

## ID Token生成

`idp-server-core/oauth/response/` 内:

ID Token生成は、response type別に複数のCreatorクラスが存在します:

| クラス | 用途 |
|--------|------|
| `AuthorizationResponseIdTokenCreator` | Implicit FlowでのID Token生成 |
| `AuthorizationResponseCodeIdTokenCreator` | Authorization Code Flowでのresponse ID Token生成 |
| `AuthorizationResponseCodeTokenIdTokenCreator` | Hybrid Flowでのresponse ID Token生成 |

## カスタムクレームscopeマッピング

### Scope構文

```
claims:attribute_name
```

カスタムクレームは、`claims:` プレフィックスでscopeを指定することで、
ID Tokenに任意の属性を含めることができます。

## Verified Claimマッピング（OIDC4IDA）

### Scope構文

```
verified_claims:attribute_name
```

Verified Claimは、`verified_claims:` プレフィックスでscopeを指定することで、
本人確認済みの属性をID Tokenに含めることができます。

**前提条件**: ユーザーが本人確認済み（`isIdentityVerified()`）であること

## E2Eテスト

```
e2e/src/tests/
└── spec/
    ├── oidc_core_2_id_token.test.js         # ID Token仕様テスト
    └── oidc_core_2_id_token_extension.test.js
```

## コマンド

```bash
# ビルド
./gradlew :libs:idp-server-core:compileJava

# テスト
cd e2e && npm test -- spec/oidc_core_2_id_token.test.js
cd e2e && npm test -- spec/oidc_core_2_id_token_extension.test.js
```

## トラブルシューティング

### カスタムクレームがID Tokenに含まれない
- Scope形式が正しいか確認（`claims:attribute_name`）
- ユーザーの`custom_properties`に属性が存在するか確認

### Verified Claimが含まれない
- ユーザーが本人確認済みか確認（`user.isIdentityVerified()`）
- 認証方式が要件を満たすか確認

