ヤマムギ

growing hard days.

*

RedmineにGoogleAppsアカウントでログイン出来るようにする

      2015/04/06


RedmineのログインをGoogleアカウントで出来るように[redmine_omniauth_google]プラグインを使って設定します。

環境

OS : Amazon Linux
Redmine : 3.0.0

[redmine_omniauth_google]プラグインをインストールする

[bash]
$ cd /var/lib/redmine/plugins
$ sudo git clone https://github.com/hicknhack-software/redmine_time_tracker
$ cd ..
$ export ORIG_PATH=”$PATH”
$ sudo -s -E
export PATH=”$ORIG_PATH”
bundle install –without test
exit
$ bundle install –without test
$ rake redmine:plugins:migrate RAILS_ENV=production
$ sudo service httpd restart
[/bash]

GoogleAppsを設定する

GoogleApps管理者で https://cloud.google.com/console にアクセス

Google_Developers_Console-1

[プロジェクトを作成]で新規プロジェクトを作成し、任意のプロジェクト名を設定します。

(理由は不明ですが不明なエラーで失敗してプロジェクト名を変えて作ったら成功しました。)

Google_Developers_Console-2

[APIと認証]-[認証情報]で[OAuth]-[新しいクライアントIDを作成]を押します。

Google_Developers_Console-3

[ウェブアプリケーション]を選択して[同意画面を設定]を押します。

Google_Developers_Console-4

[メールアドレス]を選択して[サービス名]を任意に設定して[保存]を押します。

Google_Developers_Console-5

[承認済みのJAVASCRIPT生成元]にRedmineサーバーのドメインまでを設定します。
Redmineをサブフォルダにしていてもドメインまででいいです。

[リダイレクトURI]はサブフォルダも含むRedmineのパスに oauth2callback を加えたものを設定します。

例:
– [承認済みのJAVASCRIPT生成元] http://yourdomain.com/
– [リダイレクトURI] http://yourdomain.com/redmine/oauth2callback

Google_Developers_Console-6

クライアントIDが生成されるのでクライアントIDとクライアントシークレットをコピーしておきます。

[redmine_omniauth_google]プラグインを設定する

Redmineにログインして[管理]-[プラグイン]を押します。

redmine-plugin-1

[redmine_omniauth_google]プラグインの[設定]を押します。

redmine-plugin-2

[Client ID],[Client Secret]を設定します。
[Available domains]にはGoogleAppsのドメインを設定します。
[Oauth authentification]をチェックします。

試したところ、
「NoMethodError in RedmineOauthController#oauth_google_callback」エラー

Action_Controller__Exception_caught

「find_or_initialize_by_mail」非推奨メソッドで怒られてるので、redmine_omniauth_googleプラグインを推奨メソッドに変更改修する。

次は、「Unknown column ‘users.email’ in ‘where clause’:」で怒られる。

なるほど。
Redmine3.0.0にはプラグインが対応していないという事か。
これがプラグインに頼っているとバージョンアップの時に大変になると言っていた事ですか。

という事なので、redmine_omniauth_googleプラグインをGitHubでフォークして、上の改修も含めて3.0.0対応すると決意しました。

別の記事にさせていただきます。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

 - Google, ProjectManagement, Redmine ,

ad

ad

  関連記事

Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する

EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …

Redmine REST APIを操作するpython_redmineを試してみた

Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来 …

Backlogの課題チケット更新内容をMicrosoft Teamsに通知する(AWS Lambda Python)

BacklogにSlack連携が追加されました。 ですが、私の所属している会社で …

Redmine起動時にPassengerで「Could not spawn process for application」エラー

AWSで起動しているRedmineのEC2をt2.microからt2.small …

CentOS 6.5にgit連携のTracを構築する

秋の夜長に自宅でTracサーバを構築してみる。 ひとまずRedmineはいったん …

RedmineとGitLabを同じサーバにインストールする

Redmineでプロジェクトに設定できるGitはローカルのみ(Redmineと同 …

動画間の広告を飛ばすのが面倒になったのでYoutube Premiumに加入しました

テレビのCMは全然見る方なんですが、Youtubeの動画の間の広告ってなんか流し …

共有Googleカレンダーを自分のカレンダーに追加してiPhoneに同期する

配信ライブカレンダーという共有カレンダーを作りました。 このようなGoogleの …

Redmine3.0.0に CSV Importerプラグインをインストールする

バグ管理や開発の現場だけではなく進捗管理などにも重宝出来るRedmine。 その …

Redmine 3.0.0 のメールサーバーでGoogleApps SMTPサーバーを利用する

Redmineのメール通知サーバーとしてGoogleAppsを使用する方法です。 …