Table Of Contents

Previous topic

インストール直後のCentOS5.5にRedmine1.1.2をインストールする手順

Next topic

Wiki External Filter Plugin の導入と blockdiag への対応

This Page

redmine で OpenID を利用する

OpenID用 Ruby パッケージをインストールする

# gem install ruby-openid
# /etc/init.d/httpd restart

redmineで設定を有効にする

redmineに管理者権限でログインし、
管理 > 設定 > 認証 > OpenIDによるログインと登録 を有効にする

OpenID用のアカウントを作成する方法

redmineアカウントを作成

パスワード空のアカウントを作成し、OpenID URLを指定

Google Apps での OpenID に対応するためには

Note

参照および引用元

Redmineをセットアップしてみた

ruby の google codes 対応用パッケージを入手

ruby の google codes 対応用パッケージを入手し、インストールする必要があります。 最新版のパッケージは ruby-openid-apps-discovery から確認してください。

# wget http://ruby-openid-apps-discovery.googlecode.com/files/ruby-openid-apps-discovery-1.2.0.gem
# gem install -l ruby-openid-apps-discovery-1.2.0.gem
Successfully installed ruby-openid-apps-discovery-1.2.0
1 gem installed
Installing ri documentation for ruby-openid-apps-discovery-1.2.0...
Installing RDoc documentation for ruby-openid-apps-discovery-1.2.0...

redmine のプロジェクトの Patch #5966 を参考に rb ファイルを訂正

プロジェクトのPatch #5966 を参考に ./config/environment.rb と /app/controllers/account_controller.rb を修正する。 以下にdiffを掲載する。

# diff -U7 environment.rb.org environment.rb
--- environment.rb.org 2011-04-18 23:04:32.000000000 +0900
+++ environment.rb     2011-04-18 23:19:25.000000000 +0900
@@ -54,8 +54,9 @@
   config.gem 'coderay', :version => '~>0.9.7'

   # Load any local configuration that is kept out of source control
   # (e.g. gems, patches).
   if File.exists?(File.join(File.dirname(__FILE__), 'additional_environment.rb'))
     instance_eval File.read(File.join(File.dirname(__FILE__), 'additional_environment.rb'))
   end
+require 'gapps_openid'
 end
# diff -U7 account_controller.rb.org account_controller.rb
--- account_controller.rb.org  2011-04-18 23:05:08.000000000 +0900
+++ account_controller.rb      2011-04-18 23:19:12.000000000 +0900
@@ -154,17 +154,24 @@
       # Valid user
       successful_authentication(user)
     end
   end


   def open_id_authenticate(openid_url)
-    authenticate_with_open_id(openid_url, :required => [:nickname, :fullname, :email], :return_to => signin_url) do |result, identity_url, registration|
+     r = authenticate_with_open_id(openid_url, :required => ["http://schema.openid.net/contact/email"], :return_to => signin_url) do |result, identity_url, registration|
+     logger.warn "Failed login because: '#{result.inspect} at #{Time.now.utc}"
+     logger.warn "Failed login because: '#{result} at #{Time.now.utc}"
+     logger.warn "Failed login because: '#{result.message} at #{Time.now.utc}"
       if result.successful?
-        user = User.find_or_initialize_by_identity_url(identity_url)
+      logger.warn "identity_url: '#{identity_url} at #{Time.now.utc}"
+        logger.warn "registration: '#{registration.inspect} at #{Time.now.utc}"
+        #user = User.find_or_initialize_by_identity_url(identity_url)
+        logger.warn "registration: '#{registration["http://schema.openid.net/contact/email"][0]}'"
+        user = User.find_by_mail(registration["http://schema.openid.net/contact/email"][0])
         if user.new_record?
           # Self-registration off
           redirect_to(home_url) && return unless Setting.self_registration?

           # Create on the fly
           user.login = registration['nickname'] unless registration['nickname'].nil?
           user.mail = registration['email'] unless registration['email'].nil?

あとはhttpdを再起動すれば、OpenIDでGoogleが利用可能になる。 ※ただし、他のOpenIDサービスが利用可能かどうかは定かではない。

ログイン画面にOpenIDセレクターを配置する

Note

参照および引用元

OpenIDセレクタのプラグイン

OpenIDセレクタのプラグインをインストールする。

# wget --no-check-certificate https://github.com/jorgebg/redmine-openid-selector/zipball/master
# mv jorgebg-redmine-openid-selector-2195da8 /var/lib/redmine/vendor/plugins/
# chown -R apache:apache /var/lib/redmine/vendor/plugins/jorgebg-redmine-openid-selector-2195da8

# cd /var/lib/redmine/vendor/plugins
# git clone https://github.com/jorgebg/redmine-openid-selector.git
Cloning into redmine-openid-selector...
remote: Counting objects: 157, done.
remote: Compressing objects: 100% (119/119), done.
remote: Total 157 (delta 25), reused 157 (delta 25)
Receiving objects: 100% (157/157), 228.73 KiB | 189 KiB/s, done.
Resolving deltas: 100% (25/25), done.
# mv redmine-openid-selector redmine_openid_selector
# chown -R apache:apache redmine_openid_selector/

# /etc/init.d/httpd restart
  • どうも今回はプラグインのフォルダー名のハイフンとアンダーラインがゴッチャになっているようで、git cloneそのままのフォルダ名では必要なファイルのpathが通らない様だ。

以上