2

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つを接続して機能させる方法がわかりません。

4

1 に答える 1