ユースケース
各カードはソースリポジトリの examples/ の実行可能例にマップされています。例は example build tag の背後でビルドされ、go.sum を肥大化させたり go test ./... に巻き込まれたりしません。
sh
(cd examples/01-minimal && go run -tags example .)各ページは、おおよそ同じ判断の流れで読めるようにしています。
- 何を解決するか。 冒頭で option 名だけでなく、その機能が必要になる背景を説明します。
- 使うべき状況。 複雑な機能では、その複雑さを受け入れる価値がある構成を明示します。
- 使わない方がよい状況。 より単純な組み込み経路で足りる場合は、先にそちらへ誘導します。
初めて読む場合は 最小 OP、次に Comprehensive bundle を確認し、自分の構成にその必要が出てきた段階で下の各ページへ進むのがおすすめです。
一覧
各 example フォルダはいずれかのページに対応しています。
Bootstrap / wiring
| ユースケース | 例 | ページ |
|---|---|---|
| 最小 OP | 01-minimal | 最小 OP |
| 典型的な option をまとめた構成 | 02-bundle | Comprehensive bundle |
Profile / flow
| ユースケース | 例 | ページ |
|---|---|---|
| OIDC と並走する純粋 OAuth 2.0 | 04-oauth2-only | OAuth 2.0(openid なし) |
| FAPI 2.0 Baseline (PAR + JAR + DPoP) | 03-fapi2、50-fapi-tls-jwks | FAPI 2.0 Baseline |
| Service-to-service token | 05-client-credentials | client_credentials |
| DPoP server nonce flow | 51-dpop-nonce | DPoP nonce |
UI
| ユースケース | 例 | ページ |
|---|---|---|
| SPA から UI を扱う | 16-custom-interaction、10-react-login | SPA / カスタム interaction |
| カスタム HTML 同意画面 | 11-custom-consent-ui | カスタム同意 UI |
| カスタム HTML アカウントチューザ | 12-custom-chooser-ui | カスタムアカウントチューザ UI |
マルチアカウントチューザ(prompt=select_account) | 13-multi-account | マルチアカウントチューザ |
| クロスオリジン SPA (CORS) | 14-cors-spa | SPA 向け CORS |
| ロケールネゴシエーション | 15-i18n-locale | i18n / ロケール |
ストレージ
| ユースケース | 例 | ページ |
|---|---|---|
| 実 DB に永続化 | 06-sql-store、07-mysql-store | SQL ストア |
| SQL アダプタのテーブル名を差し替える | 25-byo-table-names | SQL ストア § テーブル名を差し替える |
| ストアをゼロから実装する | 26-byo-store-from-scratch | ストアバックエンドを自前実装する |
| Hot / Cold 分離(Redis 揮発) | 08-composite-hot-cold、09-redis-volatile | Hot / Cold 分離 |
スコープ / claim
| ユースケース | 例 | ページ |
|---|---|---|
| Public / Internal スコープ分離 | 60-scopes-public-private | Public / Internal スコープ |
| OIDC §5.5 claims リクエスト | 61-claims-request | Claims リクエスト |
認証
| ユースケース | 例 | ページ |
|---|---|---|
| MFA、captcha、ステップアップ | 20-mfa-totp、21-risk-based-mfa、22-login-captcha、23-step-up | MFA / ステップアップ |
| 既存ユーザストアの投影 | 24-byo-userstore | 既存ユーザストアの投影 |
Advanced grants
| ユースケース | 例 | ページ |
|---|---|---|
| Custom grant_type URN | 30-custom-grant | Custom Grant |
| Device Code (RFC 8628) | 31-device-code-cli | Device Code |
| CIBA poll mode | 32-ciba-pos | CIBA |
| Token Exchange (RFC 8693) | 33-token-exchange-delegation | Token Exchange |
Crypto / subject
| ユースケース | 例 | ページ |
|---|---|---|
| Pairwise subject(OIDC Core §8.1) | 34-pairwise-saas | Pairwise subject |
| Encrypted id_token(JWE) | 35-encrypted-id-token | JWE 暗号化 |
ガバナンス
| ユースケース | 例 | ページ |
|---|---|---|
| ファーストパーティ同意スキップ | 40-first-party-skip-consent | ファーストパーティ同意スキップ |
| Dynamic Client Registration(RFC 7591) | 41-dynamic-registration | Dynamic Client Registration |
| Back-Channel Logout 1.0 | 42-back-channel-logout | Back-Channel Logout |
運用
| ユースケース | 例 | ページ |
|---|---|---|
| Prometheus メトリクス | 52-prometheus-metrics | Prometheus メトリクス |
番号体系
例フォルダはトピック別にグループ化されています(時系列ではありません)。
| 帯 | トピック |
|---|---|
| 00–09 | bootstrap、core flow、profile、storage adapter |
| 10–19 | UI / browser integration(SPA、consent、chooser、CORS、i18n) |
| 20–29 | MFA、認証ルール、user-store projection |
| 30–39 | advanced grant、subject mode、encrypted token、federation |
| 40–49 | governance: first-party、DCR、back-channel logout |
| 50–59 | operations: FAPI helpers、metrics、tracing、DPoP nonce |
| 60–69 | scope、claim、compliance-adjacent example |
ソースリポジトリの README が一次インベントリです。