Cloudflare Workers 上で、esa.io の OAuth 2.0 を最小実用の OpenID Connect Provider として見せるアダプターです。
ESA_TEAMESA_CLIENT_IDESA_CLIENT_SECRETISSUER_URLOIDC_JWT_PRIVATE_KEYTRANSIENT_STORE
ESA_CLIENT_ID と ESA_CLIENT_SECRET は v1 では upstream の esa OAuth client と downstream の OIDC client を兼用します。1 デプロイ 1 クライアントの前提です。
OIDC_JWT_PRIVATE_KEY は JSON JWK か PKCS#8 PEM を受け付けます。
生成例:
pnpm generate:oidc-jwt-key
pnpm generate:oidc-jwt-key -- --modulus-length 3072標準出力に出た 1 行 JSON を、そのまま OIDC_JWT_PRIVATE_KEY に設定してください。
GET /.well-known/openid-configurationGET /authorizeGET /callbackPOST /tokenGET /userinfoGET /jwks.jsonGET /healthz
認可コードと一時 state は Workers KV に短時間保存します。KV は強整合ではないため、認可コードの単回使用は best-effort です。厳密な単回使用保証が必要になったら Durable Objects への移行を推奨します。