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
JavaのOAuthライブラリ 比較検討
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Taipy(タイピー)
March 24, 2025
Technology
0
270
JavaのOAuthライブラリ 比較検討
Taipy(タイピー)
March 24, 2025
Tweet
Share
More Decks by Taipy(タイピー)
See All by Taipy(タイピー)
React new features (Activity and useEffectEvent)
taipy
0
11
AI駆動開発 設計書から実装へ
taipy
1
1.6k
20250315_LT資料_Kyoto.kt #2_デザインパターン
taipy
0
150
Other Decks in Technology
See All in Technology
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
330
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
480
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
160
ブラックボックス化したMLシステムのVertex AI移行 / mlops_community_62
visional_engineering_and_design
1
230
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
190
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
2k
SaaSに宿る21g
kanyamaguc
2
180
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
130
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
850
LLMに何を任せ、何を任せないか
cap120
10
6.2k
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
400
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
160
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
690
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Scaling GitHub
holman
464
140k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
Transcript
JavaのOAuthライブラリ 比較検討
自己紹介 出身 香川県 趣味 読書 最近ハマっていること 料理とダッシュ
目次 • 認可とOAuthの概要 • ライブラリの比較検討 • まとめ • 参考文献
概要
認証・認可の基本 識別 Identification このIDは実在ユーザーのものか 認証 Authentication 本当に本人か 認可 Authorization 権限はどうするか
OAuthとは 認可の仕組み APIで利用 アクセストークンを用いて認可 OAuth 2.0認可フレームワークは、第三者アプリケーションがHTTPサービスへの限 定的なアクセス権を取得することを可能にします。これは、リソース所有者とHTTP サービス間の承認インタラクションを調整することでリソース所有者の代理として、ま たは第三者アプリケーションが自身の代理としてアクセス権を取得することを許可す ることによって行われます。この仕様は、RFC
5849で記述されたOAuth 1.0プロトコ ルを置き換え、廃止します。 https://datatracker.ietf.org/doc/html/rfc6749から抜粋し、日本語訳
None
どのライブラリを使用すると良いか (クライアント)
クライアント 1. Spring Security 2. Restlet Framework (draft 30) 3.
ScribeJava 4. oauth2-essentials 5. Light Java Client 6. Google OAuth Java Client 7. Pac4j 8. Nimbus 9. AppAuth for Android
基準 • 特徴 • メンテナンス • 学習コスト
Spring Security 特徴 • 包括的なセキュリティ機能を提供する、Springアプリケーションのため の強力なフレームワーク メンテナンス: • 9k stars
• Springの公式がサポート 学習コスト • Spring Frameworkを使用しているなら低め
ScribeJava 特徴 • シンプルで使いやすい、軽量OAuthライブラリ メンテナンス • 5.5k stars 学習コスト •
シンプルなAPIを提供 • ScribeJava is so easy your grandma can do it! (GitHubより抜粋)
Google OAuth Java Client 特徴 • Googleが提供する、汎用性と利便性を兼ね備えたOAuthクライアント ライブラリ メンテナンス •
626 stars • メンテナンスモードへ移行 学習コスト • Google APIなどのライブラリを使っていると親和性あり
oauth2-essentials 特徴 • プラットフォーム非依存で、あらゆるHTTPクライアントと連携可能な、汎用 OAuth 2.0クライアントライブラリ メンテナンス • 88 stars
• 2016年登場 学習コスト • 比較的新めであるため、ドキュメントや記事が不足している可能性あり
Nimbus 特徴 • 標準規格に準拠した、堅牢で柔軟なOAuth 2.0およびOpenID Connect実装 ライブラリ メンテナンス • ??
stars: Bitbucketのため • 2025-02-26 にコミットあり 補足:SpringがNimbus使ってます 学習コスト • 高め。記事少なめ。
まとめ 使いやすさ・学習コスト →ScribeJava Springを使用しているなら →Spring Security ※サーバーサイド、インフラの構成も考慮する必要あり
参考文献 • 今さら聞けない暗号技術&認証・認可 Web系エンジニア 必須のセキュリティ基礎力をUP (Software Design別冊), https://amzn.asia/d/43sHiXD • OAuth徹底入門 セキュアな認可システムを適用するための
原則と実践, https://amzn.asia/d/f7hNn6v • RFC 6749 4.1. Authorization Code Grant, https://datatracker.ietf.org/doc/html/rfc6749#section-4.1 • OAuth 2.0, https://oauth.net/2/