グーグル・アカウントの認証を利用したウェブ・アプリケーション〇川口雄 一 / 天使大学

yuuichi@tenshi.ac.jp
概要
グーグル・アカウントを、いくつかのウェブ・アプリケーションにおける認証で活用できたので報告する。ウェブ・アプリケーションとして、現在、大学の授業管理のために moodle を利用しており、今後、統計処理のために rstudio-server を利用する計画である。どちらも学外の商用 VPS 上で運用しており、大学 LDAP へはアクセスはできない。大学には Google Apps forEducation が導入されている。このアカウントを活用した。

キーワード

グーグル・アカウント、ウェブ・アプリケーション、moodle、rstudio-server.
上で Moodle や Mahara を構築・運用している。

1 はじめに以上の状況の下、本稿は、次に示す内容について説明する。

本学 (天使大学 / 北海道 札幌市) では、教育用の情報システムとして、Google Apps for Ed-ucation *1 (以降「Google Apps」) を利用している。学生全員にグーグル・アカウントを発行し、主に、電子メール (Gmail) とファイル保存(Google ドライブ) を使用している。
大学から公式に提供されている LMS / CMS(1) 大学が Google Apps のために発行しているグーグル・アカウントを、Moodleの認証システムとして利用できた。

(2) 統計処理教育用に導入を検討している
rstudio-server *2 においても、グーグル・アカウントを利用できた。

は Google Apps とは別なシステムである。こな お 、VPS は「 さ く ら の VPS」(プ ラのシステムは大学内からしかアクセスできな

ン 2G / HDD) *3 を利用している。OS は De-い。このため、宿題を週末に提出させるようなbian wheezy (amd64) である。Moodle / rstudio-使用方法には向かない。

server への登録学生数は約 800 (人)、同時アク

このため自分の授業のために、大学外にサーセス数は約 50 (人) である。

バ・コンピュータ (以降「VPS」) を借用し、この大学 ICT 推進協議会 2014 年度 年次大会, 宮城県仙台市, 2014 年 12 月 10 日
*1 http://www.google.co.jp/intx/ja/work/apps/education/*2 http://www.rstudio.com/products/RStudio/#Server*3 http://vps.sakura.ad.jp/

12 日

2 取組みの内容
本稿中に記す URL やバージョンは執筆時点のものである。

2.1 Moodle
使用した Moodle のバージョンは 2.7.2 であ

図2Moodle の POP3 サーバ管理画面

る。システム構築方法は、通常の方法に従った。

ホストの欄、右側にある説明には「DNS 名で実際には、古いバージョンの Moodle をアップはなく IP アドレスを使用してください。」とあグレードした*4 。

るが、その後に続く例では「ホストまたはアドMoodle の認証管理画面を図 1 に示す。

レスを設定できます」とあり、矛盾している。
今回は、DNS 名 pop.gmail.com を正引きして得た IP アドレスを複数、記入した。

Moodle と POP3 サーバ間の通信を暗号化するために、タイプとして「pop3cert」を指定した。

(2) ユーザ登録における指定
Moodle のユーザ管理画面を図 3 に示す。

図 1 Moodle の認証管理画面

この画面で「POP3 サーバ」(図中の赤丸) が有効になっていれば、ユーザ名とパスワードの組を POP3 サーバへ問合せることができる。
この仕組みを利用して、Moodle において、学生用グーグル・アカウントによる認証を使用できた。

図 3 Moodle のユーザ管理画面

必要な指定は 2 つである。
ユ ー ザ 名 と し て グ ー グ ル・ア カ ウ ン ト(1) POP3 サーバの指定
Moodle の POP3 サーバ管理画面を図 2 に示す。

(D Gmail の ド メ イ ン を 付 け た メ ー ル ア ドレ ス) を そ の ま ま 設 定 す る 。認 証 方 法 に は「POP3 サーバ」を選択する。

*4 https://docs.moodle.org/27/en/Upgrading_to_Moodle_2.7

以上で、グーグル・アカウントを利用して、Moodle に登録したユーザの認証ができた。

図 4 rstudio-server の教育・研究用価格

ウェブサイトにある、Open Source 版と Pro-fessional 版の比較を図 5 に示す。

2.2 rstudio-server
2.2.1 システム構築
使 用 し た rstudo-server の バ ー ジ ョ ン はpro-0.98.1062-amd64 である。システム構築方法は、管理者ガイド*5 に従った。
なお、rstudio-server 自体がウェブ・サーバとして動作し、http プロトコルの要求を受付けることができる。今回は、ひとつの VPS 上で、いくつかのウェブ・アプリケーションを動作させており、これらを単一のウェブ・サーバでまとめて管理するため、利用者からの http 要求を一
図 5 rstudio-server の比較

旦 nginx *6 で受け、これを rstudio-server へ渡す (proxy) 方式を用いた。

rstudio-server は、次に示す () アクセスのみ

Prfessional 版ではグーグル・アカウントを利用可能*7 である。

を受付けるよう設定した。

http://localhost:8787/rstudio/ ()2.2.2 いくつかある版
rstudio-server には、無料の Open Source 版と、有料の Professional 版がある。ただし、図 4に示すとおり、教育用 (teaching) であれば無料(Free) で使用でき、研究用 (research) であれば半額 (50%) で購入できる。また、Professional版には 45 日間の無料試用版があり、今回はこれを使用した。

2.2.3 必要な設定
必要な設定は 3 つである。

(1) サーバ設定ファイル
設定ファイル (/etc/rstudio/rstudio.conf)
中に下記の 1 行を加えると、グーグル・アカウントによる認証が有効になる。

auth-google-accounts=1
rstudio-server のログイン画面には、グーグル・アカウントの入力欄 (図 6) が現れる。
ただし、グーグル・アカウント以外の認証方法を使えなくなった。Moodle のように、ユーザ個々に対して認証の方法を設定できるかど
うか、管理者ガイドから読み取ることはできなかった。

*5 https://s3.amazonaws.com/rstudio-server/rstudio-server-pro-0.98.1079-admin-guide.pdf*6 http://nginx.org/ja/*7 LDAP や PAM も利用できる。

ひとつは、グーグル・アカウントと同名のユーザをローカルにも登録する方法である。この場合、「@」や「.」を含めた名前でローカル・アカウントを登録する。OS によってはこのような名前を許さない。実際には試していない。
もうひとつは、アカウントの対応表を作る方法である。今回は、こちらの方法を採用した。
図6

設定ファイル/etc/rstudio/google-accounts

グーグル・アカウントの入力欄(2) Google への登録に、下記のように対応を指定する。

Google の開発者画面にログインし、クライ

john.smith@gmail.com=jsmith

アントの ID とシークレットを取得する。合わsally.jones@gmail.com=sjones

せて、認証用の URI を指定する (図 7)。このとき、() に示した URL を使用する。nginx のURL を指定しても認証は有効にならない*8 。

左辺がグーグル・アカウント、右辺がローカル・アカウントである。
以上で、rstudio-server において、グーグル・アカウントを利用したユーザ認証ができた。

3

結び
本稿では、次に示す内容について説明した。

図 7 Google 開発者画面(1) 大学が Google Apps のために発行しているグーグル・アカウントを、Moodle

これで、rstudio-server がグーグル・アカウン
トの認証を利用することが登録された。の認証システムとして利用できた。

(3) Google の登録を rstudio-server に反映(2) 統計処理教育用に導入を検討している
rstudio-server においても、グーグル・ア設定ファイル (/etc/rstudio/google--カウントを利用できた。

client-secret) 中に下記の 2 行を加える。
Google の登録が rstudio-server に反映される。
client-id= ...(ID)

学外も含めた複数のサービスに対して、単一のアカウント認証を使用できるようになった。

client-secret= ...(シークレット)(4) アカウントの対応づけ
グーグル・アカウントとローカル・アカウン
トを対応づける方法は 2 つある。

謝辞
本研究は主に、天使大学 特別研究費 (2014 年度) により支援を受けている。

*8 認証に成功してリダイレクトされると「404 Not Found」のエラーになる。このときに、ホスト名 (localhost) を適切なホスト名に書換えれば、rstudio-server にアクセスできる。