大学教育の質の保証・向上ならびに 電子化及びオープンアクセスの推進の観点から 学校教育法第百十三条に基づき、 教育研究活動の状況を公表しています。
第百十三条 大学は、教育研究の成果の普及及び活用の促進に資するため、その教育研究活動の状況を公表するものとする。
シボレス Shibboleth IdP 2.4.0 からSLOの機能が追加されました。 【関連ノート】 ・Google AppsのSSO時のLogout(Shibboleth IdPを使った場合)⇒#1979@ノート; ・SharePoint - ADFS - Shibboleth IdpのSLOの試験運用⇒#1978@ノート; ・シボレス-シングルログアウト実験中(Shobboleth SP 2.5.2 - IdP 2.4.0)⇒#1981@ノート;
UPKI(学認;Gakunin)用Shibboleth IdPでGoogle Apps SSO(シングルサインオン)を利用する方法 ★ポイント:transientId(urn:oasis:names:tc:SAML:2.0:nameid-format:transient)を送信するとエラーになるみたいです. ★ログアウト:Shibboleth IdP 2.4.0からはSLO(Single LogOut)が実装されたので可能になりました⇒#1979@ノート;. ・関連URLの2の資料(https://shibboleth.usc.edu/docs/google-apps/)を参考に基本設定を行う。 動作の概要ですが、 SAMLアサーション⇒#48@シボレスページレビュー;によって、 <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"> にて、ユーザ名(@より前の情報)のみがGoogleに転送されます。 Google Appsの方に、ユーザ名を登録してあると利用できる仕組みになっています。Google Appsに登録していないユーザは利用できないようです。 ・attribute-filter.xmlを変更する。 <AttributeFilterPolicy id="releaseTransientIdToAnyone"> <PolicyRequirementRule xsi:type="basic:NOT" > ← <basic:Rule xsi:type="basic:AttributeRequesterString" value="google.com" /> ← </PolicyRequirementRule> ← attribute-filter.xmlを変更する理由は、Google Appsに、不要な属性情報(transient IDなど)が転送されると正常に認証トークンが成立しないようです。PolicyRequirementRule xsi:type="basic:Any"が存在する場合は、調整する必要があるようだ⇒#47@シボレスページレビュー;。 【関連URL】 1. "Google
Google AppsをShibboleth IdPでSSOを実現した場合のログアウト処理 Google AppsをShibboleth IdPとSAML連携によるシングルサインオン(SSO)を実現した場合,ログアウトの処理ができないため,ブラザーを閉じる必要があった. シボレス(Shibboleth) IdP 2.4.0よりシングルログアウト(SLO)が実装されたのでGoogle Appsもログアウト処理が可能になったようである.具体的な設定方法を下記に示す. Google Appsに管理者でログインし, シングル サインオン (SSO) の設定の ログアウト ページ URL を Shibboleth IdPのhandler.xmlに記述した ProfileHandler xsi:type="SAML2SLO" inboundBinding="urn:mace:shibboleth:2.0:profiles:LocalLogout"の要素内のRequestPathの子要素の値 をもとに、下記の例に従って決定できる. たとえば, vhost名: idp.yz.yamagata-u.ac.jp Proxyパス: /idp/ handler.xmlのRequestパス: /Logout の場合、 https://idp.yamagata-u.ac.jp/idp/profile/Logout とする. 【開発環境】 IdP: Shibboleth IdP 2.4.0 (学認対応)⇒#1982@ノート; 【ノート】 ・UPKI(学認)用Shibboleth IdPでGoogle Apps SSOを利用する方法⇒#1141@ノート; ・SharePoint - ADFS - Shibboleth IdpのSLOの試験運用⇒#1978@ノート; ・シボレス-シングルログアウト実験中(Shobboleth SP 2.5.2 - IdP 2.4.0)⇒#1981@ノート; 【標準的なidpのLocalLogoutの定義】 <ProfileHandler xsi:type="SAML2SLO" inboundBinding="urn:mace:shibboleth:2.0:profiles:LocalLogout">
SharePointとADFSとShibboleth IdP連携した認証トークンのシングルログアウト(SLO) Microsoft Sharepoint サーバを学認ログイン(SAML2準拠認証トークン)に対応するためには、ADFSサーバを経由してShibboleth IdPにSAML認証することで実現できる⇒#18239@業績;。 SharePointサーバのサインアウト時に、Shibboleth IdPおよびADFSのセッションを終了し、正常にログアウトできるようにする。 ★ 2013年7月21日より試験運用開始 ★ 【開発環境】 IdP: Shibboleth IdP 2.4.0(学認対応)⇒#1982@ノート; ADFS: ADFS 2.0 SP: SharePoint 2010 Foundation ●SLOに対応したメタデータ例: https://a.yamagata-u.ac.jp/amenity/network/ShibbolethMetaXml.aspx?ProjectID=14 【ノート】 ・Googel AppsのSSO時のLogout(Shibbolethを使った場合)⇒#1979@ノート; ・シボレス-シングルログアウト実験中(Shobboleth SP 2.5.2 - IdP 2.4.0)⇒#1981@ノート;
ADFSとShibbolethの信頼情報(メタデータ)の管理方法の違い 〇ADFSの場合 メタデータをEntityID毎に登録信頼関係を設定 〇Shibboleth(学認)の場合 レジストリに登録したメタデータによる一括の信頼関係を設定 すなわち,学認で利用しているメタデータを直接ADFSに読み込むことはできない. 【関連講演】 ・山形大学の学認の運用状況とADFSによるシボレスとWS-Federationの連携⇒#95@講演;
ADFSとShibbolethの相互連携はできるか? ー ADFS IdP/SP ⇔ Shib SP/IdP - 〇たどえば,下記のようなことはできるかなぁ? ①認証:ADFS IdP → サービス:Shibboleth SP ②認証:Shibboleth IdP → サービス:WIF ①について, 1:1でメタデータを交換して,信頼関係を設定すれば,Shibboleth SPの認証プロバイダーをADFSの認証連携サービス(IdP)を利用可能. ②WIF(Sharepointの場合)の認証情報として,Shibboleth IdPを利用することは難しようだなぁー,もう一歩.腕がいるねぇー. → 解決先: ADFSは,SAML2.0の認証情報をWSフェデレーションにプロキシする機能を利用する⇒#1821@ノート; 【関連講演】 ・山形大学の学認の運用状況とADFSによるシボレスとWS-Federationの連携⇒#95@講演;
解決: WIFとシボレス IdPの認証連携(Shibboleth IdP → WIF) 課題:Shibboleth IdPとWIFの連携は難しい⇒#1820@ノート; ADFSは,シボレス(SAML2.0)とWS-Federationの認証プロキシとしても動作 すなわち,ADFSの認証プロバイダをShibboleth IdPに設定可能. → WIFによるWebアプリケーションを学認に提供可能 WIFへの認証情報の流れとしては, Shibboleth IdP → ADFS → WIF となる. 伊藤智博,立…らは、2012年に香川大学 総合情報センターで開催された第7回国立大学法人情報系センター研究集会/第16回学術情報処理研究集会においてADFSによる学術認証フェデレーション対応SharePointサービスの構築について報告している⇒#324@学会;。
ADFS 2.0とShibboleth IdPは、 Claims Provider Trustとして登録することで、WSフェデレーションと連携できる. たとえば,シェアポイント(SharePoint)サーバにシボレスIdPによる認証でログインしたい場合, ・SharePointのクレーム認証サーバをADFS 2.0認証サーボスに指定する. ・次にADFS 2.0の認証プロバイダーをShibboleth IdPに設定する. この2つのプロセスによって,Windows系のADFS, WSフェデレーションとシボレスやSAML2.0を相互交換できる. ADFS 2.0サービスのポイントは,Shibboleth SPやWSフェデレーションのウェブサービスから見るとADFS 2.0は,IdPとして動作する.一方,Shibboleth IdPなどSAMLベースの認証プロバイダーから見るとADFS 2.0はSPとして動作するようになっている.
ADFS IdP と シボレス SPの接続は可能。 ADFSは、学認のメタデータを読み込めないので、手動登録になる。 → さてどうしよう。 → 解決策:ADFSのIdPとシボレスSPの信頼データの管理⇒#1751@ノート;
学認CAMP@三重県 開催場所: 三重大学⇒#91@学校; 総合研究棟II 1F メディアホール 日程: 9月14日(水) (予定) 13:30 ~ 14:20 Shibboleth, 学認 を知ろう 14:20 ~ 15:10 新しい学認機能の紹介 DS, uApprove.jp, OpenIdP⇒#3670@講義; 15:10 ~ 15:30 (休憩) 15:30 ~ 16:20 メンバー属性プロバイダー GakuNin mAP の紹介⇒#3701@講義; 16:20 ~ 17:10 地域連携、学認に関する意見交換 申し込み:不要 主催:国立情報学研究所 共催:三重大学 総合情報処理センター 【後日】 第6回情報系センター研究交流・連絡会議/第15回学術情報処理研究集会⇒#142@会議;
Shibboleth IdP 2.2.1 リリース シングルサインオン用ミドルウェアのShibboleth(シボレス) IdP のバージョン 2.2.1が、2011/01/13にリリースされました。 リリースノートによると、2.2.0から約20箇所の変更が加えられたようです。 非公式ミラー: http://ftp.yz.yamagata-u.ac.jp/pub/shibboleth/shibboleth/idp/2.2.1/ IdP version 2.2.1 Released IdP version 2.2.1 was released on Jan 13, 2011. This release is a bug fix which, amongst other things, addresses security advisory 20110113.
シボレス Embedded Discovery Service (Internet2) Internet2がシボレス(Shibboleth)用の組み込み用DS(Embedded Discovery Service; EDS)を開発しているとの情報を入手。 〇インストール方法 ・オフィシャルサイトを参考に、DSパッケージをダウンロード ・SPのバージョンが2.4でない場合、アップグレードまたはインストール ・オフィシャルサイトを参考に、ShibbolethおよびDSのセットアップ 〇コメント SP 2.4で動作するようである。 (DiscoveryFeedが必要、Shib SP 2.4より実装されている。 <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>) JSON形式で情報を提供する仕組みくさい。 langBundle is undefined とエラーがでるので、ひとまず、コードを次のように修正した(jaを追加)。 this.langBundles = { 'en': { 'fatal.divMissing': 'Supplied Div is not present in the DOM', 'fatal.noXMLHttpRequest': 'Browser does not support XMLHttpRequest, unable to load IdP selection data', 'fatal.wrongProtocol' : 'policy supplied to DS was not "urn:oasis:names:tc:SAML:profiles:SSO:idpdiscovery-protocol:single"', 'fatal.wrongEntityId' : 'entityId supplied was wrong"', 'fatal.noparms' : 'No parameters to to discovery session', 'fatal.noReturnURL' : "No URL return parmeter provided
UPKI-eduPersonTargetedID⇒#11@SAML属性;の設定 UPKIの仕様とUKの仕様がちょっと、違うようです。Shib 1.3, Shib 2.0の違いかなぁ・・ まぁ、山形大の仕様は、国立情報学研究所と相談しながら決めようーっと。 Shibbolethのサンプル設定は、UKの仕様と同じようです。 また、ComputedIDとStoredIDの2つの生成方法があるが、saltの文字列を同じにすると、ComputedIDでもStoredIDでもeduPersonTargetedIDは、同一の値を送信するようであった。 また、コードを読んみると、なんとなーく感じたんですが、ComputedIDとStoredIDは、 ・ハッシュのキー(salt) ・PeerEntityId(SP) ・LocalId を使って、生成されているようです>下記のコードを参照のこと。 edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.dataConnector の下記のコード MessageDigest md = MessageDigest.getInstance("SHA"); md.update(entry.getPeerEntityId().getBytes()); md.update((byte) '!'); md.update(localId.getBytes()); md.update((byte) '!'); persistentId = Base64.encodeBytes(md.digest(salt)); StoredIDを利用するときのデータベースは、MySQLを使用した。MySQLデータベースサーバ上に、shibpidというテーブルを作成した⇒#1169@ノート;。MS SQLサーバを利用しようとしたが、Windows認証ができないので、断念した。Shibboleth IdPとMySQLサーバ間の通信は、JDBC経由である。 Windows PCなどか
Shibboleth IdPでStatic Attribute+LDAP属性の組合せ Shiboleth IdPを構築するときに、属性情報を固定値+LDAPから取得した属性を加えるときの設定方法を示す。 たとえば、eduPersonAffiliation⇒#3@SAML属性;に常に'member'属性⇒#1@属性値;を送信し、かつ、LDAPにそれ以外の情報があった場合に、用いた場合の設定例を下記にします。 <resolver:AttributeDefinition id="eduPersonAffiliation" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="eduPersonAffiliation"> <resolver:Dependency ref="myLDAP" /> <resolver:Dependency ref="staticAttributes" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonAffiliation" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1" friendlyName="eduPersonAffiliation" /> </resolver:AttributeDefinition> <resolver:DataConnector id="staticAttributes" xsi:type="Static" xmlns="urn:mace:shibboleth:2.0:resolver:dc">
Shibboleth SP 2.4.3 リリース 2011年7月6日にShibboleth SP 2.4.3がリリースされた http://shibboleth.internet2.edu/secadv/secadv_20110706.txt CVE-2011-2516(http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-2516)に対応したようです. 非公式ミラー:http://ftp.yz.yamagata-u.ac.jp/pub/shibboleth/service-provider/
シボレス(Shibboleth) EDS (Internet2) 1.0 beta2 テスト結果 シボレス本家のEmbedded DS 1.0 beta2がリリースされたので、テストを行った。 変更点としては、次の3点である。 ・beta1のときは、「langBundle is undefined」をエラーが表示された1)が、beta2では改善されて、エラーは表示されなく、正常に動作すること。 ・java scriptのファイル名も変更されていたこと。 ・java scriptをコールしているhtmlページのjava scriptのファイル名を変更が必要なこと(メソッドやメンバー変数の変更はなさそう)。 ひとまず、山形大学が提供している「シボレス認証による科学技術の学術情報共有のための双方向コミュニケーショ」サービス⇒#307@ページ;のDSをシボレス EDS 1.0 beta2に変更し、実証試験を兼ねて動作試験を行っている。 【関連ノート】 ・シボレス EDS (Internet2) インストール記録⇒#1547@ノート;
シボレス Embedded DS (Internet2) インストール記録 【インストール記録】 1.Shibboleth SP 2.4でないと対応しないので、バージョンアップ 2.Shibboleth EDSをインストール 展開したファイルをひとまず、同一、ディレクトリにおく。 例えば、/DS/ 3.Shibboleth SPの設定ファイルを修正する。 ・バージョンアップした場合、JSONに対応するため、下記の一行を、<Sessions>~</Sessions>の中に追記すること。 <Handler type="DiscoveryFeed" Location="/DiscoFeed"/> ・JSONで生成するメタデータには、legacyOrgNames="true"を有効にすること。 例: <MetadataProvider type="XML" uri="https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml" backingFilePath="C:/opt/shibboleth-sp/etc/shibboleth/gakunin-metadata.xml" reloadInterval="7200" legacyOrgNames="true"> <MetadataFilter type="RequireValidUntil" maxValidityInterval="1296000"/> <SignatureMetadataFilter certificate="C:/opt/shibboleth-sp/etc/shibboleth/gakunin-signer-2010.cer"/> </MetadataProvider> ・DSの設定を実際に準備したDSのURLに変更する。 例: <SessionInitiator type="Chaining" Location="/DS2" id="DS2" isDefault="true" relayState="cookie"> <SessionInitiator type="SAML2" defaultACSIndex="1" acsByIndex="false" template="bindingTemplate.html
Shibboleth SP 2.3.1へのバージョンアップ Shibboleth SP 2.3.1がリリースされたので、バージョンアップを行った。 バージョンアップ後、問題なく、動作した。 OS Windows 2003 for x64 【関連URL】 Shibbolethオフィシャルページ: http://shibboleth.internet2.edu/ Shibboleth Download: http://shibboleth.internet2.edu/downloads.html 非公式ミラー: http://ftp.yz.yamagata-u.ac.jp/pub/shibboleth/ 【関連ノート】 ・Shibboleth SP 2.3へのバージョンアップ⇒#1213@ノート; 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI-学術認証フェデレーション⇒#2842@講義; by
Shibboleth SP 2.3へのバージョンアップ Shibboleth SP 2.3がリリースされたので、バージョンアップを行った。 バージョンアップ後、問題なく、動作した。 【関連URL】 Shibbolethオフィシャルページ: http://shibboleth.internet2.edu/ Shibboleth Download: http://shibboleth.internet2.edu/downloads.html 非公式ミラー: http://ftp.yz.yamagata-u.ac.jp/pub/shibboleth/ 【関連ノート】 Shibboleth SP 2.3.1へのバージョンアップ⇒#1244@ノート; 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI-学術認証フェデレーション⇒#2842@講義;
複数のメタデータ用署名の記述(Shibboleth IdP) シボレスIdPに複数のメタデータの署名確認用証明書の記述方法。 例) <security:TrustEngine id="shibboleth.MetadataTrustEngine" xsi:type="security:StaticExplicitKeySignature"> <security:Credential id="GakuninCredentials" xsi:type="security:X509Filesystem"> <security:Certificate>/opt/shibboleth-idp-2.1.5/credentials/gakunin-signer-2010.cer</security:Certificate> </security:Credential> <security:Credential id="UPKIfederationCredentials" xsi:type="security:X509Filesystem"> <security:Certificate>/opt/shibboleth-idp-2.1.5/credentials/upki-fed-signer-ca.cer</security:Certificate> </security:Credential> </security:TrustEngine>
Shibboleth IdP StoredID用のテーブルの作成 for MySQL CREATE TABLE IF NOT EXISTS shibpid ( localEntity TEXT NOT NULL, peerEntity TEXT NOT NULL, principalName VARCHAR(255) NOT NULL default '', localId VARCHAR(255) NOT NULL, persistentId VARCHAR(36) NOT NULL, peerProvidedId VARCHAR(255) default NULL, creationDate timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, deactivationDate timestamp NULL default NULL, KEY persistentId (persistentId), KEY persistentId_2 (persistentId, deactivationDate), KEY localEntity (localEntity(16), peerEntity(16),localId), KEY localEntity_2 (localEntity(16), peerEntity(16), localId, deactivationDate) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 【関連ノート】 ・Shibboleth IdPのStoredIDの設定(MySQL)⇒#1484@ノート; ・UPKI-eduPersonTargetedIDの設定⇒#1137@ノート;
Shibboleth(シボレス) IdPのStoredIDの設定(MySQL) attribute-resolver.xmlに、下記の内容を記入する。 〇SAML1(Shib 1.3系)に対応するときは、下記の有効にする。 <resolver:AttributeDefinition id="eduPersonTargetedID.old" xsi:type="Scoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad" scope="yamagata-u.ac.jp" sourceAttributeID="storedID"> <resolver:Dependency ref="storedID1" /> <resolver:AttributeEncoder xsi:type="SAML1ScopedString" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonTargetedID" /> </resolver:AttributeDefinition> 〇SAML2.0(Shib 2.x系)に対応にするときは、下記を有効にする。 <resolver:AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID" xmlns="urn:mace:shibboleth:2.0:resolver:ad" nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" sourceAttributeID="storedID"> <resolver:Dependency ref="storedID1" /> <resolver:AttributeEncoder xsi:type="SAML1XMLObject" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" /> <
Shibboleth IdPのログをSQLに記録する方法 Shibbolethのログをデータベースサーバ(SQL)に記録することによって、データベースの付加機能であるOLAPなどで集計を簡便にすることが期待される。 Shibboleth IdPのログをSQLサーバに記録するために、次の方法で可能にした。 Shibboleth IdPから、syslogdにログを転送し、syslogdからMySQLに送信するように設定した。 設定例) 〇Shibboleth IdP logging.xml <appender name="IDP_SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> <SyslogHost>localhost</SyslogHost> <Port>514</Port> <Facility>LOCAL6</Facility> <SuffixPattern>[%logger:%line] %msg</SuffixPattern> </appender> 〇rsyslog.conf local6.* :ommysql:localhost,データベース名,ユーザ名,パスワード 〇rsyslogdの起動オプションの変更 ch.qos.logback.classic.net.SyslogAppenderは、TCPでログメッセージを送信するので,/etc/init.d/rsyslog のSYSLOGD_OPTIONSを、下記のように変更した。 SYSLOGD_OPTIONS="-m 0 -r -t514 -l locahost " 〇MySQLへのテーブルの作成 CREATE TABLE SystemEvents( ID int unsigned not null auto_increment primary key, CustomerID bigint, ReceivedAt datetime NULL, DeviceReportedTime datetime NULL, Facility smallint NULL,
エルゼビア関係シングルサインオン暫定復旧 2010年3月下旬ごろから、シボレス(Shibboleth)によるシングルサインオンが利用できなくなっておりましたエルゼビアのScience Direct⇒#1280@ノート;が、国立情報学研究所(Gakunin)、エルゼビア、Internet2のご尽力により、暫定的であるが復旧しました。 国立情報学研究所さんの解説によると、SOAPメッセージによるバックチャネル通信(8443ポート)からフロントチャネル通信に変更すると、ひとまず、解決するそうです。 下記に国立情報学研究所さんより頂いた、仮復旧のための設定の変更箇所を記載します。 → 現在、この設定で山形大学では問題なく動作しております。<検証OS: Windows XP, Windows 7 <DefaultRelyingParty provider="https://***.***.ac.jp/idp/shibboleth" defaultSigningCredentialRef="IdPCredential"> <ProfileConfiguration xsi:type="saml:ShibbolethSSOProfile" includeAttributeStatement="false" これはfalseのままとする↑ assertionLifetime="300000" signResponses="conditional" signAssertions="never" /> - - - - - - - - - </DefaultRelyingParty> の下に下記を追加。 ----------------------------------------------- <RelyingParty id="http
shibboleth IdPをLDAP Proxy経由でWindows Server 2003のAD(Active Directory)に認証する方法 事前に、ADに認証するために、OpenLDAPのslapdのLDAPプロキシ機能+overlay rwmの機能を使って、uidとsamaccountnameなどの属性マッピグをローカルLDAPに設定する⇒#1138@ノート;⇒#1185@ノート。 shibboleth IdPでLDAP Proxy経由でActive Directoryに認証する場合は、リフェラル(紹介)設定を有効にする必要がある。 具体的には、login.configとattribute-resolver.xmlの2つのファイルに注意しましょう。 また、動作を保証するものではありません。より良い設定方法がありましたら、教えていただけると幸いです。 2010年になって、GC(グローバルカタログ)を使うことで、リフェラルを有効にしなくても、動作することがわかりました⇒#1265@ノート;。 → リフェラルをつかうと、DCが1台でも停止すると認証に不具合が発生することがありますので、リフェラルを無効にして利用することを推奨します。 例)login.config edu.vt.middleware.ldap.jaas.LdapLoginModule sufficient host="localhost" base="dc=xxxxx,dc=yamagata-u,dc=ac,dc=jp" ssl="false" userField="uid" subtreeSearch="true" serviceUser="cn=xxxx,CN=Users,dc=xxxx,dc=yamagata-u,dc=ac,dc=jp" serviceCredential="xxxxx" referral="follow" <--重要みたい? 例)attribute-resolver.xml "<"、">"は全角文字に変化されていますので、半角にしてください。 <resolver:DataConnector id="myLDAP2" xsi:type="LD
Shibboleth IdP用tomcatなどのバージョンアップ ・tomcatのセキュリティホール CVE-2009-2901 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2901) CVE-2009-2693 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2693) CVE-2009-2902 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2902) tomcat 6.0.20 → 6.0.26へのバージョンアップ 動作OK by
Shibboleth IdP, SPのUPKI-Fed.Schemaへの対応 国立情報学研究所⇒#2083@講義;が中心になって進めている学術認証フェデレーション(UPKI-Fed)⇒#2587@講義;の日本語拡張属性への対応テストを行った。 UPKIのスキーマ情報によると、jao属性の場合、OIDが1.3.6.1.4.1.32264.1.1.4である。(参照情報:https://upki-portal.nii.ac.jp/docs/fed/technical/attribute) 〇IdPの設定 attribute-resolver.xmlに次の設定を行う。 属性の定義を追加する。 <resolver:AttributeDefinition id="jaOrganizationName" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="jao"> <resolver:Dependency ref="staticAttributes" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.32264.1.1.4" friendlyName="jao" /> </resolver:AttributeDefinition> resolver:DataConnector id="staticAttributes"に <Attribute id="jao"> <Value>山形大学</Value> </Attribute> を追加した。 attribute-filter.xmlにAttributeRuleを追加する。 <AttributeRule attributeID="jaOrganizationName"> <PermitValueRule xsi:type="basic:A
Shibboleth Idp 2.1.2へのバージョンアップ 学術認証フェデレーション(UPKI-Fed)試行運用参加説明会⇒#106@会議;に参加し、海外のSPなどでは、Shibboleth 1.3も利用されているため、Shibboleth 1.3/2.0の2つの仕様に対応したShibboleth IdPを構築することが必要であることがわかった。 UPKI-学術認証フェデレーション⇒#2842@講義;の技術ガイド(https://upki-portal.nii.ac.jp/docs/fed/technical/idp/customize)によると、それほど面倒な設定はないようだったので、ひとまず、Shibboleth 2.0からShibboleth 2.1.2へのバージョンアップを行った。 また、山形大学のShibboleth Metaデータを管理しているデータベースの構造をShibboleth 1.3/2.0の2つのバージョンに対応したメタデータを格納できるようにフィールドの拡張を行った⇒#1154@ノート;。また、データベースを表示するaspページのコードも対応した。 バージョンアップしたら、なんだか、eduPersonTargetedIDの形式が変わったぞ? 以前までは、ハッシュ形式だったのに、2.1.2からはUUID形式(Type4)になっている? UPKIに参加している他の人に聞いてみよう!!(https://upki-portal.nii.ac.jp/ml-archives/upki-fed/msg00046.html) なるほど、こんなところ(https://upki-portal.nii.ac.jp/ml-archives/upki-fed/msg00047.html)にソースコードが管理さているのかぁ。ソースコード読んだほうがはやそうなので、ひとまず、読んでみました⇒#1155@ノート;。<国立情報学研究所⇒#2083@講義;の山地先生、ありがとうございます。 その後、京産大の秋山より、バグの報告がShibbolethプロジェクトのJIRAに掲載されており、shibboleth-commons 1.1.3で改善されるとのことであった(https://upki-portal.nii.ac.jp/ml-archives/upki-fed/msg00053.html)
UPKI用Shibboleth IdPの構築記録(OS環境の設定 No.1) ・Centos 5.3のインストール(http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/5.3/isos/i386/) CentOS-5.3-i386-netinstall.isoをダウンロードしてftpサーバよりOSをインストール ・ntpのインストール # yum install ntp.i386 ・時刻合わせためにcrontab の設定 */3 * * * * /sbin/clock --hctosys 10 0-23/1 * * * /usr/sbin/ntpdate (NTPサーバ)&& /sbin/clock -w ・gccのインストール # yum install gcc.i386 ・opensslのインストール(http://ftp.yz.yamagata-u.ac.jp/pub/network/security/openssl/) % tar zxf openssl-xx.xx.tar.gz % make # make install ・Berkeley DB のインストール( http://www.oracle.com/technology/software/products/berkeley-db/index.html) % tar zxf db-x.x.x.tar.gz % cd build_unix/ % ../dist/configure % make # make install または、 # yum install db4-devel.i386 ・openldapのインストール(http://ftp.yz.yamagata-u.ac.jp/pub/network/security/OpenLDAP/) % tar zxf openldap-x.x.tgz % ./configure --enable-overlays --enable-dyngroup --enable-dynlist --enable-rwm --enable-crypt --enable-ldap # make install ・apacheのインストール(http://ftp.yz.yamagata
OpenLDAPのプロキシ機能による属性の変換設定 Shibboleth IdPなどで、ADやLDAPの属性名を別の属性名に変換する方法のサンプルコードを示します。 〇Compile時の注意 ./configure --enable-overlays --enable-dyngroup --enable-dynlist --enable-rwm --enable-crypt --enable-ldap 〇設定例 slapd.confに、 overlay rwm rwm-map attribute uid sAMAccountname rwm-map attribute eduPersonPrincipalName userprincipalname rwm-map attribute mail mail rwm-map attribute jasn sn のように記入。 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義; 【関連書籍】 ・シボレスIdPの構築⇒#14@シボレスレビュー;
ADにLDAP接続するときに、リフェラルを無効にして属性情報を取得する方法 通常、ADにLDAP(ポート番号 389)で接続すると、リフェラルを有効にする必要がある。 このとき、1つの問題が生じる。リフェラルは、このとき、DomainDnsZones.xxx・・を参照するように返してくるが、この名前空間は、DNSによるラウンドロビンで、DCを選択するようになっている。 ref: ldap://DomainDnsZones.xxx.yamagata-u.ac.jp/DC=DomainDnsZones,DC=xxx,DC=yamagata-u,DC=ac,DC=jp リフェラル要求時に、故障などによって停止しているDCあり、そのDCにラウンドロビンで接続した場合、アプリケーションによっては、タイムアウトによって、認証失敗と判断して動作することがある。 この問題は、Shibbolethでも発生している。これまで、その回避策を検討していた。その解決策としては、ADのGC(グローバルカタログ)を参照することであった(気がつくのが遅かった・・・)。ちなみに、Shibboleth IdPでは、リフェラルを無効にても、問題なくADから認証・属性情報を取得ができました。 これで、Shibboleth IdPから冗長化されたDCの情報を利用して、DCが故障や停止しても、IdPサービスを安定して提供できる。 GCポート番号: 3268 【謝辞】 GCを活用すればよいことに気がつかせていただいた成城大学 五十嵐先生のMLへの問い合わせおよび国立情報学研究所の学術認証フェデレーション⇒#2842@講義;の情報交換MLサービスに感謝いたします。 【参考URL】 ML記事:https://upki-portal.nii.ac.jp/ml-archives/upki-fed/msg00151.html UPKI技術資料(成城大学提供):https://upki-portal.nii.ac.jp/docs/fed/technical/idp/customize/knowhow/ad1 Shibboleth参考ドキュメント:https://spaces.internet2.edu/display/SHIB2/IdPADConfigIssues 【関連ノート】 ・Shibbole
Shibboleth IdP 2.1.5へのバージョンアップ Shibbolethサイト(http://shibboleth.internet2.edu/downloads/shibboleth/idp/latest/)よりshibboleth-identityprovider-2.1.5-bin.zipをダウンロードする。 % unzip shibboleth-identityprovider-2.1.5-bin.zip で展開する。 #cd shibboleth-identityprovider-2.1.5-bin # ./install.sh をつかって、/opt/shibboleth-idp-2.1.5にインストール ・$TOMCAT/endorcedの旧jarファイルを削除して、shibboleth-identityprovider-2.1.5/endorsedの*.jarファイルを$TOMCAT/endorcedにコピー。 # cp *.jar /usr/java/tomcat/endorsed ・$JAVA/jre/lib/extに、shibboleth-identityprovider-2.1.5/lib/shibboleth-jce-1.1.0.jarをコピー # cp shibboleth-jce-1.1.0.jar /usr/java/default/jre/lib/ext ・インストールディレクトリに、旧設定ファイル(attribute-filter.xml attribute-resolver.xml handler.xml logging.xml login.config relying-party.xml )をコピー。 # cp attribute-filter.xml attribute-resolver.xml handler.xml logging.xml login.config relying-party.xml /opt/shibboleth-idp-2.1.5/conf ・インストールディレクトリ/war/idp.warを、$TOMCAT/webappsディレクトリに上書きコピー # cp idp.war /usr/java/tomcat/webapps ・handler.xml, logging.xml,
shibboleth IdP 2.1.3へのバージョンアップ Shibboleh IdP 2.0.0から2.1.2にバージョンアップしたときに、storedIDにバグがあるようで、問題が発生した⇒#1149@ノート;。JIRAの情報から、バージョン2.1.3では解決されている可能性が高いことから、実際に、2.1.3にバージョンアップして確かめた。 結論としては、2.1.2で発生した問題は、解決されたいた。 旧バージョン: Shibboleth IdP 2.1.2 新バージョン: Shibboleth IdP 2.1.3 簡単に作業メモを下記に示す。基本的には、UPKI学術認証フェデレーションのページで公開されている「SP1.3とIdP2.xとの接続設定」の資料(https://upki-portal.nii.ac.jp/docs/fed/technical/idp/customize)を元に、2.1.3に対応した作業を行った。 % tar zxf shibboleth-identityprovider-2.1.3-bin.tar.gz % cd shibboleth-identityprovider-2.1.3 # ./install.sh をつかって、/opt/shibboleth-idp-2.1.3にインストール ・$TOMCAT/endorcedの旧jarファイルを削除して、shibboleth-identityprovider-2.1.3/endorsedの*.jarファイルを$TOMCAT/endorcedにコピー。 # cp *.jar /usr/java/tomcat/endorsed ・$JAVA/jre/lib/extに、shibboleth-identityprovider-2.1.3/lib/shibboleth-jce-1.1.0.jarをコピー # cp shibboleth-jce-1.1.0.jar /usr/java/default/jre/lib/ext インストールディレクトリに、旧設定ファイル(attribute-filter.xml attribute-resolver.xml handler.xml logging.xml login.config relying-party.xml )をコピー。 # cp a
Shibboleth関連テストSPサイト 〇国立情報学研究所(UPKI)⇒#2083@講義;関連 https://upki-test-sp00.nii.ac.jp/ https://upki-test-sp01.nii.ac.jp/ https://upki-test-sp02.nii.ac.jp/ 属性の確認などができます。 〇山形大学テスト開発中 https://c.yz.yamagata-u.ac.jp/ 【関連ノート】 ・Windows 7でのShibbolethの動作確認⇒#1195@ノート; 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義;
Windows 7でのShibbolethの動作確認 国立情報学研究所のShibboleth SP(テストサイト)と山形大学に開発中のSPサイト⇒#1192@ノート;に、Windows 7から正常に接続できるかテストした。問題なく、属性情報を送信できした。IdPは、山形大学のIdPを利用した。 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義;
IIS上にShibboleth SPを構築したときに属性情報の文字化けを修正する方法 日本語文字列などを取り扱うと文字化けが発生した。ASP .NETで下記のようなコードで改善された サンプルコード Dim tmp As Byte() = Encoding.GetEncoding(932).GetBytes(Me.Request.Headers("jao").ToString) Label1.Text = Encoding.UTF8.GetString(tmp) サンプルコード追加前:螻ア蠖「螟ァ蟄ヲ サンプルコード追加後:山形大学 ※状況によっては、文字化けを改善できないことがわかりました。 よい対処方法がありましたら、教えてください。 【関連講義】 ・サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義; by
特定のShibboleth SPに属性が特定の条件を満たした時のみ属性情報を送信するIdPの設定 たとえば、https://upki-t est-sp01.nii.ac.jp/のSPに対してIdPは、 eduPersonScopedAffiliation属性にfacultyが含まれるときに、eduPersonScopedAffiliation属性を送信する設定は、下記のようになる。この条件を満たさない場合は、eduPersonScopedAffiliation属性はNULLになる。 <AttributeFilterPolicy> <PolicyRequirementRule xsi:type="basic:AttributeRequesterRegex" regex="(https://upki-t est-sp01.nii.ac.jp).*" /> <AttributeRule attributeID="transientId"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> <AttributeRule attributeID="eduPersonTargetedID"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> <AttributeRule attributeID="eduPersonScopedAffiliation"> <PermitValueRule xsi:type="basic:AttributeValueString" value="faculty" /> </AttributeRule> </AttributeFilterPolicy> by
山形大学のShibboleth IdPの現状(UPKI-SSO⇒#2587@講義;への取り組み) 1.既存の認証基盤であるADを利用したShibboleth IdPシステムを構築。 ADを利用するときは、リフェラルの設定が必要な可能性が高い⇒#1086@ノート;。 2.複数認証基盤(AD)を統合して、IdPに認証基盤として利用可能なシステム。 3.ユーザ名のフォーマットは、eduroamフォーマットを採用⇒#2627@講義;。(eduroamとの混乱を避けるため) 4.eduroamフォーマットのユーザ名を使用したとき、ユーザ名の@以下を「UPKI Plone1」において判別しない問題が発生。現在、SPの構築を行いながら、検証中。 これらの内容については、2009年に一橋記念講堂で開催されたUPKIシンポジウム2009において既存の複数認証基盤を統合したUPKI用統合認証基盤の構築について報告している⇒#242@学会;。 【関連講義】サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義; by
【エラー解説】Shibboleth IdP 2.1.3 エラー: tomcat/log/catalina.log OpenSAML requires an xml parser that supports JAXP 1.3 and DOM3. The JVM is currently configured to use the Sun XML parser, which is known to be buggy and can not be used with OpenSAML. Please endorse a functional JAXP library(ies) such as Xerces and Xalan. For instructions on how to endorse a new parser see http://java.sun.com/j2se/1.5.0/docs/guide/standards/index.html 確認: tomcatの設定で、java.endorsed.dirsはきちんと設定されていますか? java.endorsed.dirsには、shibbolethに必要な、*.jarファイルはコピーしましたか? #CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs" CATALINA_OPTS="-Djava.endorsed.dirs=$CATALINA_HOME/endorsed"
Windowsサーバ2003によるShibboleth SPの構築 検証環境 OS: Windows Server 2003 for x64, Webアプリ: IIS + Shibboleth SP Shibboleth SP 2.1の場合、Shibbolethに対応にすると、HTMLや画像ファイルが壊れる現象が発生した。Shibboleth SP 2.2.1にバージョンアップしたところ、問題がなくなった。 【関連講義】サイバーキャンパス「鷹山」,UPKI関係資料⇒#2869@講義;
Shibboleth IdPでBase64に変換する方法 Shibboleth IdPで属性情報をSPに送信するときに、Base64に変換する方法をためしました。サンプルコンフィグを下記に示します⇒#1172@ノート;。 <resolver:AttributeDefinition id="eduPersonPrincipalNameBase64" xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="eduPersonPrincipalName"> <resolver:Dependency ref="xxxx" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); importPackage(Packages.com.sun.org.apache.xerces.internal.impl.dv.util); eduPrincipal2=eduPersonPrincipalName.getValues().get(0); eduPersonPrincipalNameBase64=new BasicAttribute("eduPersonPrincipalNameBase64"); eduPersonPrincipalNameBase64.getValues().add(Base64.encode(eduPrincipal2.getBytes())); ]]> </Script> </resolver:AttributeDefinition> <resolver:AttributeDefinition id="principalName" xsi:type="Scoped" xmlns="urn:mace:sh
【エラー解説】 Shibboleth SP 2.2.1 for x64, IIS 下記のエラーは、Shibboleth SP 2.2.1 Windows 2003, IIS, x64の環境で発生しております。EPPNがaaa@bbbb@scopeの時に発生しました。x86では確認されておりません。aaaa@scopeの場合は、x64でも正常に動作します。 2009-09-16 21:18:36 WARN Shibboleth.AttributeFilter [1]: removed value at position (0) of attribute (eppn) from (https://xxxx) 2009-09-16 21:18:36 WARN Shibboleth.AttributeFilter [1]: no values left, removing attribute (eppn) from (https://xxxx) by
【エラー解説】Shibboleth IdP 2.1.3 Shibboleth IdPのログがないときは、tomcatのログを見ましょう! エラー: tomcat/log/catalina.log org.apache.catalina.core.StandardContext listenerStart 致命的: クラス org.springframework.web.context.ContextLoaderListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です 確認: $JAVA_HOME/jre/lib/security/java.security に security.provider.?=edu.internet2.middleware.shibboleth.DelegateToApplicationProvider などの設定はありますか? by
UPKI用Shibboleth IdPの構築記録(OS環境の設定 No.3) % unzip shibboleth-identityprovider-2.1.3-bin.zip # install.sh /opt/shibboleth-idp-2.1.3にインストール by
UPKI用Shibboleth IdPの構築記録(OS環境の設定 No.2) 〇UPKI用Shibboleth IdPの構築記録(OS環境の設定 No.1)⇒#1138@ノート;からの続き apache tomcatのインストール(UPKI用Shibboleth IdPの構築記録(OS環境の設定 No.2)⇒#1140@ノート;) # cd /usr/java # tar zxvf (ソースディレクトリ)/apache-tomcat-6.0.xx.tar.gz # ln -s apache-tomcat-6.0.xx /usr/java/tomcat jsvcを自動起動に設定しておくと便利。 # cd /usr/java/tomcat/bin # tar zxvf jsvc.tar.gz # cd jsvc-src/ # sh ./configure --with-java=/usr/java/default # make # cp jsvc .. # cp native/Tomcat5.sh /etc/rc.d/init.d/tomcat # vi /etc/rc.d/init.d/tomcat 下記の3行を先頭のコメントに追加 # chkconfig: - 85 15 # description: Tomcat # processname: tomcat 下記の5行を修正 JAVA_HOME=/usr/java/default CATALINA_HOME=/usr/java/tomcat DAEMON_HOME=$CATALINA_HOME TOMCAT_USER=tomcat CATALINA_BASE=$CATALINA_HOME エディターを終了し、保存 tomcatユーザーを追加 # /usr/sbin/adduser tomcat # chown -R tomcat: /usr/java/tomcat/ # chkconfig --add tomcat # chkconfig --level 345 tomcat on # vi /etc/profile /etc/profileに下記を追加 JAVA_HOME=/usr/java/default MANPAITH=$MANPATH:$JAVA_
差分-Shibboleth IdP (2.0.0 - 2.1.2; StoredIDDataConnector) 国立情報学研究所⇒#2083@講義;の山地先生にShibbolethのソースコードの管理ページを教えていただき、Shibboleth IdP 2.0.0 を2.1.2にバージョンアップした⇒#1149@ノート;ときに、StoredIDのフォーマット(生成方法も含む)が変わった原因を調査してみた。Javaは詳しくないので、間違っているかもしれませんが、参考程度にメモっておきます。 edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.dataConnector.StoredIDDataConnector.PersistentIdEntry メソッドが変更なっていました。 do { log.debug("Generated persistent ID was already assigned to another user, regenerating"); persistentId = UUID.randomUUID().toString(); } while (pidStore.getPersistentIdEntry(persistentId, false) != null); が追加されているなぁ。 Shibboleth IdPのログにも、 DEBUG [edu.internet2.middleware.shibboleth.common.attribute.resolver.provid er.dataConnector.StoredIDDataConnector:258] - Generated persistent ID was already assigned to another user, regenerating のが残っているな、DB空にしたのになぁ??? もしかして、JavaでDo { } while (式) 文を使うときは、最初の1ループは実行するという構文じゃないのかなぁ? そうだとしたら、この行は常に実行されるから、正常動作ってことかなぁ? 原因は
大学教育の質の保証・向上ならびに 電子化及びオープンアクセスの推進の観点から 学校教育法第百十三条に基づき、 教育研究活動の状況を公表しています。
第百十三条 大学は、教育研究の成果の普及及び活用の促進に資するため、その教育研究活動の状況を公表するものとする。