OAuth 2.0 / OIDC Provider

認証を、
アプリのに。

ありえないくらいシンプルな IDaaS。OAuth 2.0 / OpenID Connect を、1 バイナリで。派手さはない、しかし必須——アプリを支えに徹する縦の構造材。

# In-memory モード(DB 不要・sample 入り)
$ SEED_DEV_FIXTURES=1 go run ./cmd/hashirah
→ listening on http://localhost:8080
→ GET /.well-known/openid-configuration 200
→ seeded: client app_dev / user dev@example.com
$ _
RS256 署名·PKCE / S256·RFC 9068 JWT·RFC 9207 iss·DCR 7591 / 7592·PostgreSQL (Neon)·scale-to-zero

派手さはない、しかし必須。

日本建築で建物全体を支える縦の構造材が「柱」。Hashirah は認証を引き受け、使う側を主役にする。目立たない場所で、止まらず立ち続けることだけを仕事にする。

// capabilities

標準を、そのまま。

fosite の上に素直に実装。仕様を曲げない・独自拡張で囲い込まない。必要な RFC は最初から揃っている。

01RFC 7636

Authorization Code + PKCE

ブラウザでもネイティブでも、横取りされない認可フロー。S256 を要求。

02RFC 7591 / 7592

Dynamic Client Registration

RP を API から自己登録。発行した registration token で後から回収。

03RFC 9068

JWT Access Token

access token をそのまま検証できる JWT で発行。イントロスペクション不要。

04RFC 9207

Issuer 識別子 (iss)

認可レスポンスに iss を必ず添えて、mix-up 攻撃を防ぐ。

05

Refresh / Client Credentials

長期セッションも machine-to-machine も、標準 grant でまかなう。

06

Google / LINE フェデレーション

外部 IdP ログインを federated_identities に集約。設定された時だけ有効化。

07

メール認証・パスワード再設定

signup から検証メールまで内蔵。SES 送信と bounce/complaint 処理込み。

08

消えない token

scale-to-zero でも PostgreSQL に永続化。冷えても token を失わない。

// endpoints

curl して、確かめる。

ディスカバリから token 交換、Dynamic Client Registration まで。隠し事のない、教科書どおりのフロー。

# OIDC discovery — 認証情報の入口
$ curl https://auth.hashirah.com/.well-known/openid-configuration
{
"issuer": "https://auth.hashirah.com",
"authorization_endpoint": ".../oauth2/auth",
"token_endpoint": ".../oauth2/token",
"registration_endpoint": ".../oauth2/register",
"jwks_uri": ".../.well-known/jwks.json",
"code_challenge_methods_supported": ["S256"],
"id_token_signing_alg_values_supported": ["RS256"]
}
// 思想

なぜ Hashirah か。

01

1 バイナリ

OP・dashboard・admin を Host で振り分ける単一バイナリ。運用で気にする箱は、いつも 1 つだけ。

02

消えない token

scale-to-zero でコールドスタートしても、発行済みの token を失わない。PostgreSQL に素直に永続化する。

03

標準準拠

OpenID conformance を見据えた、独自拡張に逃げない実装。RFC をそのまま読めば挙動が分かる。

柱を、立てる準備を。

RP 開発者向け dashboard は招待制で公開予定。メールを登録すると、開けたタイミングでご案内します。

登録しました。招待をお待ちください。
いますぐ触るなら SEED_DEV_FIXTURES=1 go run ./cmd/hashirah