OSS探訪GitHubでログイン

Rackアプリへ複数の認証方式を共通の流れで組み込む

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,102
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/02/27
ページ内ナビ

概要

OmniAuthは、外部認証の開始とコールバックをRackミドルウェアとして扱うRubyライブラリです。提供元ごとの認証方式を差し替えながら、成功時のAuth Hashをアプリの利用者管理へ渡せます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

認証認証方式を共通の入口へまとめる

/auth/:providerへのPOSTから認証方式を開始し、コールバック時にomniauth.authをRack環境へ設定します。利用者との関連付けやセッション作成はアプリ側が担います。

出典:[1]

向いている用途

複数の外部認証を持つRackアプリに向く

RailsやSinatraで複数提供元を同じ流れへまとめたい用途に向きます。開発用認証方式は外部の秘密鍵なしで要求からAuth Hashまで確認できます。

出典:[1]

導入前の確認

POSTとCSRF保護を崩さない

認証開始はPOSTを使い、Railsではomniauth-rails_csrf_protectionなどを組み合わせます。developer 認証方式は開発環境だけに限定し、本番のOAuthや提供元設定を検証したものとは扱いません。

出典:[1][3]

参考にした公式資料

  1. [1]OmniAuth README at v2.1.4(2026-10-05)
  2. [2]OmniAuth gemspec at v2.1.4(2026-10-05)
  3. [3]OmniAuth LICENSE at v2.1.4(2026-10-05)
  4. [4]OmniAuth v2.1.4 release(2026-10-05)
編集部からの補足

採用前に、公式の最小例を対象環境で動かし、アプリ側が担う範囲と依存条件を確認してください。

3ステップで試す

  1. 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. 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. 3

    POSTからAuth Hashまで確認する

    Bundlerで試験を実行し、認証処理がAuthHashをアプリへ渡すことを確認します。本番OAuthや外部提供元への接続は検証しません。

    bundle exec ruby demo.rb
公式READMEで確認

成長

成長の推移 · 直近30日

8,102 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
20
Issue登録
1
Issue解決
1
PR登録
1
PRマージ
0

Issues

1 / 1

7月8日10月5日
Issue登録Issue解決

Pull Requests

1 / 0

7月8日10月5日
PR登録PRマージ

メンテナンス状況

Issue初回応答中央値
データなし
Issue応答率
0% (0/1)

直近90日に外部から作成されたIssue(新しい順に最大100件)が対象です。OWNER・MEMBER・COLLABORATORによる最初のコメントを応答とし、全コメントを確認できないIssueは集計から除外します。中央値と応答率は週次更新です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • omniauth
  • authentication
  • hacktoberfest
  • ruby
Stars
8,102
Forks
973
Watchers
119
Open Issues
85
Contributors
168
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/02/27

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?