OmniAuth ライブラリは何らかの認証フレームワークと組み合わせます。OpenId Connect を実装するとき、OmniAuth ストラテジとして実装しなくても、認証フレームワーク上で作ってやればよい。OmniAuth はもはや不要。
Sorcery をお勧めします。Digital Identity 技術
OmniAuth (Ruby) 用の OpenID Connect ストラテジ。このパッケージは次のパッケージを置き換えます。
オリジナルはこちら; omniauth-openid-connect | RubyGems.org. しかしながら, 2019年1月現在, 最新は 2015年12月にリリースされた v0.2.3. もはやメンテナンスされていない。
依存している openid_connect パッケージが古く、困る。多くの人が fork してしまっている。
そこで、多くの人による散らばった修正を取り込んだ。決定打を目指す。
GitHub repository: netsphere-labs/omniauth-openid-connect: Universal authentication strategy using OpenID Connect for OmniAuth
リポジトリをclone してください。
$ git clone https://github.com/netsphere-labs/omniauth-openid-connect.git
ビルド、インストール。
$ rake build # rake install:local
OpenID Provider (OP; IdP) ごとの設定例
A sample Rails + OmniAuth program: omniauth-oidc-rp-sample · main · netsphere / rails-examples · GitLab
(1) OpenID Connect Authorization Code Flow によるログイン, (2) 同 Implicit Flow によるログイン. (3) OpenID Connect RP-Initiated Logout 1.0 によるシングルログアウト (SLO).