学認ShibbolethとOpenAMを連携させて学外と学内をシングルサインオン

オープンソース・ソリューション・テクノロジ株式会社

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-1-

目次
 会社紹介 OpenAMのご紹介

概要、開発の歴史– シングルサインオン方式– 認証方式（認証連鎖による多様素認証）– レルムによるユーザー管理– 冗長化– 導入事例– 学術認証フェデレーション（学認）：GakuNinとは？
 学認（Shibboleth）の特徴

 OpenAMとShibbolethとの連携

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-2-

会社紹介

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-3-

OSSTech会社紹介
 OSに依存しないOSSのソリューションを中心に提供

Linuxだけでなく、Windows/Solaris/AIXへも対応– Windows/UNIX から Linux への移行も支援！
– OSSを利用した認証基盤構築が得意分野–

LDAP認証、Windowsドメイン認証、Webアプリケーション認証、クラウド認証

 Samba,OpenLDAP,OpenAM,IDMなどによる認証統合/シングルサインオン、ID管理ソリューションを提供
OSSの製品パッケージ・製品サポートを提供– OSSの改良、バグ修正などコンサルティングにも対応–

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-4-

OSSTechソリューション
システム管理者

ID管理

ID管理

ID管理

Active Directory

Google Apps
Salesforce
ファイル
サーバー

バ

LDAP

Windows
ドメインログオン

クラウド

Web アプリ

ログイン

ログイン

ユーザー
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-5-

OSSTechの製品群とソリューション
Unicorn IDM

ID管理
システム管理者

ID連携
Active Directory

Google Apps
Salesforce
ファイル
サーバー

バ

Web アプリ

LDAP

クラウド

SSOWindows
ドメインログオン
ログイン

ユーザー
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-6-

OpenAM概要

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-7-

OpenAMとは
 Webアプリケーションにおけるシングルサインオンを実現するためのプラットフォームとなるソフトウェア–

シングルサインオン（SSO）：一度のログイン操作さえ完了すれば、複数の Web アプリケーションにログイン操作することなくログインすることが可能

 ユーザー情報を格納するためのユーザーリポジトリ（ユーザーデータストア）として様々な LDAP サーバー、RDBに対応–

RDBへの対応は OpenAM からサポート開始

 SAML、OpenID、OAuth、ID-WSFなどの認証・認可に関連した複数のプロトコルをサポート
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-8-

※用語解説SSO : Single Sign On

一度（IdPで）認証されたら、すべての（認証なしで）アプリ（SP）が利用可能とする技術
 認証はIdPで行い、認可はSPでやるのが一般的



IdP : Identity Provider

認証プロバイダー：認証サーバー
通常IDとパスワードを入れて認証してもらう
ワンタイムパスワードや生体認証、ICカードで認証も可能

ユーザへサービスを提供するアプリケーション
この資料の中ではWebアプリを指す
上記IdPで認証されたユーザは、すべてのSPでSSO可能となる
ユーザ情報を元に認可を行うのはSPの一般的な役割だが、OpenAMではエージェントを使うことでSPの代わりに認可を行わせることが可能

SP : Service Provider

SAML : Secure Assertion Markup Lauguage

認証情報をXMLでやりとりするための取り決め
IDとパスワードはネットワーク上を流れない

１つのSPに対し、複数のIdPが存在する場合、IdPをユーザーに選択（発見）させるためのサービス

DS : Discovery Service

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

-9-

OpenAMの歴史 - その1
AOLによる買収

AOLからの分離

開発
主体

NetscapeiPlanet

製品名dsame

Identity Server

認証連携
機能の強化

オープンソース化！

Sun Microsystems

Access Manager

OpenSSO

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 10 -

OpenAMの歴史 - その2
Oracleによる買収

OpenSSO は非戦略的な製品という位置づけ

Sun

OracleOpenSSO

Oracle OpenSSO

ForgeRock社
OpenAM

Oracleから分離新プロジェクトの開始!

OSSTechとの協業

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 11 -

OpenAMの機能（その１）多様なシングルサインオン方式

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 12 -

シングルサインオンの方式（1）SAML
OpenAM（SAML IdP）

・認証基盤（1）ログイン
Webアプリ（SAML SP）
アサーション（認証情報）

ユーザー

SAML

Web
Application（2）Webアプリへアクセス
WebアプリがSAMLに対応している必要がある※この図は、HTTP Redirect Binding/HTTP POST Binding の場合の例
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 13 -

シングルサインオンの方式（2）エージェント方式
OpenAM（認証サーバ）（3）Cookieの正当性を確認（１）ログイン
Cookie

ユーザー

Agent

Webサーバー
ユーザ
情報

Web
Application（2）Webアプリへアクセス

リバースプロキシ方式
リバースプロキシ
HTTP
ヘッダー

ユーザー

（1）ログイン

Web
Application（3）Webアプリへアクセス（2）ユーザー認証

OpenAM（認証サーバ）
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 14 -

シングルサインオンの方式（3）
代理認証方式
ID/パスワードを初回アクセス時のみ代理で送信する（1）ログイン OpenAM

Form認証

ID/パスワード

ユーザーWebアプリ（3）代理認証

ID
PW（2）ユーザー認証（4）代理認証後は直接アクセス※リバースプロキシー方式で代理認証する方法もある
上記は代理認証用ポータルを用意する方法
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 15 -

OpenAMの機能- シングルサインオン
 SAMLによるシングルサインオン
Secure Assertion Markup Lauguage– 認証、認可、ユーザ属性情報などをXMLで送受信するためのフレームワーク– 標準化団体OASISにより策定– GoogleApps、Salesforceなどが採用–

 エージェント方式

SSO対象のWebアプリが動作するサーバー上にアクセス制御用のモジュールを配置する方式– サーバーのバージョンに影響を受ける–

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 16 -

OpenAMの機能 - シングルサインオン
 リバースプロキシ方式
リバースプロキシを使用してアクセス制御を行う– ユーザーデータの受け渡しはHTTPヘッダーを利用– SSO対象Webアプリのバージョンや設定変更の影響が少ない– リバースプロキシが性能上のボトルネックになる可能性がある–

 代理認証方式

SSO対象Webアプリの既存ログイン画面に対して、OpenAMがユーザーの代理でログインID/パスワードを送信する– SSO対象Webアプリの改修が不要– 細かなアクセス制御はできない（ログイン処理の代理実行のみ）–

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 17 -

OpenAMの機能（その２）認証方式（多様素認証）

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 18 -

OpenAMの機能-データストアと認証方式
認証方式

ワンタイムパスワード
指静脈認証Windows Desktop SSO
クライアント証明書
外部DB
認証連鎖

Web
Application

OpenAM
ログイン

ログイン

SSO

ID
PW

WebApplication

ユーザーWeb
Application

User
DataStore
ユーザーデータストア（ユーザー情報DB）
Active Directory
OpenLDAPRDB

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 19 -

OpenAMの機能 - 認証方式
 基本的には OpenAM のユーザーデータストアに保存された ID/パスワードにより認証を行なう
 ユーザー認証時に外部のデータベースを参照することも可能（更新できない参照のみのものでも可能）–

LDAP、Active Directory、RADIUS、RDB（JDBC）

 よりセキュアな認証方式も使用可能

ワンタイムパスワード（電子メールを利用）– クライアント証明書による認証– Windows Desktop SSO（統合Windows認証）–

 複数の認証方式を組み合わせて使用可能：認証連鎖
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 20 -

OpenAMの機能 - ユーザー情報DB
 ユーザーデータストア–

OpenAMのユーザー情報を格納するLDAPサーバー/データベースサーバー（更新権限が必須）
 Active Directory Open LDAP Sun Directory Server OpenDS（Sun Directory Server のオープンソース版。OpenAMに標準で組み込まれている）
 RDB（OpenAMから対応）

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 21 -

OpenAMの機能 - 認証連鎖 多様素認証の必要性–

複数の認証方式を組合わせて認証を行うことにより個々の認証方式の欠点を補完

 認証連鎖複数の認証方式を組み合わせて利用可能– 認証方式にはそれぞれ適用条件を指定する–

 必須：失敗したらそこで終了
 十分：成功したらそこで終了
 必要：成功しても失敗しても次に継続 任意：認証結果には関係しない付随的な処理

認証方式１（必須）
ID/PW認証

認証方式２（必須）
ワンタイムパスワード

ログイン完了Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 22 -

OpenAMの機能（その3）「レルム」によるユーザー管理

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 23 -

OpenAMの機能 - レルム
 「レルム」：OpenAMの設定を管理するための単位の 以下の設定をレルム単位で管理

ユーザーデータストア（LDAPベースDN、検索フィルタなども指定可能）– アクセス制御ポリシー– 認証方式–

 基本的には、ユーザー情報DB単位でレルムを分ける レルム毎に管理者を置き管理を委任することが可能

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 24 -

OpenAMの機能 - レルム使用の具体例
複数組織（複数の企業など）のシングルサインオン基盤をOpenAM で構築し、組織毎に設定を行なう
 組織内に存在する複数の DB を一つのレルムに登録し、全てのユーザーに同一のシングルサインオン環境を提供する（例B） DB内の特定のユーザーに対してのみ、シングルサイオン可能にする（例C）
OpenAM

レルムCレルムA

レルムB

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 25 -

OpenAMの機能（その4）
冗長化

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 26 -

OpenAMの機能 - 冗長化
OpenAM

シングルサーバ構成

User
Data
Store

セッション
フェールオーバー
構成 Load Balancer

サイト構成
Load Balancer

OpenAM
OpenAM

OpenAMセッション
フォワーディング

セッション
フォワーディング
User
Data
Store

OpenAM

レプリケーション/マルチマスタ

User
Data
Store

セッション
情報

User
Data
Store

セッションフェールオーバー

レプリケーション/マルチマスタ

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

セッション
情報

User
Data
Store- 27 -

学術認証フェデレーション
学認：GakuNinとは？

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 28 -

学認とは？

参考） 「学術認証フェデレーションシンポジウム」の資料より
https://www.gakunin.jp/docs/open/3

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 29 -

学認の構成参考） 学術認証フェデレーションの資料より
https://www.gakunin.jp/

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 30 -

学認の動作の仕組み参考） 「学術認証フェデレーションシンポジウム」の資料より
https://www.gakunin.jp/docs/open/3

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 31 -

学認（Shibboleth）の特徴
 SSO方式としてSAMLを標準
 代理認証やヘッダ認証などの方式には対応していない

 多要素認証に対応していない
 学認では認証強度を伝える取り決めがない レルムといったマルチテナントの考え方がない 職員、学生、卒業生といった属性で認証方式を切り替えられない ロードバランサーで負荷分散は可能だが、セッションルーティングやセッションフェイルオーバーの機能は持っていない
 SPのための専用Webサーバー（Apache）が必要
 OpenAMはFedletを使ってアプリをSAML対応にできる 認可はSP側の役割でShibboleth IdPでは行えない
 OpenAMではエージェント使って（SAMLや代理認証、ヘッダ認証のアプリでも）認可をOpenAMで集中管理可能

 GUIの管理ツールがない OpenAMにはIdPとSP（エージェント）を集中管理できるWeb GUIが付属

 １つのShibbolethをIdPとSPの両方同時に動かすのは容易ではない OpenAMはIdPでありながらSPとしても動作させることが可能
Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 32 -

OpenAMとShibbolethとの連携

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 33 -

ShibbolethとOpenAMの連携
 ShibbolethはSAMLを使うので、Shibbolethの代わりにOpenAMを使うことは可能
 学認では、まずShibbolethありき、となっているが Shibbolethを入れてすべてのWebアプリをShibboleth SPとしてしまうのが理想だがSAML対応にするのは容易ではない OpenAMでは代理認証やヘッダ認証などの方式が利用でき、既存アプリの修正を最小限（修正なし）でSSO対応させることが可能
 OpenAMはIdPとしても（SAMLの）SPとしても振る舞うことが可能 ShibbolethをIdPとしても（SAMLの）SPとしても振る舞わせるには難しい Shibbolethの足りない部分をOpenAMで補い、連携させることで柔軟で高機能なSSOシステムが可能となる

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 34 -

OpenAMとShibbolethとの連携
どのIdPで認証されても、どのSPへアクセス可能
Shibboleth
SP
学認：NIISAMLOpenAM
IdP
OpenAM
リバプロ
認証連携Shibboleth
IdP
SAML

ヘッダ認証
または代理認証
OpenAMSP
SAMLに対応できない
既存アプリ

Shibboleth
SP

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 35 -

OpenAMとShibbolethとの連携(1)◎Shibbolethで認証されたユーザからOpenAMのSPへアクセス
Shibboleth
SP
学認：NIISAML

OpenAM
IdP
認証連携

OpenAM
リバプロ

②⑤

⑥
ヘッダ認証
または代理認証
OpenAM
SP③④

Shibboleth
IdP
SAML

①
Shibboleth
SP

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 36 -

OpenAMとShibbolethとの連携(2)◎ OpenAMで認証されたユーザからShibbolethのSPへアクセス
Shibboleth
SP
学認：NIISAML

OpenAM
IdP
OpenAM
リバプロ

OpenAM
SP

ヘッダ認証
または
代理認証

SAML認証連携Shibboleth
IdP③④②⑤SAML①Shibboleth
SPCopyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 37 -

まとめ 今後、学認（Shibboleth）の導入は大学（教育機関）での導入は必須となっていく ShibbolethだけでSSO環境を構築するのは容易ではない OpenAMは商用製品なので、実績のある商用SSOソリューションが多数存在する
 ICカード、ワンタイム、生体認証など
 代理認証やヘッダ認証など既存アプリの変更を最小限にしてSSO化が可能
 OpenAMとShibbolethを連携させることで既存環境と学認環境を平行運用しながら順次SSO対応化させていくことが可能

Copyright © 2011 Open Source Solution Technology Corporation All Rights Reserved.

- 38 -