Active ldap の事例紹介
-
Upload
kazuaki-takase -
Category
Technology
-
view
1.817 -
download
4
description
Transcript of Active ldap の事例紹介
北海道情報大学|経営情報学部先端経営学科
谷口文威
ActiveLdapの事例紹介
自己紹介谷口文威(たにぐちふみたけ)
北海道情報大学(Goldスポンサー)経営情報学部 先端経営学科 准教授
Webアプリ作成、プログラミング言語を教えてます
Ruby札幌運営メンバー@noplans
Ruby会議2009,2010実行委員
KaigiFreaks配信班
ジュンク堂Ruby会議店で売ってます
著者全員、スタッフでRuby会議にいます。見つけてサインをもらおう!
全員分そろえたら、全額キャッシュバック!(先着5名)
買って!
「Ruby逆引きレシピ」書きました
本学(北海道情報大学)では、
大学の実習室利用や各種サービス
の利用にLDAPを使っている
背景
学内共同研究
学生の資格取得状況
学生のモチベーション増加
資格の各種情報
試験日時・関連する講義
Ruby on Railsでプロトタイプを作成
認証に利用
学生の情報(氏名)→ DB
LDAPサーバ
Railsログイン時の入力ユーザid → LDAPサーバ、DB
パスワード → LDAPサーバ
#113 LDAPのエントリを手軽に扱いたい
参考
Ruby逆引きレシピ
LDAP Pass-through Authentication with Authlogic and ActiveLdap
http://www.liveandcode.com/2009/08/30/ldap-pass-through-authentication-with-authlogic-and-activeldap/
参考
Railsでの認証とLDAPライブラリ
user_session.rb:
class UserSession < AuthLogic::Session::Base
find_by_login_method :find_or_create_from_ldap
verify_password_method : valid_ldap_credentials?
end
AuthLogicを使って認証 (1)
user_session.rb:
class UserSession < AuthLogic::Session::Base
find_by_login_method :find_or_create_from_ldap
verify_password_method : valid_ldap_credentials?
end
AuthLogicを使って認証 (1)
ユーザを探す(ユーザ登録に利用)
認証をLDAP経由に変更
user.rb(抜粋):class User < ActiveRecord::Base
acts_as_authentic do |c|
c.validate_password_field = false
end
class << self
def find_or_create_from_ldap(loginname)
find_by_login(loginname) ||create_from_ldap_if_valid(loginname)
end
AuthLogicを使って認証 (2)
user.rb(抜粋つづき):def create_from_ldap_if_valid(loginname)
begin
if u = LdapUser.find(loginname)
User.create(
:login => loginname,
:fullname => u.displayName)
end
rescue ActiveLdap::EntryNotFount
nil
end
end
AuthLogicを使って認証 (3)
user.rb(抜粋つづき):
def valid_ldap_credentials?(password_plaintext)
ldap_entry = LdapUser.find(self.login)
ldap_entry.bind(password_plaintext)
ldap_entry.remove_connection
true
rescue ActiveLdap::AuthenticationError,ActiveLdap::LdapError::UnwillingToPerform
false
end
AuthLogicを使って認証 (3)
ActiveRecordのように使える
ライブラリ
以前にも使ったことがある
そこまでActiveLdapらしさを利用していないので、他のライブラリでも良かったかも
ActiveLdapを使った理由
Google Codeにある日本語チュートリアル
http://code.google.com/p/ruby-activeldap/wiki/TutorialJa
参考
作るうえで参考にした情報源
困テストってどうやるのか教えてください……
ジュンク堂Ruby会議店で売ってます
著者全員、スタッフでRuby会議にいます。見つけてサインをもらおう!
全員分そろえたら、全額キャッシュバック!(先着5名)
買って!
「Ruby逆引きレシピ」書きました
12月4日@メディアミックスホール
詳しくは twitter_id @tmaedaに!
札幌Ruby会議