Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuthForge

OAuth 2.0 / OpenID Connect(OIDC)の仕組みを、実際にコードを書きながら学ぶためのハンズオンプロジェクト

OAuthクライアントの実装から始め、最終的には認証サーバー・OpenID Providerまでを自分で実装することを目標としている

現在の進捗

Stage 3 まで完了

現在は React + FastAPI による BFF(Backend for Frontend)構成まで実装している


Stages

Stage 0 — Setup

開発環境の構築と、OAuthを学ぶための基本的なWebアプリケーションを作成。

Stage 1 — GitHub OAuth 2.0 Client

GitHubをOAuth 2.0の認可サーバーとして利用し、Authorization Code Flowを実装。

  • Authorization Code Flow
  • state によるCSRF対策
  • PKCE
  • Access Tokenの取得
  • GitHub APIへのアクセス

Stage 2 — Google OIDC Client

GoogleをOpenID Providerとして利用し、OAuth 2.0に加えてOpenID Connectを実装。

  • OpenID Connect
  • ID Token
  • nonce
  • JWT
  • JWKS
  • kid
  • ID Tokenの署名検証
  • iss / aud / exp の検証

Stage 3 — React + BFF

FrontendをReactに移行し、FastAPIをBFFとして利用する構成を実装。

  • React + TypeScript + Vite
  • FastAPI JSON API
  • CORS
  • credentials: "include"
  • Session / HttpOnly Cookie
  • /api/me
  • /api/logout
  • GitHub / Googleの認証情報をBackend側で処理
  • FrontendにAccess Token / ID Tokenを直接公開しない構成

Stage 4 — Authorization Server

OAuth 2.0 Authorization Serverを自作。

Stage 5 — OpenID Connect Provider

自作Authorization ServerをOpenID Connect Providerへ拡張。

Stage 6 — Discovery & JWKS

Discovery DocumentやJWKS Endpointなどを実装し、OAuth / OIDCの仕組みをさらに理解。


Architecture

Stage 3時点では、ReactとFastAPIを分離したBFF構成になっています。

┌──────────────────────┐
│   React / TypeScript │
│      localhost:5173  │
└──────────┬───────────┘
           │
           │ JSON API
           │ credentials: include
           ↓
┌──────────────────────┐
│       FastAPI        │
│      localhost:8000  │
│        BFF           │
└──────────┬───────────┘
           │
       ┌───┴────┐
       ↓        ↓
   GitHub     Google
   OAuth 2.0   OIDC

About

OAuthを理解するためのハンズオン認証学習プロジェクト

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages