HTTP ダイジェスト認証に基づいてユーザーを認証する Ruby アプリケーション用の API の作成に取り組んでいます。Ruby で API をきれいに作成できるので、Grape API ライブラリを使用することにしました。Grape のドキュメントには、次のようなダイジェスト認証を使用できると記載されています。
http_digest({ :realm => 'Test Api', :opaque => 'app secret' }) do |username|
# lookup the user's password here
{ 'user1' => 'password1' }[username]
end
上記の Grape の実装は、Rack::Auth::Digest::MD5
また、セキュリティのために、RFC 2617 の時点で、データベースにパスワードをプレーン テキストとして保存する必要がないことを読みました。ユーザー名: レルム: パスワードの MD5 ダイジェストを保存し、それに対して認証するので、DataMapper モデルを作成しました。
class Key
include DataMapper::Resource
property :id, Serial
property :username, String
property :password, String
property :active, Boolean, :default => true
property :created_at, DateTime, :default => DateTime.now
property :updated_at, DateTime
end
私が提供したもので、これら2つを接続して機能させる方法がわかりません。