Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RustでOAuth2+Passkeyのライブラリを作ってます
Search
ktaka-ccmp
April 22, 2026
Programming
22
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RustでOAuth2+Passkeyのライブラリを作ってます
https://auth0-japan.connpass.com/event/388529/
ktaka-ccmp
April 22, 2026
More Decks by ktaka-ccmp
See All by ktaka-ccmp
Passkey_OAuth2-Osaki-rs-20250325.pdf
ktaka8ccmp
1
66
Other Decks in Programming
See All in Programming
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
270
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.4k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
270
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
210
net-httpのHTTP/2対応について
naruse
0
500
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.2k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
360
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
190
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Navigating Weather and Climate Data
rabernat
0
220
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Unsuck your backbone
ammeep
672
58k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
The browser strikes back
jonoalderson
0
1.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
600
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
RustでOAuth2+Passkeyのライブラリを作ってます 高橋 公俊 (Kimitoshi Takahashi) dev_night Tokyo #5 | 2026/04/23
1
Rustと、認証認可の修行のために oauth2-passkey というライブラリを作ってます → 今日のLTのために Auth0 / Okta 使えるようにしました ...やっと今日動きました
2
oauth2-passkeyとは OAuth2 / Passkey で認証 → Session Cookie 発行 crates.io
公開済み: oauth2-passkey{,-axum} 複数のIdP/Passkey を一ユーザーに紐付け User │ ├── oauth2_accounts │ ├── (Auth0) │ ├── (Okta) │ └── (Google) │ └── passkey_credentials ├── (1Password) ├── (Google Password) └── (YubiKey) 1. Auth0 / Okta でユーザー作成 2. Passkey を登録 3. 次回から Passkey だけでログイン デモサイト デモ動画 デモ動画 3
3 行で組み込める use oauth2_passkey_axum::{AuthUser, oauth2_passkey_full_router}; // 1. インポート #[tokio::main] async
fn main() -> Result<(), Box<dyn std::error::Error>> { dotenv().ok(); oauth2_passkey_axum::init().await?; // 2. 初期化 let app = Router::new() .route("/", get(index)) .merge(oauth2_passkey_full_router()); // 3. ルータ合流 spawn_http_server(3001, app).await?; Ok(()) } OAuth2(OIDC)/Passkey のエンドポイント、ログインUI、管理画面 が自動作成される ページ保護は AuthUser extractor または middleware で 4
対応 OAuth2 / OIDC プロバイダー Auth0 Okta Google Microsoft Entra
Keycloak Zitadel Authentik Custom (OIDC) .env を書き換えるだけ。コード変更なし OAUTH2_CUSTOM1_NAME='auth0' OAUTH2_CUSTOM1_CLIENT_ID='xxx' OAUTH2_CUSTOM1_CLIENT_SECRET='xxx' OAUTH2_CUSTOM1_ISSUER_URL='https://your-tenant.auth0.com' 5
ストレージも .env で切り替え # SQLite (開発・デモ用、セットアップ不要) GENERIC_DATA_STORE_TYPE=sqlite GENERIC_DATA_STORE_URL='sqlite:/tmp/auth.db' # PostgreSQL
/ MySQL / MariaDB GENERIC_DATA_STORE_TYPE=postgres # or mysql GENERIC_DATA_STORE_URL='postgres://user:pass@localhost/mydb' # Cache: in-memory または Redis GENERIC_CACHE_STORE_TYPE=memory # or redis コード変更不要 6
まとめ / Thank You! oauth2-passkey Rust / Axum 向け認証ライブラリ crates.io
公開済み 複数 IdP + 複数 Passkey を account linking Auth0 / Okta などのOIDC IDP 対応 高橋 公俊 フリーランス Rust 3 年目 一緒にスタートアップしませんか GitHub Contact 7