熊 本 大 学 学 術 リポジトリ Kumamoto University Repositor Title 統 合 認 証 基 盤 を 用 いたWebホスティングサービスの 認 証 シ ステム 構 築 uthor(s) 針 木, 剛 ; 赤 坂, 浩 一 ; 古 村, 隆 明 ; 永 井, 靖 浩 Citation Issue date 2011-03-18 Type URL Presentation http://hdl.handle.net/2298/23552 Right
統 合 認 証 基 盤 を 用 いた Web ホスティングサービスの 認 証 システム 構 築 針 木 剛 1 赤 坂 浩 一 1 古 村 隆 明 2 永 井 靖 浩 2 京 都 大 学 情 報 環 境 部 1 京 都 大 学 学 術 情 報 メディアセンター 2 1 はじめに 京 都 大 学 では 平 成 22 年 度 より 統 合 認 証 基 盤 ( 全 学 ID シングルサインオン 認 証 局 統 合 ディレクトリデータ ベース IC カード) を 本 格 運 用 している 例 えば 全 学 の 教 職 員 向 け ID と 学 生 向 け ID を 統 合 した 全 学 ID を 格 納 したディレクトリデータベース ( 統 合 LDP) を 構 築 し 学 内 情 報 システムの 認 証 等 に 活 用 している また シ ングルサインオンの1つとして Shibboleth[1] システムを 稼 動 させるとともに 全 教 職 員 に 対 して 電 子 証 明 書 を 格 納 した IC 身 分 証 等 を 配 付 し セキュアな Web サービスの 多 要 素 認 証 に 利 用 している このような 統 合 認 証 基 盤 を 用 いて 学 内 構 成 員 向 けの Web ホスティングサービスに 対 して 以 下 の 3 点 の 改 善 を 実 施 し よりセキュアな 環 境 の 提 供 と 利 用 者 の 利 便 性 向 上 が 実 現 できたので 報 告 する ファイル 更 新 時 認 証 への 活 用 Web シングルサインオンのための Shibboleth の 導 入 IC カードによるログイン 認 証 の 導 入 2 Web ホスティングの 概 要 Web ホスティングサービスは 共 用 サーバ 型 と VPS 型 のサービスを 行 っており 通 常 業 務 としてシステム 運 用 管 理 及 び 利 用 者 対 応 がある 今 回 の 改 善 は 共 用 サーバ 型 のサービスを 対 象 としており このサービスでは 利 用 者 は コンテンツの 運 用 管 理 だけで Web サイトの 運 用 が 可 能 である システムは 以 下 のように 運 用 している OS は Linux Web サーバは pache [2] pache の 仮 想 ホスト 機 能 により 複 数 のホスト 名 の 処 理 ができるため 複 数 の 利 用 者 が Web サーバを 共 用 仮 想 ホスト 毎 に UNIX 系 システムのユーザ ID( 以 下 システム ID とする) を 割 り 当 て CGI のような 動 的 コ ンテンツの 生 成 等 機 能 は 当 該 システム ID の 権 限 において 実 行 3 ファイル 更 新 時 認 証 への 活 用 3.1 従 来 の 課 題 サイトの 運 用 に 関 してそのコンテンツ 管 理 を 一 人 で 行 うと いうことは 希 であり 例 えば 研 究 室 なら 教 員 と 学 生 学 科 専 攻 なら 複 数 の 職 員 で 行 う 従 来 Web ホスティングサー B 1 ID ビスでは システム ID を 利 用 者 アカウントとして 利 用 者 本 人 への 配 布 のみとしていたため 下 記 のような 課 題 があった XBX 複 数 利 用 者 でのシステム ID とパスワードの 使 い 回 し が 発 生 し 更 新 した 利 用 者 がわからない ( 図 1 参 照 ) 図 1 複 数 ユーザ 利 用 での 問 題
管 理 するサイトが 増 えるとその 度 にシステム ID が 配 布 され ID やパスワードを 管 理 する 手 間 が 増 える ( 図 2 参 照 ) 1 ID 2 ID X ID 図 2 複 数 システム ID 利 用 での 問 題 3.2 統 合 認 証 基 盤 を 用 いた 対 策 これを FTP サーバ ProFTPD [3] の 機 能 を 用 いて 本 人 認 証 の 機 能 とその 認 証 した 利 用 者 をシステム ID と 紐 付 けした 権 限 割 り 当 ての 機 能 ( 認 可 及 びアクセス 許 可 ) とに 分 離 した 本 人 認 証 には 学 内 構 成 員 全 員 に 割 り 当 てられた 全 学 ID を 格 納 した 統 合 LDP を 利 用 した B X ID BID XID 1 ID これにより 下 記 のように 改 善 できた 図 3 複 数 ユーザ 利 用 での 改 善 方 法 1. 各 利 用 者 の 全 学 ID でログインしてい るため ID とパスワードの 使 い 回 しが 抑 制 され コンテンツ 更 新 のトレーサ ビリティが 可 能 になり 情 報 セキュリ ティが 大 きく 改 善 された ( 図 3 参 照 ) 2. 各 利 用 者 の ID は 1 つであるが 利 用 者 に 設 定 された 権 限 によって 複 数 のサ イトが 管 理 できるため 複 数 ID を 管 理 する 手 間 がなくなり 利 用 者 及 びホス ティング 管 理 者 の 稼 働 が 軽 減 された ( 図 4 参 照 ) 図 4 ID 1 ID 2 ID X ID 複 数 システム ID 利 用 での 改 善 方 法 3.3 FTP サーバの 設 定 と 具 体 的 なファイル 更 新 フロー リクエストの 中 でホスト 名 を 指 定 できる http では 仮 想 ホスト 名 毎 に 個 別 設 定 が 可 能 だが ftp ではポート 番 号 や IP アドレスでしか 個 別 設 定 ができない そのため 今 回 の 対 策 では FTP サーバが 複 数 のハイポートで 待 ち 受 ける ように 設 定 して 各 ポートに 個 別 設 定 を 施 した 具 体 的 な 設 定 は 以 下 の 通 りである (リスト 1 参 照 ) 認 可 する 全 学 ID のリスト 紐 付 けしてファイルオーナとなるシステム ID 書 き 込 む 先 のホームディレクトリ (Web 公 開 用 のディレクトリを 含 む)
設 定 した 後 利 用 者 は 以 下 のフローでファイル 更 新 を 行 う 1. 利 用 者 はまず 統 合 認 証 基 盤 の LDP サーバに 接 続 し 本 人 認 証 を 行 う 2. 本 人 認 証 後 ポート 番 号 に 設 定 された 認 可 情 報 にマッチした 全 学 ID だけが 選 別 される 3. 認 可 処 理 後 ポート 番 号 に 設 定 されたシステム ID をアサインしその 権 限 でファイル 更 新 を 行 う また 当 該 システム ID のホームディレクトリがトップディレクトリとなっている リスト 1 FTP サーバの 設 定 Defaultddress 192.0.2.1 # ア ド レ ス Port 0 # デ フ ォ ル ト の ポ ー ト は な し DefaultRoot ~ # ト ッ プ デ ィ レ ク ト リ は ホ ー ム... <Global > TLSEngine on TLSProtocol SSLv3 TLSRequired on uthorder mod_auth_file.c mod_ldap.c # フ ァ イ ル 認 証 と L D P 認 証 uthuserfile / path /to/ passwd # フ ァ イ ル 認 証 用 フ ァ イ ル uthgroupfile / path / to/ group LDPServer ldap. example. kyoto -u.ac.jp :636 # L D P サ ー バ LDPUseSSL on # S S L を 使 う LDPuthBinds on # B i n d す る LDPDNInfo " BindDN " " password " # B i n d す る D N と パ ス ワ ー ド LDPDouth on " base " "( uid =%v)" # 認 証 の 入 力 I D を D N に LDPDoUIDLookups off # L D P か ら は シ ス テ ム I D の 情 報 を 取 得 し な い LDPDoGIDLookups off LDPForceDefaultUID on LDPForceDefaultGID on LDPGenerateHomedir on # L D P か ら は ホ ー ム の 情 報 を 取 得 し な い LDPGenerateHomedirPrefixNoUsername on... </ Global > < VirtualHost 192.0.2.1 > # ポ ー ト ご と の V i r t u a l H o s t 設 定 Port 59000 # ポ ー ト 番 号 ( ハ イ ポ ー ト ) LDPDefaultUID 59000 # ア サ イ ン す る シ ス テ ム ID LDPDefaultGID 59000 LDPGenerateHomedirPrefix / home /59000 # ホ ー ム デ ィ レ ク ト リ <Limit ll > Order deny, allow DenyUser ll llowuser OR 全 学 ID1 全 学 ID2... # 認 可 す る 全 学 I D リ ス ト </ Limit > </ VirtualHost > 3.4 利 用 者 からのコメントと 対 応 今 回 の 新 しいファイル 更 新 方 法 を 運 用 するにあたり 利 用 者 からのコメントとそれらの 対 応 について 記 述 する 同 一 の 仮 想 ホストの 中 に 複 数 の 研 究 室 や 部 署 をディレクトリに 分 けてコンテンツ 管 理 しても 他 研 究 室 や 他 部 署 のディレクトリのコンテンツに 対 して 書 き 込 み 制 限 ができないため 複 数 の 組 織 のコンテンツの 運 用 に は 向 かない 単 一 組 織 でサービスを 利 用 するか それが 難 しい 場 合 は 適 宜 バックアップにて 対 応 を 推 奨 コンテンツ 作 成 業 者 にファイル 更 新 を 依 頼 したいが 学 内 構 成 員 のみの 全 学 ID を 格 納 した 統 合 LDP に は 業 者 の ID が 存 在 しない ProFTPD は 認 証 に 統 合 LDP を 利 用 した 認 証 に 加 えて ローカルホストのファイル 認 証 の 併 用 が 可 能 なので 業 者 用 アカウントをファイル 上 に 作 成 して 対 応 可 能 従 来 は SCP や SFTP でファイル 更 新 をお 願 いしていたが 新 しいファイル 更 新 方 法 では 暗 号 化 した SSL 上 の FTP を 利 用 する 一 部 のコンテンツ 作 成 ソフトがこのプロトコルに 非 対 応 で サーバ 同 期 機 能 を 利 用 することができない まず 自 分 の PC 端 末 内 に 保 存 してから 当 該 プロトコルに 対 応 したソフトウェアで 更 新 が 可 能
4 Web シングルサインオンのための Shibboleth 導 入 4.1 サービス 導 入 の 経 緯 従 来 Web コンテンツの 閲 覧 制 限 や 動 的 コンテンツによるコンテンツマネジメントシステムでは 認 証 や 認 可 をそ れぞれ 利 用 者 側 で 準 備 してきたが 統 合 認 証 基 盤 の 整 備 に 伴 い これを 利 用 したいといった 要 望 が 増 えてきた そ こで Web ログイン 環 境 としてシングルサインオンシステム (Shibboleth) を Web ホスティングサービスに 導 入 した 4.2 Shibboleth とは シングルサインオンは 複 数 の Web システムを 利 用 する 際 一 度 ログイン 操 作 しておくと 他 のシステムでは ログイン 操 作 をすることなくシステムを 利 用 できるようにする 仕 組 みである Shibboleth は SML2.0 に 準 拠 し た Federation システムで 統 合 認 証 基 盤 の 一 つとして 平 成 21 年 度 より 運 用 している なお Shibboleth 認 証 に は 統 合 LDP を 利 用 している Shibboleth は 国 立 情 報 学 研 究 所 で 大 学 間 連 携 のために 利 用 されており 京 都 大 学 も 含 め 多 くの 大 学 で 導 入 運 用 の 実 績 がある 4.3 Shibboleth の 動 作 Shibboleth は 電 子 的 なコンテンツ 等 リソースを 提 供 するシステム (Service Provider SP) と 認 証 認 可 の 判 定 及 び 属 性 情 報 を 提 供 するシステム (Identity Provider IdP) が 独 立 しており SP と IdP の 組 織 (ドメイン) が 違 っ てもシングルサインオンが 可 能 である 認 証 のフローを 図 5 に 示 す (1) クライアントのブラウザから SP1 に Web アクセス (2) SP1 が IdP へリダイレクトするよう 指 示 SP1 SP2 SPX (3) クライアントは IdP にアクセス (4) IdP の 認 証 済 み cookie があればそのまま SP1 へリ (1) (2) (5) ダイレクトを 指 示 なければ IdP 認 証 画 面 で 認 証 後 cookie をセットして SP1 へリダイレクトを 指 示 (5) SP1 に IdP から 受 けとった 属 性 情 報 を POST する ま た SP1 の 認 証 済 みという cookie がセットされるの 図 5 (3) (4) Shibboleth の 動 作 IdP で 以 降 はログイン 状 態 で 継 続 的 にアクセス このように 一 度 IdP で 認 証 すれば 例 えば 次 に SP2 にアクセスした 場 合 (4) の 認 証 画 面 での 入 力 が 不 要 になる ため 利 用 者 は 意 識 せずにシングルサインオン 状 態 となる また SP が 受 けとった 属 性 情 報 は Web サーバの 認 可 設 定 に 利 用 できるだけでなく CGI などの 動 的 コンテンツ では Web サーバの 環 境 変 数 の 値 として 得 られるので コンテンツ 管 理 システムなどで 属 性 に 対 し 閲 覧 者 や 編 集 者 のような 権 限 を 自 動 で 割 り 当 てることも 可 能 となる なお 通 常 は IdP へリダイレクトする (2) の 前 に DS(Discovery Service) により 複 数 の IdP から 当 該 IdP を 選 択 する 場 合 があるが 京 都 大 学 では 運 用 していないため 本 稿 では 割 愛 する
4.4 仮 想 ホスト 環 境 での 利 用 方 法 Shibboleth の SP は 共 用 型 の Web ホスティングサーバ 内 で 動 作 させている この 際 複 数 の 仮 想 ホスト 名 に 対 応 させるには 各 ホスト 名 に 対 し pplicationid を 設 定 し さらに Shibboleth SP ではデフォルトの 設 定 に 加 え pplicationid 毎 に 下 記 情 報 の 上 書 きが 可 能 である (リスト 2 参 照 ) 仮 想 ホスト 名 のサーバ 証 明 書 とその 秘 密 鍵 取 得 する 属 性 情 報 に 関 する 設 定 ( 環 境 変 数 名 など) IdP に 関 する 設 定 (サーバ 証 明 書 URL など) リスト 2 pplicationid を 上 書 きする 設 定 <!-- p p l i c a t i o n I D の 設 定 --> <RequestMap applicationid =" default " > <Host name=" www. example. kyoto -u. ac. jp" authtype =" shibboleth " requiresession =" true "/> <Host name=" www1. example. kyoto -u. ac. jp" applicationid =" vhost1 " authtype =" shibboleth " requiresession =" true "/> </ RequestMap >... <pplicationdefaults id=" default " policyid =" default " entityid =" https :// www. example. kyoto -u.ac.jp/ shibboleth -sp"... > <!-- デ フ ォ ル ト の p p l i c a t i o n I D の 設 定 --> < CredentialResolver type =" File " key ="/ etc / pki / tls / private / www. example. kyoto -u.ac.jp.key " certificate ="/ etc / pki / tls / certs / www. example. kyoto -u.ac.jp.cer "/> < Sessions... /> <!-- I d P へ の 接 続 方 法 --> <MetadataProvider type=" XML " file="idp - metadata. xml "/> <ttributeextractor type=" XML " file=" attribute - map. xml "/> <!-- p p l i c a t i o n I D の 上 書 き 設 定 --> <pplicationoverride id=" vhost1 " entityid =" https :// www1. example. kyoto -u.ac.jp/ shibboleth -sp"> < CredentialResolver type =" File " key ="/ etc / pki / tls / private / www1. example. kyoto -u.ac.jp.key " certificate ="/ etc / pki / tls / certs / www1. example. kyoto -u.ac.jp.cer "/> < Sessions... /> <MetadataProvider type=" XML " file="idp - metadata_for_vhost1. xml "/> <ttributeextractor type=" XML " file=" attribute - map_for_vhost1. xml "/> </ pplicationoverride > </ pplicationdefaults > SP での 各 種 設 定 後 利 用 者 は Web 公 開 用 のディレクトリの.htaccess ファイルの 設 定 だけで 利 用 可 能 となる 4.5 利 用 者 からのコメントと 対 応 Web ホスティングサービス 上 で Shibboleth サービスの 実 運 用 を 始 めてから 日 が 浅 くまだ 利 用 者 も 少 数 である が 新 しい 技 術 であるため 技 術 的 な 質 問 や 運 用 方 法 に 関 する 質 問 が 多 い 特 に SP で Web アプリケーションを 利 用 する 場 合 そのアプリケーションでの 設 定 方 法 もアドバイスする 必 要 があるため 利 用 者 と 同 じテスト 環 境 を サービス 運 用 側 でも 準 備 して 対 応 している 5 IC カードによるログイン 認 証 の 導 入 5.1 サービス 導 入 の 狙 い 全 教 職 員 に 配 布 した IC カードに 含 まれる 電 子 証 明 書 を 利 用 して ID とパスワードに 比 べてよりセキュリティの 高 い Web ログイン 環 境 を 利 用 者 に 提 供 できる 具 体 的 には 社 会 的 影 響 の 大 きな 学 内 Web コンテンツに 対 する 制 限 に 適 用 することを 想 定 している
5.2 IC カードログイン 認 証 方 法 本 サービスは Web サーバの SSL によるクライアント 認 証 を 利 用 する 京 都 大 学 の IC カードの 電 子 証 明 書 は 学 内 でプライベート C を 構 築 し そこで 発 行 している 従 って 通 常 の Web サーバにバンドルされているパブリック C の 証 明 書 リストに 大 学 のルート 証 明 書 も 追 加 して 設 定 する 必 要 がある あとは 利 用 者 が Web 公 開 用 のディレクトリの.htaccess ファイルに SSL クライアント 認 証 する 設 定 をするだけで 利 用 可 能 となる (リスト 3 参 照 ) ブラウザから IC カードを 用 いて 接 続 すると Web サーバの SSL 関 係 の 環 境 変 数 でクライアント 証 明 書 の 内 容 が 得 られるのでその 中 にある ID 情 報 で 本 人 確 認 ができる リスト 3 IC カードログイン 認 証 をする 設 定 SSLVerifyClient require SSLVerifyDepth 2 # 京 都 大 学 は 2 階 層 SSLRequire ( %{ SSL_CLIENT_S_DN_CN } in {" 全 学 ID1 "," 全 学 ID2 "...} and \ %{ SSL_CLIENT_S_DN_OU } eq " Kyoto University Faculty C" and \ %{ SSL_CLIENT_S_DN_O } eq " Kyoto University " and \ %{ SSL_CLIENT_S_DN_C } eq "JP" ) # こ こ で 証 明 書 を 制 限 す る こ と も 可 能 SSLOptions + StdEnvVars \ # C G I な ど で S S L 関 係 の 環 境 変 数 が 利 用 可 能 + FakeBasicuth # B a s i c 認 証 と 併 用 も 可 能 # 以 下 は B a s i c 認 証 と 併 用 す る 場 合 uthname " ICcard auth " uthtype Basic uthbasicprovider file uthuserfile "/ path / to /. htpasswd " require valid - user # / path /to /. h t p a s s w d に は 下 記 の よ う に 全 学 I D を 羅 列 # /C=JP/O= Kyoto University /OU= Kyoto University Faculty C/OU= Regular /CN= 全 学 ID1 : xxj31zmtzzkv ## こ こ で xxj31zmtzzkv は 文 字 列 password の D E S ハ ッ シ ュ 値 で 固 定 値 5.3 利 用 者 からの 要 望 と 対 応 IC カード 及 び 電 子 証 明 書 を 用 いた IC カード 認 証 ( 多 要 素 認 証 ) は 人 事 給 与 等 の Web サービスで 運 用 中 である が Web ホスティングサービスに 対 しては まだ 利 用 者 へのアナウンスが 十 分 でない 本 方 式 はより 高 いセキュ リティが 必 要 となるコンテンツには 有 効 な 手 段 であるので 利 用 者 にその 旨 アナウンスしていきたい 6 まとめ Web ホスティングサービスに 対 して 統 合 認 証 基 盤 を 適 用 させ 以 下 の 事 を 明 らかにした セキュリティに 関 して (1) ファイル 更 新 時 の ID の 使 い 回 しを 抑 制 ができた (2) IC カード 認 証 でより 高 いセキュリティが 必 要 になる Web コンテンツの 保 護 が 可 能 になった 利 用 者 の 利 便 性 に 関 して (3) ファイル 更 新 時 の ID を 統 合 認 証 基 盤 の 全 学 ID に 変 更 し 複 数 のサイトの 更 新 も 可 能 になった (4) 全 学 ID 及 び Shibboleth システムにより Web シングルサインオン 環 境 が 提 供 できた 今 後 システムの 安 定 運 用 に 加 え Shibboleth システムや IC カード 認 証 について 利 用 者 の 認 知 度 を 向 上 させ 利 用 を 促 進 する また 対 応 事 例 を 増 やすとともに 安 全 性 や 利 便 性 の 観 点 から 有 効 性 を 検 証 していく 参 考 文 献 [1] Shibboleth http://shibboleth.internet2.edu/ [2] pache http://httpd.apache.org/ [3] ProFTPD http://www.proftpd.org/