組織を超えてSSOが使えるShibboleth(シボレス)認証とは

schedule 2018/05/25  refresh 2023/11/09

 

 

Shibboleth(シボレス)とは

Shibbolethは、組織内および組織を超えてWeb上でフェデレーション・シングルサイオン(SSO)を実現する、標準的なオープンソースソフトウェアのパッケージです。

 

Webのオンライン情報への個別アクセスに対して、個人情報を保護する方法で、個人情報に基づきアクセスを許可するSAMLのフェデレーション認証方式であるため、安全で便利なソフトウェアです。

 

このようなShibbolethを用いた認証を、Shibboleth(シボレス)認証と呼びます。

 

(画像はShibboleth Consortiumより)

 

Shibbolethプロジェクトは、高等教育機関をメンバーとするInternet2が2000年に教育用のミドルウェア活動として始め、非営利コンソーシアムOASISのSAML(Security Assertion Markup Language)ワーキンググループと合同で推進されました。

 

2003年Shibboleth1.0がリリースされ、世界中の研究および教育コミュニティが採用しました。2006年Shibboleth2.0は、SAML2.0で構築され、すべてのマルチ・ラテラルのメタデータの取扱いが可能になりました。

 

2014年には、高度な認証と容易なカスタマイズが可能なIdP(Identity Provider)ソフトウェアの第3版をリリースしました。

 

現在、オープンソースソフトウェアとして展開し、Apache Software Licenseの下でリリースされています。

なお、Shibbolethは、Internet2の登録商標です。

 

ShibbolethのSSO機能

Shibbolethは、他のWebベースのSSOと同様な働きをしますが、異なる点は、標準仕様を遵守し、ユーザの個人情報を保護しつつ組織外のサービスに対するSSO機能を提供することです。

 

Shibbolethが、WebベースでSSO機能を実現する構成要素には、ユーザが使うWebブラウザ、アクセスするデータ、ユーザを認証するIdP(Identity Provider)、データを提供するSP(Service Provider)があります。

 

ShibbolethによるSSOの手順は、以下のようになります。

 

1. 最初のデータアクセス

ユーザは、最初アクティブセッションを持たないで、保護されたデータのあるSPにアクセスします。

 

(画像はShibboleth Consortiumより)

 

2. SPによる認証要求

SPは、ユーザとIdPに認証要求を送信します。SPソフトウェアは、通常データと同じサーバにインストールされています。

 

 

3. IdPでユーザを認証

IdPは、ユーザのセッションを調べ、既存のセッションがある、つまり一度認証されていれば、次のステップに進みます。初めての場合、IdPはユーザのID・パスワードなどを認証し、ユーザは次のステップに進みます。

(画像はShibboleth Consortiumより)

 

 

4. IdPが認証応答を発行

IdPは、認証応答をユーザとSPに返信します。

 

 

5. SPが認証応答を検査

SPは、IdPからの認証応答を検証しユーザのセッションを作成後、応答から読み出した情報に基づき保護されたデータを利用可能にし、データをユーザに送信します。

 

 

6. 再度のデータアクセス

ユーザが再度SPにアクセスすると、すでにセッションを持っているため、改めて認証することなく、SPはユーザの要求を処理し、ユーザにデータを送信します。

 

 

Shibbolethのフェデレーション

IdPとSPのグループが相互協力に同意すると、そのグループはフェデレーションと呼ばれます。

 

Shibbolethでは、SPとIdPが同一組織内に限定されず、組織外のSPやIdPとフェデレーションするフェデレーションSSO機能を実装しています。

 

そして、SPが認証要求するIdPを発見するためのDS(Discovery Service)が提供されています。DSでは、フェデレーションで統合したIdPを選択するユーザインタフェースを表示します。

 

Shibbolethには、ユーザの個人情報をユーザ属性として安全に保護するため、ユーザ属性のフィルタポリシーが設定できる機能があります。

 

ポリシーに従い、IdPはSPごとに送信するユーザ属性を制御し必要最小限の識別情報を流し、SPはサービスごとに提供するIdPを制御します。

 

フェデレーションにおいてHTTP経由でSSOを行う場合、IdPとSPは、メタデータを用いて相互通信を行います。

 

メタデータには、一意の識別子、人間が読める名称、メッセージを配信するURLリスト、メッセージの作成等に使用される暗号情報などが含まれます。

 

フェデレーションは、すべてのメタデータを参加するIdPやSPに配布するため、個々のIdPやSPはフェデレーションに自組織のメタデータを提供するだけです。

 

Shibbolethを導入し、フェデレーションに参加している組織であれば、個人情報の漏えいリスクが少なく、組織を超えて利便性の高いSSO機能が使用できます。