シングルサインオン実証実験報告

Shibboleth IdPの構築** 髙井昌彰 ** 永井謙芝，山本哲寛，* 北大情報基盤センター** 北大企画部情報基盤課ネットワークチーム

北海道大学におけるShibboleth実証実験
 IdPの構築
 廉価な機器による実装
 ID/Password認証連携の実証試験
 PKI認証連携の実証試験

 プライベート認証局の利用
 専用のプライベートCAを新設し、IdPサーバ証明書を発行
 クライアント証明書は既設のプライベートCAから発行

 既設の無線LAN認証テストベッドの有効活用
 新規に構築したサーバは１台（IdP01+IdP02+CA） eduroam用クライアント証明書を流用（新規発行なし）
 既設LDAPサーバを利用既存システムA群（中核）北大SSOシステム

Web
アプリA

SSOサーバ教職員

ポータルにログイン

ID・PW
又はICカード認証

レポジトリA（Entrust GetAccess）
リバース
プロキシ

代理認証

サーバ証明書既存システムB群（連携）

認証サーバ（ポータル）Web
アプリB
レポジトリB
サーバ証明書LDAP

システムA、B群

既存システムC群
個別ログイン可
（従来型）

Web
アプリC
レポジトリC
サーバ証明書システムC群

Shibboleth実証実験システム
北大SSOと連携（予定）

他機関のSP

LDAP

認証

IdP01,IdP
IdP02
Shibboleth専用
プライベート認証局
サーバ証明書SINET3HP DL380 / Vmware

無線LAN用VLAN

HINES
backbone

Shibboleth環境に接続
・ ID/Password認証
またはEduroam対応AP

LDAPサーバ・ PKI認証RADIUSサーバ

附属図書館利用者に対しテストIDを配布（未定）L3SW（既設）
L3SW（既設）
L3SW

無線AP

無線AP

クライアント
証明書発行

プライベート認証局

AP-5100AW

eduroam利用も可能

無線AP

無線LAN認証ローミングテストベッド

クライアント証明書

SSOカードと連携（予定）実証実験に使用した証明書
Shibboleth専用プライベートCA発行

既設プライベートCA発行

IssuerSubject

CA証明書

サーバ証明書C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
OU=Information Initiative
Center
CN=Hokkaido University
Private CA for Shibboleth

C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
OU=Information Initiative
Center
CN=Hokkaido University
Private CA for Shibboleth

C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
CN=Hokkaido University
Test CA

C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
CN=Hokkaido University
Test CA

C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
OU=Information Initiative
Center
CN=Hokkaido University
Private CA for Shibboleth

C=JP
O=Hokkaido University
OU=Information Initiative
Center
L=Academe
CN=idp01.iic.hokudai.ac.jp

Subject:
C=JP
ST=Hokkaido
L=Sapporo
O=Hokkaido University
CN=Hokkaido University
Test CA

C=JP
O=Pentio
OU=network
OU=iic
OU=hokudai
OU=Certificate by PentioPKI
PrivateCA
CN=et-yamamoto
emailAddress=etyamamoto@iic.hokudai.ac.jp

CA証明書

クライアント証明書

IdP構築時に困ったこと
 初期構築時 CiNiiにはログインできても、ploneにログインできない「eduPersonPrincipalName」が渡っていなかった

原因： attribute-filter.xml内のAttributeRuleエレメント：attributeID属性とattribute-resolver.xml内のAttributeDefinitionのid属性の値について大文字・小文字の区別を間違えて記述していた

 証明書認証移行時
 既設LDAPサーバをできるだけいじくりたくない〜「 eduPersonPrincipalName 」を追加したくない〜

解決策：
LDAPに格納されていた情報「sn」を、「eduPersonPrincipalName」に格納

Attribute-resolver.xmlの変更点
変更前（395行目あたり）<resolver:AttributeDefinition id="principalName" xsi:type="Scoped"
xmlns="urn:mace:shibboleth:2.0:resolver:ad"
scope="iic.hokudai.ac.jp"
sourceAttributeID="eduPersonPrincipalName"><resolver:Dependency ref="remoteUser" />変更後（395行目あたり）<resolver:AttributeDefinition id="principalName" xsi:type="Scoped"
xmlns="urn:mace:shibboleth:2.0:resolver:ad"
scope="iic.hokudai.ac.jp" sourceAttributeID="sn"><resolver:Dependency ref="remoteUser" />IdP構築のマニュアルにない注意点●JDKインストール後作業としてjdk6をインストールした後で証明書を取り込まなくてはならない。しかし実際には、下記の作業をしないと、発行した証明書はうまく取り込めない。（jdkで利用する証明書は、適当にjdk付属のkeytoolで作成しても、動作はしてしまう）●jdkのKeystoreへの証明書・秘密鍵の取り込み方法（１）PKCS#12ファイルの作成# openssl pkcs12 -export-inkey 「サーバ証明書用CSRを作成した際に利用した秘密鍵ファイル」-in 「サーバ証明書ファイル」 -certfile 「ＣＡ証明書ファイル」-out 「PKCS#12形式ファイル」（２）PKCS#12ファイルの取り込み# keytool -list -keystore 「上記で作成したPKCS#12形式ファイル」-storetype pkcs12（PKCS#12ファイルの中身を確認できます）

IdP構築のマニュアルにない注意点（続き）# keytool -importkeystore -srckeystore 「上記で作成したPKCS#12形式ファイル」-srcstoretype pkcs12 -destkeystore /usr/java/tomcat/conf/keystore-deststoretype jks（PKCS#12ファイルをjdkのkeystoreに取り込みます。
この例ではkeystoreファイルは/usr/java/tomcat/conf/keystoreとしています）# keytool -list -keystore /usr/java/tomcat/conf/keystore（jdkのkeystoreに取り込めたかどうかを確認できます）●参考ＵＲＬhttp://mage.oops.jp/pyuki/wiki.cgi?keytool
http://mage.oops.jp/pyuki/wiki.cgi?pcks8Tojks●その他、PrivateCAからサーバ証明書を発行した場合、NIIのCA証明書とPrivateCAのCA証明書の両方を/opt/shibboleth-idp/credentials配下に置かないと動作しない。

まとめと課題

ID/Password認証連携及びPKI認証連携に成功

ID/Password認証連携（H20.9.5）、PKI認証連携（H20.9.26）

Shibboleth（IdP）自体の導入は、さほど難しくない
 NII提供のマニュアル＋MailによるQ&Aでほぼ解決



特に高性能なサーバを必要としない
 接続試験程度であれば廉価なNote PCでも十分に機能 現在は、次年度の実運用を目指し、HP DL380にシステム移行済み（H21.3）



主に附属図書館利用者に対しテストIDを配布（未定） 利用者に使用感などのアンケート実施を計画



他機関との時刻同期の問題
 時刻同期不備のため、NII提供のploneに接続できなくなることが多々あった

実運用に向けた方針の検討
 既存システム（LDAP）との安全な連携方法の検討と実装


大学職員ID管理とShibboleth連携におけるID管理（既設LDAP内の情報とeduPersonPrincipalNameの関係等）