情報処理技術セミナー「Shibboleth環境の構築」
概要説明セミナ の目的と内容
セミナーの目的と内容
 目的

学術認証フェデレーションへの参加に必要なShibbolethに基づくIdPとSPの構築、運用の基本を理解する 内容

1日目：“IdP”の構築実習

 jdk、tomcat、Shibbolethのインストール
 設定、接続テスト
設定 接続テスト

2日目：“SP”の構築実習

 Apache、Shibbolethのインストール（shibd,Apache Shibbolethのインストール（shibd mod_shib）
mod shib）
 設定、接続テスト

2

学術認証フェデレ ションとは学術認証フェデレーションとは学術認証フェデレーションとは

定められた規程（ポリシー）を信頼しあうことで，相互に認証連携を実現し，学定められた規程（ポリシ）を信頼しあうことで 相互に認証連携を実現し 学術リソースを利用・提供する機関や組織から構成された連合体のこと
機関（IdP）がIDと属性を管理し，サービス提供者（SP）がそれを利用して認可

プライバシ保護を考慮したシングルサインオン（SSO）技術

ユーザのユニークネスを保証しつつ個人情報は出さない
SPは必要な情報のみをIdPに要求
ユーザは各SPに対する各属性の公開を制御可能
アサーション

従来：SPでID管理

SP・ID
・属性

ユーザ
アクセス、パスワード

SP・ID
・属性

SSO：IdPでID管理
アクセス

認証要求

IdP
・ID
・属性

ユーザ

ID/パスワード

3

SP

リダイレクトSP

Shibboleth（シボレス）
米国EDUCAUSE／Internet2にて2000年に発足したプロジェクト

http://shibboleth internet2 edu/
http://shibboleth.internet2.edu/

SAML、eduPerson等の標準仕様を利用した，認可のための属性交換を行う標準仕様とミドルウェア （オープンソースソフトウェア）



米国、欧州でShibbolethによるFederationが運用、拡大
欧が拡



バージョン1.3系と2.0系が広く利用されている（プロトコルが少し異なる）


最新は IdP 2.3,, SP 2.4
最新Linux および Windows (IIS) にも対応

cf.
欧州（特に北欧）では，simpleSAMLphpも利用されている

ノルウェ―UNINETT

http://rnd feide no/simplesamlphp
http://rnd.feide.no/simplesamlphp

日本語化プロジェクト

http://sourceforge.jp/projects/ssp-japan/

Microsoft ADFS 2
2.0
0 も利用可能4

フェデレーション構築に必要なサーバ
フェデレ ション構築に必要なサ バ
IdP（Identity Provider）



フェデレーション内に構成員の情報を提供するサーバ
フェデレ
ション内に構成員の情報を提供するサ バ
 フェデレーションに参加する大学等が構築
SP（Service Provider）



認証を受けた人に対してサービスを行うサーバ 電子ジャーナル，データベース，E-ラーニング等
電子ジナデ タベ
E ラグ等
Webベースのシステムであれば何でも可DS（Discovery Service）



SPへのアクセスの際にIdPを検索するシステム
 フェデレーションが運用
フ デレ シ ンが運用
 ここに名前がのることにより「フェデレーションに参加」
 WAYF ((Where Are You From)) サ
サービスとも呼ばれる(Shibも呼 れる(1.x))
 SPへの埋め込み(embedded)方式もある
5

IdP (Identity Provider)とはフェデレーション内に情報を提供するサーバであり，大学等が構築
 IdP自身は情報を持たない
 情報はLDAPやActive Directory等，既存の認証基盤を参照
 IdPは単なるフィルタであり，学内認証基盤から特定のデIdPは単なるフィルタであり 学内認証基盤から特定のデータのみタのみを抽出して提供する
 公開できるデータの制御が可能である

このため，Shibbolethはしばしば個人情報保護に優れていると言われるが，サーバ自体がハッキングに強固という意味ではない。
 慎重な操作が必要なのは，LDAPやActiveDirectoryと同じ操y

学内認証基盤LDAP
Active Directory など

IdP提供データ提供デ タのフィルタ必要なデータのみを外部へを外部
機関名，所属機関名 所属 氏名 肩書き
機関名，所属，氏名，肩書き…
6

非公開デ タを落とすフ ルタ
非公開データを落とすフィルタSP (Service Provider)とは


サービスを提供するWebサーバのこと“シボレスログイン”等のボタンがあればShibbolethで利用可能なSPである
シボレスログイン 等のボタンがあればShibbolethで利用可能なSPである



電子ジャーナルに限らず，いろいろなサービスをShibboleth化することが可能（例：無線LAN認証，サイボウズ）

学内のみの利用ならば，IdP, SPが立ち上がれば完成。
他大学と連携するには何が必要？
が7

Shibbolethの基本動作

IdP（所属機関）

SP（リソース提供者）

9
アクセス承認

HTTPS

属性
情報

6

7

8

9

2

1

73
8

4

DS（ディスカバリサービス）

4

5

ユーザ

1

Cookieによる処理の記憶
メタデータ
デ タ

登録
配布
（ダウンロード）

登録
配布（ダウンロード）

IdP（所属機関）

SP（リソース提供者）

9
アクセス承認
属性情報

6

7

8

92

1

7
Set Cookie

39

4

DS（ディスカバリサービス）

45

ユーザ

1

Shibboleth動作の詳細 (Shibboleth 22.x)
x)

http://www.switch.ch/aai/demo/ より
10メタデータを用いた信頼の構築
メタデ タを用いた信頼の構築

SP B

SP C

SP A

フェデレーション

フ デレ ション
フェデレーション
メタデータ

リポジトリ

エンティティ
メタデ タ
メタデータ

DS（ディスカバリサービス）

IdP A
IdP B

IdP C

自動ダウン
自動ダウンロードするフェデレーションメタデータの信頼性は、フェデレーションのドするフ デレ ションメタデ タの信頼性は、フ デレ ションの証明書で担保（事前に入手・検証し、事前にIdP/SPにインストール）
11（検証は、別チャンネルで入手したfingerprintとの比較等による）

メタデータ(XML形式)の構成
メタデ タ(XML形式)の構成
フェデレーションメタデータ
署名の情報

エンティティメタデータ (IdP)
IdPの情報・IdP１の情報
・IdP２の情報
・・・・・
・・・・・

・IdP１のID＝entityID・利用する証明書・利用可能なプロトコル
・組織情報
・・・・・

エンティティメタデータ(SP)SPの情報
・SP１の情報
・SP２の情報
・・・・・
・・・・・
12

・SP１のID＝entityID・利用する証明書
利用する証明書・利用可能なプロトコル
・組織情報
・・・・・

Shibbolethの実装
IdP
Attribute
Authority
AttributeDBfront channel
Browser

SSO
Profilehttpsphttps
AuthN
EngineSP
SessionInitiator DS
Assertion
Consumer
SAML POST

AuthN
DB

Username
Password
AuthN

Shibboleth Module(mod shib)(mod_shib)

LDAP/ADForm

Shibboleth
Daemon(shibd)

Tomcat13

back channel

Web
Resource# .htaccess
AuthType shibboleth
ShibR
ShibRequireSessioni Si
Onrequire valid-user

Apachep/ IIS

ポート番号は443または4443、8443

属性情報のフィルタリングと認可制御
IdP Shibboleth

SP Shibboleth

環境変数

attributefilter xml
filter.xml

attributemap xml
map.xml

WebAppattribute
attributeresolver.xml

attribute
attributepolicy.xml

h d
httpd

SAML

LDAP

handler.xml
login.config

relyingparty.xml

信頼

BackingFile

BackingFile
リポジトリ

14

shibboleth2.
xml

http.conf.htaccess
AccessControll

シボレス認証で扱う「属性」
フェデレーションで認証に使用する属性は16種類。これらを用いて認可を行う。
属性

内容

OrganizationName (o)組織名

jaOrganizationName (jao)

組織名（日本語）

OrganizationalUnit (ou)組織内所属名称

jaOrganizationalUnit (jaou)

組織内所属名称（日本語）

eduPersonPrincipalName (eppn)

フェデレーション内の共通識別子

eduPersonTargetedIDedu
e so a ge ed

フェデレーション内の匿名識別子
フデレ ション内の匿名識別子

eduPersonAffiliation

職種

eduPersonScopedAffiliation

職種（スコープ付き）

eduPersonEntitlement

資格

SurName (sn)

氏名（姓）jaSurName (jasn)

氏名（姓）（日本語）GivenName

氏名（名）jaGivenName

氏名（名）（日本語）displayName

氏名（表示名）jaDisplayName

氏名（表示名）（日本語）

mailメールアドレス

15
掲載場所：
https://upki-portal.nii.ac.jp/docs/fed/technical/attribute

テストSPでの表示例

実習環境
Trainingrepositry

Training-DS

テスト用
Training-IdP

テスト用
Training-SP

講師用PC

DNS

実習用
TrainingLDAP

実習用
TrainingIdP-testXX
IdP
testXX

実習用
Training-SPtestXX

CentOS(VM)

CentOS(VM)

受講生用PC
16

すでに準備されているもの
 テスト用IdP、SP

他機関が用意したものと想定

 テスト用DS

フェデレーションが用意するもの
フェデレションが用意するもの

 DNSサーバ

IdP、SPのサーバ名を登録

 NTPサーバ
Shibbolethの動作には時間同期が重要

 鍵ペア、サーバ証明書

実際には、鍵の生成と証明書発行申請が必要

 LDAPサーバ
LDAPサ バ

17

別途用意されていると想定各種情報
１．学術認証フェデレーション（学認）に関するWebサイト
https://www gakunin jp/
https://www.gakunin.jp/

２．ポリシー、申請書「学術認証フェデレーション」－「参加」
学術認証フ デレ ション」
参加」
https://www.gakunin.jp/docs/fed/join

３．IdP、SP構築ガイド「学術認証フェデレーション」－「技術ガイド」
学術認証フェデレ ション」
技術ガイド」
https://www.gakunin.jp/docs/fed/technical

４．IdP構築用VMイメージ（Vmware Serverにて作成）「学術認証フェデレーション」－「技術ガイド」－「IdP構築関連ファイル」
学術認証フェデレ ション」
技術ガイド」
IdP構築関連ファイル」
https://www.gakunin.jp/docs/fed/technical/idp/files

５．テンプレート（メタデータ、IdP属性管理）「学術認証フェデレーション」－「技術ガイド」－「テンプレート」「学術認証フェデレション」 「技術ガイド」 「テンプレ ト」
http ://www.gakunin.jp/docs/fed/technical#template６．情報交換メーリングリスト（アーカイブ）「学術認証フェデレーション」－「情報交換ML」
学術認証フェデレ ション」
情報交換ML」
https ://www.gakunin.jp/docs/fed/ml
18

追加課題１（IdPでの属性制御）
 属性情報を全くSPに送出されないように設定を変更し、動作確認する
 eduPersonTargetedID、eduPersonPrincipalNameのみが送出されるように設定を変更し、動作確認するが送出される う 設定を変動作確認する
 あるSPに対してeduPersonTargetedID のみが送出されるように設定を変更し、動作確認する
定 変確
 あるユーザについて、eduPersonEntitlementの値としてadminを送出するように設定し、動作確認する
 eduPersonEntitlementの値について、あるSPに対して必要な値のみ通過させるように設定し、動作確認する

19

追加課題２（SPでの属性制御）
 受信した全ての属性がフィルタされるように設定を変更

し、動作確認する
し動作確認する
 IdPからeduPersonEntitlementについて複数の値を送出する う
出するようにし、SPで一方の値のみを通過させるように
方 値を通 さ る う
設定を変更し、動作確認する
 IdPでtrainingTestAttributeという新たな属性を送出し、新性 送
SPでその属性を受信するように設定を変更し、動作確認する

20

追加課題３（SPでのアクセス制御）
 シングルサインオン（SSO）の動作を確認
 eduPersonAffiliationがstaff の場合にだけアクセスを許可するように設定し、動作確認する
 eduPersonEntitlementにtestが含まれる場合にだけアクセスを許可するように設定し、動作確認
 LazySessionyの設定を行い動作確認する

 ForceAuthentication を指定した場合の SSO の動作を確認する
 PassiveAuthentication を設定した場合の動作を確認する
21