シボレス (英語: Shibboleth) は、インターネット2の「ミドルウェア構想」(Middleware Initiative) の下で、連合アイデンティティによる認証・認可基盤のアーキテクチャとそのオープンソースによる実装を創出するプロジェクトである。記述にはセキュリティ・アサーション・マーク付け言語 (SAML) を用いる。連合アイデンティティによって、あるセキュリティ領域での利用者情報を、連合に属する他の組織へ提供することができる。これによって複数の領域にまたがるシングルサインオン (SSO) を実現でき、コンテンツの提供者ごとに利用者名やパスワードを保守する必要がなくなる。アイデンティティ・プロバイダ (IdP) が利用者の情報を提供し、サービス・プロバイダ (SP) がその情報を利用して保護されたコンテンツにアクセスできるようにする。

Jisc (JISC) が公開している連合アイデンティティの紹介ビデオでは、その中心概念を解説するためにシボレスを取り上げている。

なお「シボレス」とは、ヘブライ語聖書の逸話に由来し、自国の特殊な発音を要するフレーズを読み上げさせる事で、相手が敵国人のスパイかどうかを判別するのに用いられた中世ヨーロッパの防諜技法の一種である。

## 歴史

シボレスプロジェクトは2000年、教育向けミドルウェア・アーキテクチャ評議会 (MACE) で、さまざまに異なった認証・認可基盤を持つ組織同士で資源を共有する際の問題を処理する作業部会として発足した。開発に先立ち、一年以上をかけてアーキテクチャの策定を実施した。アルファ版、二回のベータ版、二回のポイントリリースを配布してコミュニティによるテストを受けたのち、2003年7月1日にシボレス1.0版を公開した。シボレス1.3版は2005年8月26日に公開され、その後数回のポイントリリースが出た。シボレス2.0版は2008年3月19日に公開された。

## シボレスのアーキテクチャ

シボレスはウェブ上の技術であり、SAML のプロファイルを投入するための HTTP/POST リクエスト、データ構造、属性を実装している。アイデンティティ・プロバイダ (英語: identity provider; IdP) とサービス・プロバイダ (英語: service provider; SP) というコンポーネントで構成される。シボレス1.3版は技術概要、アーキテクチャ文書、適合性文書に基づき、SAML 仕様1.1版の上に構築される。

シボレス1.3版

典型的な利用形態は次のようなものである。

1. 利用者はまず、シボレスによるコンテンツ保護が有効になっているウェブサーバの上の資源にアクセスする。
2. SP が、この利用者のアクセスにのみ使用できる認証要求を作成する。これは要求者の SAML 実体識別子 (SAML entityID)、アサーションが消費される場所、利用者が戻ってくるページ (ないこともある) をクエリパラメータに入れた URL で、ウェブブラウザを通じて渡される。
3. 利用者は、自組織の IdP または WAYF (Where Are You From) サービスにリダイレクトされる。リダイレクト先が WAYF だった場合、自組織の IdP を選択するとさらにリダイレクトされる。
4. 利用者が、シボレス外のアクセス制御機構で認証する。
5. シボレスが、一時的な「ハンドル」を含む SAML 1.1の認証アサーションを生成する。このハンドルによって、IdP が特定のウェブブラウザの利用者を、すでに認証できている資格と関連づけて認識するようになる。
6. 利用者の情報が、アサーションの消費者になる SP のサービスに送信される。これには HTTP の POST リクエストを使う。SP はアサーションを消費し、IdP の利用者属性サービスに属性要求 (AttributeQuery) を送信する。この要求には利用者自身の情報を含んでいなくてもよい。
7. IdP が、属性アサーションを送信する。これにはSPに委任される利用者の情報が含まれる。
8. SP が、属性情報に基づいてアクセス制御を決定する。または、アプリケーションに情報を渡してアプリケーション自身に決定させることもある。

シボレスは、このような基本形態に変更を加えたさまざまな運用形態に対応している。たとえばポータル型の処理ができる。IdP が自発的にアサーションを作成し、SP への最初のアクセスの際に送付するのである。またセッションの遅延確立も行える。なにかのアプリケーションでコンテンツ保護が必要になった時点で、そのアプリケーションの決定した方式で認証するのである。

シボレス1.3版以前には組み込みの認証機構がないが、ウェブに基づく認証機構であればシボレスに利用者データを渡すことができる。このような目的に用いられるシステムの一般的なものとしてはCASやパブクッキーがある。IdP で Java コンテナ (たとえば Tomcat など) を実行し、その認証/SSO機能を使うこともできる。

シボレス2.0版

シボレス2.0版は SAML 標準2.0版の上に構築される。シボレス2.0版の IdP では、SAML 2.0版の受動認証要求や強制認証要求に対応した追加の処理を行わなければならない。SP が IdP に対して特定の認証方式を要求できる。シボレス2.0版ではほかに、通信の暗号化に対応している。またセッションの期間を初期値で30分としている。

## 属性

シボレスのアクセス制御は、IdP が渡す属性 (英語: attribute) を SP で定義している規則と照合することで実施される。属性のひとつひとつは、利用者に関する情報の断片 (たとえば「当コミュニティの成員である」、「アリス・スミス」、「A の契約を締結ずみ」といったもの) である。利用者自身の情報とは属性の集まりのことであり、属性は明示的な要求があるときにしか受け渡されないため、利用者の個人情報を保護できる。属性は Java で記述したものであったり、ディレクトリやデータベースから取り出したものであったりする。もっとも広く利用されるのは標準的なX.520の属性だが、IdP と SP がトランザクション中に解釈できるものでありさえすれば、新たな属性を任意に定義できる。

## 委任

領域間の委任は、公開鍵暗号 (SSL サーバ証明書を使うだけのことも多い) と、プロバイダを記述するメタデータを用いて実装する。引き渡す情報の利用範囲は合意によって決める。こういった関係は、連邦化 (英語: federation) を利用することで簡素化されていることが多い。連合は、共通の利用規約や契約に同意した多数のプロバイダを集約したものである。

## 開発

シボレスはオープンソースであり、Apache 2ライセンスの下に提供される。その他のさまざまな拡張機能、たとえばSHARPEやGridShibは、他団体が寄贈したものである。

## 採用状況

世界の多くの国々で連合が形成され、SAML とシボレスを利用した情報交換のための委任のしくみが構築されている。多くの主要なコンテンツ提供者がシボレスによるアクセスに対応している。連合に参加する学生教職員や部局の数は400万に上る。

2006年2月、イングランド高等教育助成会議のJisc (JISC) は、従来のアシンズ認証システムからシボレス技術によるアクセス管理システムへ移行すると発表した。ただその後、シボレスそのものではなく連合によるアクセス管理ソリューションを後援するという態度に変わっている。

## 参考資料

1. ↑
2. ↑
3. ↑
4. ↑
5. ↑
6. ↑