2009 年 9 月 2 日 SP 構 築 運 用 手 順 書 (Ver2.0) ( 軽 井 沢 セミナー 用 ) 1
1. 概 要... 3 1-1. SP の 機 能... 3 1-2. 構 築 方 式 について... 4 2. インストール... 5 2-1. 貴 学 にて SP をインストールする 場 合 の 構 築 手 順... 5 2-1-1. shibboleth (SP version2.0)の 動 作 要 件... 5 2-1-2. OS をインストールする... 5 2-1-3. shibboleth のインストール... 6 2-1-4. サービス 起 動 停 止 方 法... 7 3. 運 用 設 定 カスタマイズ... 8 3-1. 接 続 までに 必 要 なセッティング... 8 3-1-1. shibboleth の 設 定... 8 3-1-2. Apache の 設 定 とメタデータの 作 成... 9 3-1-3. メタデータの 更 新... 10 3-1-4. SP への 接 続 確 認... 11 3-1-5. IdP との SP 接 続 確 認... 11 3-2. 構 築 後 のカスタマイズ... 14 3-2-1. IdP-アプリケーション 間 で 受 け 渡 す 属 性 の 追 加 方 法... 14 3-2-2. メタデータの 自 動 更 新 設 定 方 法... 15 3-2-3. メタデータ 署 名 の 検 証 設 定 方 法... 16 4. 関 連 URL... 18 2
1. 概 要 本 書 は SP の 構 築 手 順 および 運 用 方 法 を 説 明 したものです 1-1. SP の 機 能 まず SP の 動 作 について 簡 単 に 説 明 します 図 1 SP の 機 能 ブロック 図 1 SP の 機 能 ブロックは SP の 機 能 を 単 純 化 したブロックで 示 しています SP は IdP と 連 携 して 以 下 の2つの 動 作 を 行 います ユーザの 認 証 を IdP に 要 求 する ユーザの 属 性 を 安 全 に IdP から 受 信 して アプリケーションに 渡 す 認 証 要 求 ユーザが SP にアクセスすると SP は IdP にリダイレクトを 行 い IdP にユーザの 認 証 を 要 求 します IdP はこれを 受 けてユーザの 認 証 を 行 います 認 証 方 式 としては ID/ パスワード 認 証 や クライアント 証 明 書 による 認 証 等 の 認 証 方 式 が 設 定 可 能 です ユーザの 認 証 が 行 われると SP は IdP から 認 証 アサーションを 受 信 してユーザを 認 証 し たことを 確 認 します ただし ここで 受 信 するのはユーザを 認 証 したという 事 実 のみで そのユーザが 誰 かという 情 報 は 渡 されません 3
属 性 の 安 全 な 受 信 SP は IdP に 必 要 とする 属 性 を 要 求 します IdP は 要 求 された 属 性 を 属 性 アサーションに 入 れて SP に 送 信 します SP はこれを 受 信 して 下 記 を 行 います 属 性 アサーションから 属 性 を 取 得 して 属 性 の 名 称 を IdP 間 で 利 用 する 名 称 から ア プリケーションに 渡 すための 名 称 に 変 換 する ( 図 1の 属 性 マッピング 機 能 ) アプリケーションへのアクセスを 許 可 して 良 いかどうか ポリシーを 確 認 します 問 題 がない 場 合 は 属 性 をアプリケーションに 渡 します ( 図 1のポリシー 管 理 機 能 ) アプリケーションでは 属 性 を 受 け この 属 性 によりユーザに 対 する 認 可 判 断 を 行 いま す 以 下 の 章 では SP の 構 築 手 順 を 示 すとともに 上 記 機 能 の 設 定 方 法 および これらの 機 能 を 用 いて SP を 運 用 するための 方 法 について 説 明 します 1-2. 構 築 方 式 について 本 書 では 貴 学 にてサーバに OS から shibboleth(sp)までインストール 設 定 を 行 い 構 築 する 方 式 について 説 明 します 4
2. インストール 2-1. 貴 学 にて SP をインストールする 場 合 の 構 築 手 順 2-1-1. shibboleth (SP version2.0)の 動 作 要 件 Apache HTTP Server 2.2 以 上 Java 5 以 上 (Plone を 使 用 する 場 合 には 必 要 ) (ただし CentOS に 付 属 する Gnu Java は 利 用 できません Sun の Java を 利 用 してください ) 2-1-2. OS をインストールする 1 OS での 設 定 OS:CentOS 5.3 インストーラでインストールするもの Web サーバー (HTTP のみ) unixodbc その 他 のパッケージがある 場 合 は 必 要 に 応 じてインストールしてください ただし Java 開 発 は 後 の 手 順 で 別 にインストールします ネットワーク 設 定 環 境 に 合 わせ ホスト 名 ネットワーク セキュリティを 設 定 して 下 さい SP では shibd サービスが 通 信 を 行 います 2 DNS へ 登 録 する 新 しいホスト 名 と IP アドレスを DNS に 登 録 してください 3 時 刻 同 期 を 設 定 する ntp サービスを 用 い 貴 学 環 境 の ntp サーバと 時 刻 同 期 をしてください Shibboleth では 通 信 するサーバ 間 の 時 刻 のずれが 約 5 分 を 越 えるとエラーに なります 5
2-1-3. shibboleth のインストール 1 shibboleth-sp 関 連 のインストールファイルのダウンロード http://shibboleth.internet2.edu/downloads.html から shibboleth-sp 関 連 のインス トールファイルをダウンロードします 以 下 は 2009/7/30 時 点 での 最 新 版 です OS が 64bit 版 の 場 合 64bit 対 応 のインストールファイルをご 使 用 ください 対 象 ファイル log4shib-1.0-2.i386.rpm log4shib-debuginfo-1.0-2.i386.rpm log4shib-devel-1.0-2.i386.rpm log4shib-doc-1.0-2.i386.rpm opensaml-2.2-1.i386.rpm opensaml-debuginfo-2.2-1.i386.rpm opensaml-devel-2.2-1.i386.rpm opensaml-docs-2.2-1.i386.rpm shibboleth-2.2-3.i386.rpm shibboleth-debuginfo-2.2-3.i386.rpm shibboleth-devel-2.2-3.i386.rpm shibboleth-docs-2.2-3.i386.rpm xerces-c-3.0.1-1.i386.rpm xerces-c-debuginfo-3.0.1-1.i386.rpm xerces-c-devel-3.0.1-1.i386.rpm xerces-c-doc-3.0.1-1.i386.rpm xml-security-c-1.5.0-1.i386.rpm xml-security-c-debuginfo-1.5.0-1.i386.r pm xml-security-c-devel-1.5.0-1.i386.rpm xmltooling-1.2-1.i386.rpm xmltooling-debuginfo-1.2-1.i386.rpm xmltooling-devel-1.2-1.i386.rpm xmltooling-docs-1.2-1.i386.rpm 2 インストール 上 記 の shibboleth-sp 関 連 のファイルをインストールします # rpm -ivh log4shib-1.0.3-1.1.i386.rpm \ xerces-c-3.0.1-1.i386.rpm \ xml-security-c-1.5.1-3.2.i386.rpm \ xmltooling-1.2.2-1.i386.rpm \ opensaml-2.2.1-1.i386.rpm \ shibboleth-2.2.1-2.i386.rpm 依 存 関 係 上 上 記 の 順 番 でインストールする 必 要 があります <セミナー 注 : セミナーでは64ビット 版 を 利 用 します > その 他 のパッケージは 必 要 に 応 じてインストールしてください unixodbc がインストールされていないと 依 存 関 係 チェック 時 にエラーが 表 示 されます RedHat 系 でパッケージをインストールする 場 合 は 以 下 のコマンドを 実 行 してください # yum install unixodbc 6
その 他 の 情 報 は 以 下 のサイトから 入 手 してください http://www.unixodbc.org/ <セミナー 注 : セミナーでは 実 習 時 に 配 布 します > 3 httpd 設 定 /etc/httpd/conf.d/ssl.conf にて ServerName を 設 定 します ServerName upkishibsp.nii.ac.jp:443 ホスト 名 を 設 定 4 shibd 自 動 起 動 設 定 shibd を OS 起 動 時 に 自 動 起 動 するには 以 下 のコマンドで 設 定 します (オプションは マイナス - が2つ 必 要 です) # chkconfig --add shibd # chikconfig --level 345 shibd on 2-1-4. サービス 起 動 停 止 方 法 httpd の 起 動 方 法 service httpd start shibd の 起 動 方 法 service shibd stop httpd の 停 止 方 法 service httpd stop shibd の 停 止 方 法 service shibd stop 7
3. 運 用 設 定 カスタマイズ 3-1. 接 続 までに 必 要 なセッティング 3-1-1. shibboleth の 設 定 デフォルトでは shibboleth は /etc/shibboleth ディレクトリにインストール されます 変 更 する 各 設 定 ファイルも 同 ディレクトリ 配 下 にあります また ログファイルは /var/log/shibboleth ディレクトリに 出 力 されます shibboleth2.xml ファイル /etc/shibboleth/shibboleth2.xml ファイルを 以 下 の 様 に 変 更 します <Host name="sp.example.org"> を 検 索 し 場 所 を 特 定 してください ( 行 番 号 は 参 考 です) 62 <Host name="upkishibsp.nii.ac.jp"> ホスト 名 変 更 63 <Path name="secure" authtype="shibboleth" requiresession="true"/> 64 </Host> ( 省 略 ) 77 <ApplicationDefaults id="default" policyid="default" 78 entityid=https://upkishibsp.nii.ac.jp/shibboleth-sp ホスト 名 変 更 79 REMOTE_USER="eppn persistent-id targeted-id" 80 signing="false" encryption="false" 81 > Default example directs を 検 索 し 場 所 を 特 定 してください ( 行 番 号 は 参 考 です) 104 <!-- Default example directs to a specific IdP's SSO service (favoring SAML 2 over Shib 1). --> 105 <SessionInitiator type="chaining" Location="/Login" isdefault="true" id="intranet" relaystate="cookie" 106 entityid="https:// upkishibidp.nii.ac.jp /idp/shibboleth"> metadataに 設 定 されているIdPのentityIDの 内 容 を 設 定 してください 107 <SessionInitiator type="saml2" defaultacsindex="1" template="bindingtemplate.html"/> 108 <SessionInitiator type="shib1" defaultacsindex="5"/> 109 </SessionInitiator> ( 省 略 ) 追 加 129 <SessionInitiator type="chaining" Location="/DS" isdefault="false" id="ds" relaystate="cookie"> 130 <SessionInitiator type="saml2" defaultacsindex="1" template= "bindingtemplate.html" acsbyindex="false"/> 131 <SessionInitiator type="shib1" defaultacsindex="5" acsbyindex="false"/> 132 <SessionInitiator type="samlds" URL="https://upkishibDS.nii.ac.jp/ds/WAYF"/> 133 </SessionInitiator> DS 名 8
Example of locally maintained metadata を 検 索 し 場 所 を 特 定 してください ( 行 番 号 は 参 考 です) 217 <!-- Example of locally maintained metadata. --> 218 <!-- --> 219 <MetadataProvider type="xml" file=" /etc/shibboleth /partner-metadata.xml"/> 220 <!-- --> コメントを 外 し メタデータのパスを 書 きます 221 </MetadataProvider> 3-1-2. Apache の 設 定 とメタデータの 作 成 1 サーバ 証 明 書 申 請 UPKI オープンドメイン 証 明 書 自 動 発 行 検 証 プロジェクト の 利 用 の 手 引 きにおける 加 入 者 編 をご 覧 いただき サーバ 証 明 書 を 申 請 します 下 記 のサイトをご 参 照 ください https://upki-portal.nii.ac.jp/docs/odcert/howto/ee 証 明 書 の 交 付 までには 数 日 を 要 するので お 早 めに 申 請 してください 2 入 手 したサーバ 証 明 書 を 元 に 以 下 のファイルに 設 定 してください /etc/httpd/conf.d/ssl.conf ( 省 略 ) SSLCertificateFile /etc/shibboleth/cert/server.crt サーバ 証 明 書 の 格 納 先 SSLCertificateKeyFile /etc/shibboleth/cert/server.key サーバ 秘 密 鍵 の 格 納 先 #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt コメントアウト SSLCACertificatePath /etc/shibboleth/cert/ca CA 証 明 書 の 格 納 先 ( 省 略 ) /etc/shibboleth/cert/ca ディレクトリが 無 い 場 合 は 作 成 してください このディレク トリには ファイル 名 をハッシュ 値 とした 中 間 CA 証 明 書 を 配 置 します 詳 しくは サーバ 証 明 書 インストールマニュアル を 参 照 してください https://upki-portal.nii.ac.jp/docs/odcert/document/install /etc/shibboleth/shibboleth2.xml ( 省 略 ) <!-- Simple file-based resolver for using a single keypair. --> <CredentialResolver type="file" key="cert/server.key" certificate="cert/server.crt"/> サーバ 証 明 書, 秘 密 鍵 の 格 納 先 9
3-1-3. メタデータの 更 新 以 下 の UPKI イニシアティブのサイトのリポジトリから SP 用 メタデータテンプレートを ダウンロードし 必 要 な 項 目 を 変 更 します https://upki-repo.nii.ac.jp/template ダウンロードしたメタデータテンプレートを 下 記 のように 変 更 してください entityid などの URL に 関 する 変 更 は 本 ガイドに 沿 ってインストールしている 場 合 は ホスト 名 の 部 分 だけの 変 更 で 十 分 です ( 中 略 ) <EntityDescriptor entityid="https://yourspsite.ac.jp/shibboleth-sp"> ホスト 名 <!-- An SP supporting SAML 1 and 2 contains this element with protocol support as shown. --> <SPSSODescriptor protocolsupportenumeration="urn:oasis:names:tc:saml:2.0:protocol urn:oasis:names:tc:saml:1.1:protocol"> <Extensions> <!-- Extension to permit the SP to receive IdP discovery responses. --> <idpdisc:discoveryresponse xmlns:idpdisc="urn:oasis:names:tc:saml:profiles:sso:idp-discovery-protocol" index="1" Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" Location="https://YourSPSite.ac.jp/Shibboleth.sso/DS"/> </Extensions> <KeyDescriptor> <ds:keyinfo> <ds:x509data> <ds:x509certificate> MIIDOzCCAiOgAwIBAgIUdTJ6oiEccCjrtDyDaeBXTlRpfPcwDQYJKoZIhvcNAQEF BQAwHzEdMBsGA1UEAxMUdXBraXNoaWIxMS5uaWkuYWMuanAwHhcNMDgwNzA4MTAz Iyv7HVc9KtwkVAooF/LMPP9ofkZeuqzpc8T6Wg+zaUUsIKhEDhon4Zb/rt9tS3vB ***************** 入 手 した 証 明 書 に 変 更 ***************** zkbgni+5a05w/wlkxpeap8npthkbn3e+exqdik7qqoqgj0+jeuylapo6htggcs5i YU+cTQ5QSgjfsSwcZQt6ljQUzlyhKOAWnazbrRGVfCVlwoYl0hkpmGMSb4Jjxo6E 61psWSAHlehx6L2F9Eat </ds:x509certificate> </ds:x509data> </ds:keyinfo> </KeyDescriptor> <!-- This tells IdPs where and how to send authentication assertions. Mostly the SP will tell the IdP what location to use in its request, but this is how the IdP validates the location and also figures out which SAML version/binding to use. --> <AssertionConsumerService index="1" isdefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://YourSPSite.ac.jp/Shibboleth.sso/SAML2/POST"/> ホスト 名 <AssertionConsumerService index="2" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://YourSPSite.ac.jp/Shibboleth.sso/SAML2/POST-SimpleSign"/> ホスト 名 <AssertionConsumerService index="3" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://YourSPSite.ac.jp/Shibboleth.sso/SAML2/Artifact"/> ホスト 名 <AssertionConsumerService index="4" Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://YourSPSite.ac.jp/Shibboleth.sso/SAML/POST"/> ホスト 名 <AssertionConsumerService index="5" Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="https://YourSPSite.ac.jp/Shibboleth.sso/SAML/Artifact"/> ホスト 名 </SPSSODescriptor> 10
<!-- This is just information about the entity in human terms. --> <Organization> <OrganizationName xml:lang="en">your SP</OrganizationName> 組 織 名 <OrganizationDisplayName xml:lang="en">your SP</OrganizationDisplayName> 組 織 表 示 名 <OrganizationURL xml:lang="en">http://your HomePage/</OrganizationURL> 組 織 URL </Organization> <ContactPerson contacttype="your ContactType"> 管 理 者 ポジションを[technical, support, administrative, billing, other]から 選 択 <GivenName>Your GivenName</GivenName> 管 理 者 名 <SurName>Your SurName</SurName> 管 理 者 名 <EmailAddress>Your Email Address</EmailAddress> 管 理 者 の e-mail アドレス(メタデータは 公 開 されるので alias 名 などを 推 奨 :システム 運 用 基 準 4.2 項 参 照 ) </ContactPerson> </EntityDescriptor> ( 中 略 ) 完 成 した 新 しい SP 用 のメタデータを ヘルプデスク(upki-sso-help@nii.ac.jp)へ 送 付 してください ヘルプデスクでは 送 付 していただいたファイルをもとに DS に 登 録 するとともに 共 用 メタデータを 更 新 します 3-1-4. SP への 接 続 確 認 1 httpd サービスと shibd サービスを 再 起 動 します # service httpd restart # service shibd restart 2 SP にアクセスします サーバ 上 のブラウザで 設 定 した SP にアクセスします https://localhost/shibboleth.sso/status (サーバ 名 は 必 ず localhost として 下 さい) 画 面 上 に ok が 表 示 されれば SP に 接 続 が 確 認 出 来 ました <セミナー 注 : セミナーの 環 境 ではブラウザをインストールしていないので この 確 認 は 実 行 できません > 3-1-5. IdP との SP 接 続 確 認 接 続 する IdP の 設 定 変 更 も 必 要 となります 設 定 変 更 は IdP の 管 理 者 に 依 頼 して 下 さい 1 SP にテスト 用 のファイルを 用 意 します ファイルの 内 容 は 以 下 の1 行 です /var/www/html/secure/phpinfo.php <?php phpinfo();?> 11
2 SP のメタデータに IdP への 接 続 設 定 を 追 加 します 直 接 リダイレクトする IdP のメタデータ /opt/shibboleth-idp/metadata/idp-metadata.xml に 記 述 された その IdP の<EntityDescriptor> ~ </EntityDescriptor> 部 分 と 同 じ 内 容 を 全 て SP の /etc/shibboleth/partner-metadata.xml に 追 加 します <EntitiesDescriptor Name="urn:mace:shibboleth:testshib:two" ( 省 略 ) <EntityDescriptor entityid="https:// upkishibidp.nii.ac.jp/idp/shibboleth"> ( 省 略 ) 直 接 リダイレクトする IdP </EntityDescriptor> ( 省 略 ) </EntitiesDescriptor> 3 追 加 した SP の 設 定 を IdP に 追 加 します SP の/etc/shibboleth/partner-metadata.xml に 記 載 された この SP の <EntityDescriptor> ~ </EntityDescriptor> 部 分 と 同 じ 内 容 を 全 て IdP の /opt/shibboleth-idp /metadata/idp-metadata.xml に 追 加 します <EntitiesDescriptor Name="urn:mace:shibboleth:testshib:two" ( 省 略 ) <EntityDescriptor entityid="https:// upkishibsp.nii.ac.jp/idp/shibboleth"> ( 省 略 ) この SP のホスト 名 </EntityDescriptor> ( 省 略 ) </EntitiesDescriptor> 4 ブラウザから SP の1で 用 意 したファイルへアクセスします https://upkishibsp/secure/phpinfo.php 5 IdP にログイン 後 表 示 内 容 を 確 認 します IdP のログイン 画 面 が 表 示 され ID, パスワードを 入 力 してログインした 後 表 示 され る 環 境 変 数 に IdP で 公 開 する 設 定 とした 値 (LDAP に 保 存 されている edupersonprincipalname など)が 含 まれていることを 確 認 します これが SSO により IdP から 渡 されたユーザの 属 性 情 報 となります 表 示 例 ) PHP Variables 12
variable _SERVER[ unscoped-affiliation ] faculty value 6 /etc/shibboleth/shibboleth2.xml ファイルに 接 続 する DS を 設 定 します IdP へ 直 接 リダイレクトせず DS を 用 いる 設 定 を 行 います Default example directs を 検 索 し 場 所 を 特 定 してください ( 行 番 号 は 参 考 です) 104 <!-- Default example directs to a specific IdP's SSO service (favoring SAML 2 over Shib 1). --> 105 <SessionInitiator type="chaining" Location="/Login" isdefault="false" false と する id="intranet" relaystate="cookie" 106 entityid="https:// upkishibidp.nii.ac.jp /shibboleth"> 107 <SessionInitiator type="saml2" defaultacsindex="1" template="bindingtemplate.html"/> 108 <SessionInitiator type="shib1" defaultacsindex="5"/> 109 </SessionInitiator> ( 省 略 ) true とする 129 <SessionInitiator type="chaining" Location="/DS" isdefault="true" id="ds" relaystate="cookie"> 130 <SessionInitiator type="saml2" defaultacsindex="1" template= "bindingtemplate.html" acsbyindex="false"/> 131 <SessionInitiator type="shib1" defaultacsindex="5" acsbyindex="false"/> 132 <SessionInitiator type="samlds" URL="https://upki-test-ds.nii.ac.jp/ds/WAYF"/> 133 </SessionInitiator> <セミナー 注 : DS の URL は https://seminar-ds.nii.ac.jp/ds/wayf として 下 さい > <セミナー 注 2: 下 記 を 設 定 して 下 さい > attribute-map.xml に 下 記 を 追 記 ============ <Attribute name="urn:oid:2.16.840.1.113730.3.1.241" id="displayname"/> <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.1" id="jasn"/> <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.2" id="jagivenname"/> <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.3" id="jadisplayname"/> <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.4" id="jao"/> <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.5" id="jaou"/> ============ attribute-policy.xml では <Filter out undefined affiliations... の ScopingRules 等 をコメントアウト 13
3-2. 構 築 後 のカスタマイズ 3-2-1. IdP-アプリケーション 間 で 受 け 渡 す 属 性 の 追 加 方 法 /etc/shibboleth/attribute-map.xml 内 に 該 当 する 属 性 があるか 確 認 してください ほとんどの 属 性 が attribute-map.xml にて 定 義 されています attribute-map.xml で 定 義 されている 属 性 は IdP がリリースすると 無 変 換 でアプリケー ションに 送 られます attribute-map.xml で 定 義 されていない 場 合 については 以 下 に displayname 属 性 をマッ ピングする 例 で 示 します 1 スキーマの 確 認 LDAP サーバ 上 の/etc/openldap/schema 配 下 にスキーマファイルがあります displayname 属 性 は /etc/openldap/schema/inetorgperson.schema にて 以 下 のよ うに 定 義 されています ( 中 略 ) # displayname # When displaying an entry, especially within a one-line summary list, it # is useful to be able to identify a name to be used. Since other attri- # bute types such as 'cn' are multivalued, an additional attribute type is # needed. Display name is defined for this purpose. attributetype ( 2.16.840.1.113730.3.1.241 NAME 'displayname' DESC 'RFC2798: preferred name to be used when displaying entries' EQUALITY caseignorematch SUBSTR caseignoresubstringsmatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) ( 中 略 ) 2 /etc/shibboleth/attribute-map.xml への 登 録 <Attributes xmlns="urn:mace:shibboleth:2.0:attribute-map" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> ( 中 略 ) <Attribute name="urn:mace:dir:attribute-def:displayname" id="displayname"/> <Attribute name="urn:oid:2.16.840.1.113730.3.1.241" id="displayname"/> 1のoid ( 中 略 ) </Attributes> 14
3-2-2. メタデータの 自 動 更 新 設 定 方 法 設 定 ファイルを 変 更 し shibd を 再 起 動 することでメタデータの 自 動 更 新 設 定 に 変 更 します 1 メタデータ 格 納 用 ディレクトリの 作 成 メタデータ 格 納 用 のディレクトリを 作 成 します #mkdir /etc/shibboleth/metadata 作 業 は root 権 限 で 実 行 する 必 要 があります 2 shibboleth2.xml ファイルの 変 更 従 来 の 設 定 では /etc/shibboleth/shibboleth2.xml ファイルに メタデータをファイ ルから 読 込 む 設 定 を 記 述 していました <MetadataProvider type="xml" file="/etc/shibboleth/partner-metadata.xml"/> この 設 定 をコメントアウトします <!-- comment out <MetadataProvider type="xml" file="/etc/shibboleth/partner-metadata.xml"/> --> 新 たに メタデータを 自 動 的 にダウンロードする 設 定 を 追 加 します <MetadataProvider type="xml" uri="http://upki-repo.nii.ac.jp/metadata/upki-fed-metadata.xml" backingfilepath="/etc/shibboleth/metadata/backingmetadata.xml" reloadinterval="86400" /> 必 要 に 応 じて 24 時 間 毎 に 自 動 ダウンロードする 設 定 となっています 3 shibd の 再 起 動 shibboleth2.xml ファイルを 変 更 した 後 で shibd を 再 起 動 します #service shibd restart 4 動 作 確 認 方 法 1. 設 定 変 更 を 行 った SP で ログインできることを 確 認 通 常 の 手 順 で 設 定 変 更 を 行 った SP にログインできることを 確 認 します 2. 自 動 ダウンロードした UPKI-Fed メタデータを 確 認 ファイルが 存 在 し タイムスタンプがログイン 時 の 日 時 に 更 新 されていることを 確 認 します #ls -l /etc/shibboleth/metadata/backingmetadata.xml 3. 自 動 更 新 の 確 認 15
上 記 確 認 後 24 時 間 以 上 経 過 したあとで 再 度 ログインし メタデータファイルの タイムスタンプが 更 新 されていることを 確 認 します 3-2-3. メタデータ 署 名 の 検 証 設 定 方 法 1 設 定 方 法 メタデータ 格 納 用 のディレクトリを 作 成 します $SP_HOME/shibboleth2.xml に 設 定 を 追 加 する 必 要 があります なお shibboleth2.xml を 変 更 後 設 定 を 有 効 にするには shibd サービスを 再 起 動 する 必 要 があります 検 証 用 証 明 書 をダウンロードして $SP_HOME/cert/に 置 きます <SPConfig> <ApplicationDefaults> <MetadataProvider type="chaining"> <MetadataProvider 詳 細 省 略 > /> から 変 更 する <SignatureMetadataFilter 署 名 検 証 を 行 うための 設 定 を 追 加 する certificate="/etc/shibboleth/cert/ upki-fed-signer-ca.cer "/> : 検 証 に 用 いる 証 明 書 </MetadataProvider> 追 加 する </ApplicationDefaults> </SPConfig> 16
2 記 述 例 メタデータを 自 動 ダウンロードし メタデータの 署 名 検 証 を 行 う 場 合 の 記 述 例 です 修 正 前 <MetadataProvider type="chaining"> <MetadataProvider type="xml" uri="https://157.1.72.5/upkifed/repository/upki-fed-metadata-signed.xml" backingfilepath="/etc/shibboleth/metadata/backingmetadata.xml" reloadinterval="7200" /> </MetadataProvider> 修 正 後 <MetadataProvider type="chaining"> <MetadataProvider type="xml" uri="https://157.1.72.5/upkifed/repository/upki-fed-metadata-signed.xml" backingfilepath="/etc/shibboleth/metadata/backingmetadata.xml" reloadinterval="7200" > <SignatureMetadataFilter certificate="/etc/shibboleth/cert/upki-fed-signer-ca.cer " /> </MetadataProvider> </MetadataProvider> 3 参 考 資 料 参 考 資 料 Shibboleth2.0(SP)の 設 定 ドキュメント https://spaces.internet2.edu/display/shib2/nativespreloadablexmlfile https://spaces.internet2.edu/display/shib2/nativespmetadataprovider 17
4. 関 連 URL UPKI プロジェクト(UPKI イニシアティブ) https://upki-portal.nii.ac.jp/ 学 術 認 証 フェデレーション https://upki-portal.nii.ac.jp/docs/fed/ UPKI オープンドメイン 証 明 書 自 動 発 行 検 証 プロジェクト https://upki-portal.nii.ac.jp/docs/odcert Shibboleth プロジェクト http://shibboleth.internet2.edu/ Shibboleth2.0 Wiki (Shibboleth2.0 の 構 築 設 定 に 関 する 公 式 サイト) https://spaces.internet2.edu/display/shib2/home Switch.aai (スイスのフェデレーション) http://www.switch.ch/aai/ InCommon( 米 国 のフェデレーション) http://www.incommonfederation.org/ 18