Skip to content

ユースケース

各カードはソースリポジトリの examples/ の実行可能例にマップされています。例は example build tag の背後でビルドされ、go.sum を肥大化させたり go test ./... に巻き込まれたりしません。

sh
(cd examples/01-minimal && go run -tags example .)

各ページは、おおよそ同じ判断の流れで読めるようにしています。

  • 何を解決するか。 冒頭で option 名だけでなく、その機能が必要になる背景を説明します。
  • 使うべき状況。 複雑な機能では、その複雑さを受け入れる価値がある構成を明示します。
  • 使わない方がよい状況。 より単純な組み込み経路で足りる場合は、先にそちらへ誘導します。

初めて読む場合は 最小 OP、次に Comprehensive bundle を確認し、自分の構成にその必要が出てきた段階で下の各ページへ進むのがおすすめです。

一覧

各 example フォルダはいずれかのページに対応しています。

Bootstrap / wiring

ユースケースページ
最小 OP01-minimal最小 OP
典型的な option をまとめた構成02-bundleComprehensive bundle

Profile / flow

ユースケースページ
OIDC と並走する純粋 OAuth 2.004-oauth2-onlyOAuth 2.0(openid なし)
FAPI 2.0 Baseline (PAR + JAR + DPoP)03-fapi250-fapi-tls-jwksFAPI 2.0 Baseline
Service-to-service token05-client-credentialsclient_credentials
DPoP server nonce flow51-dpop-nonceDPoP nonce

UI

ユースケースページ
SPA から UI を扱う16-custom-interaction10-react-loginSPA / カスタム interaction
カスタム HTML 同意画面11-custom-consent-uiカスタム同意 UI
カスタム HTML アカウントチューザ12-custom-chooser-uiカスタムアカウントチューザ UI
マルチアカウントチューザ(prompt=select_account13-multi-accountマルチアカウントチューザ
クロスオリジン SPA (CORS)14-cors-spaSPA 向け CORS
ロケールネゴシエーション15-i18n-localei18n / ロケール

ストレージ

ユースケースページ
実 DB に永続化06-sql-store07-mysql-storeSQL ストア
SQL アダプタのテーブル名を差し替える25-byo-table-namesSQL ストア § テーブル名を差し替える
ストアをゼロから実装する26-byo-store-from-scratchストアバックエンドを自前実装する
Hot / Cold 分離(Redis 揮発)08-composite-hot-cold09-redis-volatileHot / Cold 分離

スコープ / claim

ユースケースページ
Public / Internal スコープ分離60-scopes-public-privatePublic / Internal スコープ
OIDC §5.5 claims リクエスト61-claims-requestClaims リクエスト

認証

ユースケースページ
MFA、captcha、ステップアップ20-mfa-totp21-risk-based-mfa22-login-captcha23-step-upMFA / ステップアップ
既存ユーザストアの投影24-byo-userstore既存ユーザストアの投影

Advanced grants

ユースケースページ
Custom grant_type URN30-custom-grantCustom Grant
Device Code (RFC 8628)31-device-code-cliDevice Code
CIBA poll mode32-ciba-posCIBA
Token Exchange (RFC 8693)33-token-exchange-delegationToken Exchange

Crypto / subject

ユースケースページ
Pairwise subject(OIDC Core §8.1)34-pairwise-saasPairwise subject
Encrypted id_token(JWE)35-encrypted-id-tokenJWE 暗号化

ガバナンス

ユースケースページ
ファーストパーティ同意スキップ40-first-party-skip-consentファーストパーティ同意スキップ
Dynamic Client Registration(RFC 7591)41-dynamic-registrationDynamic Client Registration
Back-Channel Logout 1.042-back-channel-logoutBack-Channel Logout

運用

ユースケースページ
Prometheus メトリクス52-prometheus-metricsPrometheus メトリクス

番号体系

例フォルダはトピック別にグループ化されています(時系列ではありません)。

トピック
00–09bootstrap、core flow、profile、storage adapter
10–19UI / browser integration(SPA、consent、chooser、CORS、i18n)
20–29MFA、認証ルール、user-store projection
30–39advanced grant、subject mode、encrypted token、federation
40–49governance: first-party、DCR、back-channel logout
50–59operations: FAPI helpers、metrics、tracing、DPoP nonce
60–69scope、claim、compliance-adjacent example

ソースリポジトリの README が一次インベントリです。