ページ内ナビ
概要
OmniAuthは、外部認証の開始とコールバックをRackミドルウェアとして扱うRubyライブラリです。提供元ごとの認証方式を差し替えながら、成功時のAuth Hashをアプリの利用者管理へ渡せます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
認証認証方式を共通の入口へまとめる
/auth/:providerへのPOSTから認証方式を開始し、コールバック時にomniauth.authをRack環境へ設定します。利用者との関連付けやセッション作成はアプリ側が担います。
出典:[1]
向いている用途
複数の外部認証を持つRackアプリに向く
RailsやSinatraで複数提供元を同じ流れへまとめたい用途に向きます。開発用認証方式は外部の秘密鍵なしで要求からAuth Hashまで確認できます。
出典:[1]
導入前の確認
参考にした公式資料
- [1]OmniAuth README at v2.1.4(2026-10-05)
- [2]OmniAuth gemspec at v2.1.4(2026-10-05)
- [3]OmniAuth LICENSE at v2.1.4(2026-10-05)
- [4]OmniAuth v2.1.4 release(2026-10-05)
編集部からの補足
採用前に、公式の最小例を対象環境で動かし、アプリ側が担う範囲と依存条件を確認してください。
3ステップで試す
- 1
固定版の試用環境を作る
RubyとBundlerを用意し、OmniAuth 2.1.4とRack::Testを固定するGemfileをomniauth-demoに作ります。
mkdir omniauth-demo && cd omniauth-demo && printf '%s\n' "source 'https://rubygems.org'" "gem 'omniauth', '2.1.4'" "gem 'rack-test'" > Gemfile - 2
開発用認証方式の試験を書く
test_modeの架空AuthHashを使い、POST /auth/developerからcallbackへ進み、omniauth.authのuidを確認する試験を作ります。実在する提供元の秘密情報は使いません。
bundle install && printf '%s\n' "require 'omniauth'" "require 'rack/test'" "OmniAuth.config.test_mode = true" "OmniAuth.config.mock_auth[:developer] = OmniAuth::AuthHash.new(provider: 'developer', uid: 'example-user', info: {name: 'Example User'})" "app = OmniAuth::Builder.new(->(env) { [200, {'content-type'=>'text/plain'}, [(env['omniauth.auth'] || {}).to_h.inspect]] }) { provider :developer }" "session = Rack::Test::Session.new(Rack::MockSession.new(app))" "session.post('/auth/developer')" "session.follow_redirect!" "abort 'missing AuthHash' unless session.last_response.body.include?('example-user')" > demo.rb - 3
POSTからAuth Hashまで確認する
Bundlerで試験を実行し、認証処理がAuthHashをアプリへ渡すことを確認します。本番OAuthや外部提供元への接続は検証しません。
bundle exec ruby demo.rb
成長
成長の推移 · 直近30日
8,102 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 20
- Issue登録
- 1
- Issue解決
- 1
- PR登録
- 1
- PRマージ
- 0
Issues
1 / 1
Pull Requests
1 / 0
メンテナンス状況
- Issue初回応答中央値
- データなし
- Issue応答率
- 0% (0/1)
直近90日に外部から作成されたIssue(新しい順に最大100件)が対象です。OWNER・MEMBER・COLLABORATORによる最初のコメントを応答とし、全コメントを確認できないIssueは集計から除外します。中央値と応答率は週次更新です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- ActiveAdmin9,713 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Rails applicationへ管理画面用Engineを組み込み、resourceと操作をDSLで定義する
Ruby - Auth.js28,369 Stars
共通タグ 2件 · 共通カテゴリ 1件
OAuth/OIDC・passwordless・WebAuthn・stateless/database sessionをWeb標準API中心のpackage群で構成する
TypeScript - ZITADEL15,199 Stars
共通タグ 2件 · 共通カテゴリ 1件
SSO・MFA・Passkey・B2BマルチテナントをAPI中心で管理する
Go - OAuth2 Proxy15,046 Stars
共通タグ 2件 · 共通カテゴリ 1件
既存のWebアプリの前段で認証を受け持ち、許可した利用者だけを通す
Go - Logto14,652 Stars
共通タグ 2件 · 共通カテゴリ 1件
OIDC・OAuth 2.1を基盤にSaaSとAIアプリの認証・認可・組織管理をまとめる
TypeScript - Mastodon50,351 Stars
共通タグ 2件 · 同じ言語
community policyを持つserverをActivityPubでFediverseへ接続する分散SNS
Ruby
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。