名古屋大学 CAS 認証を用いたアンケートシステムの構築○A)

1大川敏生 A)、柘植朗 A)

共通基盤技術支援室	  情報通信技術系

概要

利益相反マネジメントは、名古屋大学とその役員、教員及び職員が産学連携を含む社会貢献活動を安心して推進することができるようにするための仕組みである。
自己申告は紙面で行われ、毎年数百枚の一次申告をエクセルにより編集・集計を行い、二次申告が必要な方を抽出する。
今回の業務依頼は、これら自己申告の集計業務の効率化を図るために、ホームページを用いた自己申告システムを構築することである。
一次自己申告のホームページは、申告に必要な項目に回答するアンケートシステムである。
利益相反マネジメントは専門性の高い事務作業であるため、電子化に移行する業務の掌握と整理に時間を要した。	  また、全教職員が対象となるため、名大 ID を用いた認証と利用者諸情報の取得を行った。
認証サービス利用にあたっては、情報連携統括本部より、PHP による CAS 認証を利用できるライブラリを提供していただき、短時間にシステムを構築する事ができた。[1]今回は簡便かつ高機能な CAS 認証サービスを用い、名大 ID から必要な情報を取得し、簡易データベース
SQLite3 により情報を管理する。	  設問の回答に応じて設問を変更させ、記載漏れの出来ないアンケートシステムを実現させるために Javascript、jQuery-ui を活用した動的なホームページを構築した。
この CAS 認証サービスを用いることで、ホームページを用いた各種申請等において諸情報の入力作業の省力化と入力ミスを実現できる。

2構築環境

既存の産学官連携サーバは、通常のホームページの他に、CAS 認証を組み込んだ unite（ユナイト）が稼働しており、MySQL によるデータの管理が行われている。
今回の利益相反マネジメント自己申告サービスは、これらの既存サービスに影響を与える事がないように細心の配慮を払った。
必要な環境は以下とおりである。
2.1

Linux(CentOS)、Web サーバ

Apache2.2.3、PHP5.1.6、SQLite3、mod_SSL、が協調した一般的な構成で運用されているサーバである。
PHP から利用される SQLite3 サービスも通常、初期設定で利用できる環境が整っている場合が多く、産学官連携サーバにおいても、同様に準備されていた。
2.2

CAS 認証、サーバ証明

CAS 認証を利用する場合、情報連携統括本部のホームページより申請書式をダウンロードして、必要事項を記載して書面にて申請を行った。
「図 1.」「表 1.」[2][3]	  今回は申請前に試験環境を準備していただき、アンケートサービスのプログラミングと平行して構築作業を行った。
CAS 認証を行うためには、OpenSSL 等によるサーバ証明が必要となる。CAS サーバとブラウザの Cookie

とのやり取りにセキュアな通信が必要とされているためである。[1]図 1. 名古屋大学認証基盤サービス利用申請書の記入例

表 1. 認証基盤サービス属性一覧

2.3

データベース SQLite3[4]アンケートの回答を管理するためのデータベースシステムは、unite により MySQL が利用されているため、SQLite3 による運用を行った。当サービスによるデータベースの利用頻度は、レコード件数 1,000 件程度、高度なトランザクションは行わないとした。
CAS 認証により、図 1. 表 1. で申請した属性値の参照が可能となるため、当自己申告ページへ来訪時に、レコードを登録する運用を行った。	  このため、自己申告の登録ボタンでは、レコードの修正する方法である。
2.4

入力支援

紙面による自己申告は、A4 サイズで 2 ページあり、そのままではパソコンの画面をスクロールさせて入力することになり、見落とし未回答等の不具合が発生する。	  入力画面をスクロールさせずに 1 画面に表示させたい要望もあり、ホームページ上でタブ表示を実現させる jQuery-UI[5]のライブラリを用いた。
また、設問の見落とし未回答を防ぐために、回答状態を示すインディケータと申請ボタンの表示・非表示を Javascript によりプログラミングを行った。

3

利益相反マネージメント自己申告の流れ

CAS 認証後、直ちに自己申告ページが表示される。	 
この状態では CAS 認証により利用できる所属等の情報をもとに、レコードが登録されている。「図 2.」
申告ページをコンパクトにするために、設問の小さい文字はマウスを乗せることで、文字を大きくする
Javascript を施した。
二次申告が必要のない方は、画面のスクロール無しに、淡々と簡便に 1 ページで自己申告を行う事が可能である。	  ただし、回答に応じて、タブ表示の設問が表示される。「図 3.」
回答状況のインディケータを準備し、登録ボタンは、回答が完了するまで表示されないようにした。「図 4.」

図 2. 認証直後

図 3. タブ表示の設問

図 4. 申請ボタン表示

登録完了時には、自己申告が行われた事を登録されたメールアドレスに送信する。「図 5.」
メール内容には、申告内容は明記せず、当自己申告のホームページで確認することで申告内容の一元化を図る。

4稼働実績

図 5. 登録メール

平成 25 年、当サービスを利用した、第一次利益相反マ
ネジメント自己申告件数は、「表 2.」に示す通り、当初の見込み内である。	  システムの過負荷や異常動作等の障害は発生していない。	  当ホームページは学内限定としており、さらに開設期間を設けている。

表 2. 登録状況
集計期間
来訪者数
自己申告数
紙面申請

2013.1.10 – 2013.5.7 (118day)
47937417

研究協力部社会連携課の自己申告担当者による集計のため管理ページを作成し、画面に表示された csv 形式のテキストをコピー＆ペーストすることで、エクセル等の表計算への移植を可能にした。
「図 6.」	  管理ページの閲覧制限は、名大 ID を用いて行っている。
レコードの CSV 形式出力は、PHP のコマンド fputcsv による出力を行った。	  また、表示文字コードは、
SQLite3 の UTF-8 形式から、Shift-JIS へ変更することで、パソコンへの移植を容易にした。「図 7.」
mb_convert_variables("SJIS-win","UTF-8",$RS);$out = fopen('php://output','w');	  ↑※文字コード変換
foreach($RS as $R){fputcsv($out,$R);	  ←※レコードを CSV 変換}
fclose($out);
図 6. 管理者用データ表示

5

図 7. csv 表示部

考察

当サービスにおいて情報連携統括本部から提供された CAS 認証のための PHP ライブラリは、とても扱いやすく PHP を利用したホームページを作成した方であれば容易である。	  作成当初名大 ID を利用するためには、LDAP しか考えられなかったが、CAS 認証の仕組みを知って、今後同様の業務において、多大な効果があると考える。	  参考文献[1]にある、名古屋大学情報連携基盤センターニュースの CAS 認証を紹介記事は作業を始める前に一読される事を強くお勧めする。	  仕組みを理解することでより身近なサービスとなる。
また、CAS 認証はサーバ証明と併用することにより、申請した公開される URL からの認証要求しか受けないこの仕組みは、セキュリティにおいても堅牢と考える。
運用管理面については、毎年行う保守作業は 1)ホームページの公開ディレクトリを入れ替えること、
2)SQLite3 データベースファイルの初期化の 2 点であり、保守性においても容易である。	  SQLite3 データベースファイルは、フリーソフトで編集作業が可能である。	  今後、アクセスの増大やレコードの増大が発生しうる場合、データベースシステムの更新が必要になるだろう。

6

謝辞

当報告のご快諾、ホームページ動作の提案と精査等をしていただきました研究協力部社会連携課	  鎌澤幸彦様、リサーチ・アドミニストレーション室	  石川綾子様。	  当業務をご提案いただきました前任者であられた大江尚美様、片岡憲治様、産学官連携推進本部のサーバ環境を管理され、作業環境を準備していただきました産学官連携コーディネーター	  武野彰様にお礼申し上げます。

参考文献
[1]

「CAS によるセキュアな全学認証基盤の構築」名古屋大学情報連携基盤センターニュース(Vol.4, No.3,pp. 179 -- 187) (http://www2.itc.nagoya-u.ac.jp/pub/pdf/pdf/vol04_03/179_187service02.pdf)[2]

名古屋大学認証基盤サービスの利用申請(http://www.icts.nagoya-u.ac.jp/info/nuid.html#riyoushinsei)[3]

名古屋大学認証基盤サービスで利用できる項目(http://www.icts.nagoya-u.ac.jp/images/stories/nagoya_uid/pdf/nuid_info_20120501.pdf)[4]

SQLite ポケットリファレンス 著者：五十嵐貴之	  発行所：技術評論社[5]

jQuery user interface (http://jqueryui.com)