Ruby on Rails の認証フレームワーク

メンテナンスされているもので候補になりうるのは, Devise, Sorcery, Clearance そして Authlogic の4択。any_login (開発環境で別ユーザに切り替える.) でもこの4つがサポートされている。

改めて確認すると, Sorcery がシンプルでよさそう。

Devise

heartcombo/devise: Flexible authentication solution for Rails with Warden.

2021.4.29 v4.8.0. メンテナンスされている。Warden を基盤としている。warden ~> 1.2.3; railties >= 4.1.0 (Rails 専用)

Rails 向けではほぼ一強。しかし複雑すぎる。まれに脆弱性報告があるので、きちんと付いていかなければならない。

  • ドキュメントが分かりにくい。機能が複雑すぎるか。
  • OpenID Connect など認証を外だしするなら、ほとんどの機能は不要?
  • OmniAuth との統合? -- OmniAuth が廃れたので、これは考慮不要。

▲ Devise v4.8.1 (2021-12-16) でもまだ Rails 7 に対応していない。

☆ Sorcery

Sorcery/sorcery: Magical Authentication

2021.4.30 v0.16.1; oauth ~> 0.5, oauth2 ~> 1.0. 累計 2.7Mダウンロード. メンテナンスされている。Rails に依存していない Good。

新しいライブラリ。Authlogic, Devise にインスパイアされた。Magical Authentication がコンセプト. 魔法だが, Voodoo ではない。黒魔術全開の Devise とは違う、という意味か。

多数の外部 providers を備える。Google, LINE ほかいろいろ。OpenID Connect には未対応か? 単に oidc ライブラリと組み合わせればよい。難しくない。

単純な作りであり、Rails 7 でも問題なし。

▲ Authlogic (Aだけ大文字)

binarylogic/authlogic: A simple ruby authentication solution.

こちらも Rails 3 世代だが、まだメンテナンスされている。シンプルのRails認証ソリューション。2021.02.23 v6.4.1; Rails >=5.2,<6.2. 累計6.3Mダウンロード

v6.4.2 (2021-12-22) にて Rails 7 対応。

オプションの別パッケージは廃れている;

  • authlogic-connect -- OpenID であって OpenID Connect ではない。使えない。
  • authlogic-oauth -- 2009年で終了。

▲ Clearance

thoughtbot/clearance: Rails authentication with email & password.

Rails 3 世代の認証フレームワークだが、まだメンテナンスされている。2021.04.09 v2.4.0; Rails >= 5.0. 累計 950Kダウンロード。

Rails 限定. メールとパスワードに特化。 ... いくら何でも機能不足か. 外部認証が中心なら、意外とこれぐらいでもいいかもしれないが、ちょっと試す気が湧き上がらない。