OASIS規格解説
SAML(Security Assertion Markup Language)
(株)日本ユニテック
青木 秀起
SAMLとは、異なるシステム間における認証情報の交換プロトコルです。以前のAuthXML (Authentication XML) とS2ML(Security Services Markup Language、Netegrity社他数社が開発)が統合され、新しい機能が追加されてSAMLとなりました。2002年11月に1.0版がOASIS標準として承認され、現在2.0版が開発中です。
(http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security)
SAMLとは何か?
何かを購入したい場合、あるサイトでユーザ名やパスワード等の情報を入力してサインオンしても、別のサイトにサインオンするときには新たに入力し直さなければなりません。一度あるサイトにサインオンすれば他のサイトでも入力作業なしで利用できるとユーザにとってはとても便利です。異なるシステム間における認証・承認情報の交換を容易にすることにより、ユーザが1回認証されてログインすれば複数のシステムにアクセスできる「シングルサインオン」を実現するための規格、それがSAMLです。
図1 シングル・サインオン
図1にあるとおり、Webユーザは、ソースWebサイトで認証を受けます。その後Webユーザはセキュアなリソース(この認証情報)を利用して目的Webサイトにサインオンします。たとえば、企業Aと企業Bの間であらかじめ必要な認証・承認情報の属性や処理について合意しておきます。企業Aと企業Bの認証基準が合致する場合、企業Aによって認証されたユーザは、企業Bにも自動的に認証され、面倒な認証手続きを繰り返す必要はありません。これは、SOAP/HTTPメッセージ部分に、企業Aによって認証された証明書が組み込まれて企業Bに渡されるからです。企業Aと企業Bの認証基準が異なる場合には、必要な情報が新たに要求されることになりますが、最初から認証手続きを行なうことに比べ、簡単に認証手続きを行なうことができます。
シングルサインオンのモデル
シングルサインオンのモデルとして、以下の3つのモデルが考えられています。
1.プル・モデル (Pull Model)
目的WebサイトがソースWebサイトにユーザ情報を要求して引き出します (Pull)。
図2 プル・モデル (Pull Model)
- WebユーザはソースWebサイトで認証を受ける。
- ⇒Webユーザは目的Webサイトへのリンク要求をする。
- ⇒ソースWebサイトはユーザに認証の参照先を提供する。
- ⇒Webユーザは認証の参照先を示して目的Webサイトにアクセス要求する。
- ⇒目的WebサイトはソースWebサイトにWebユーザの認証文書を要求する。
- ⇒ソースWebサイトは認証文書を戻す。
- ⇒目的WebサイトはWebユーザにリソースを提供する。
2.プッシュ・モデル (Push Model)
ソースWebサイトが目的Webサイトにユーザ情報を送信 (Push) します。
図3 プッシュ・モデル (Push Model)
- WebユーザはソースWebサイトで認証を受ける。
- ⇒Webユーザは目的Webサイトへのリンク要求をする。
- ⇒ソースWebサイトは目的Webサイトへ、Webユーザの目的Webサイトへのアクセス要求を送信する(認証情報や権限属性も)。
- ⇒目的Webサイトは許可決定の参照先をソースWebサイトに戻す。
- ⇒ソースWebサイトは、ユーザに許可決定の参照先を提供し、Webユーザは直接目的Webサイトにアクセスする。
- ⇒Webユーザは目的Webサイトにアクセス要求する。
- ⇒目的WebサイトはWebユーザにリソースを提供する。
3.第三者セキュリティ・サービス (Third-Party Security Service)
第三者セキュリティ・サービスがユーザに認証アサーションを提供し、いくつかの目的Webサイトは同じ認証アサーションを使ってユーザを認証することができます。
図4 第三者セキュリティ・サービス (Third-Party Security Service)
- Webユーザはセキュリティサービスで認証を受ける。
- ⇒セキュリティサービスはSAML認証の参照先をWebユーザに戻す。
- ⇒Webユーザは第1目的Webサイトへのアクセス要求をする。
- ⇒第1目的Webサイトはセキュリティサービスに認証文書を要求する。
- ⇒セキュリティサービスは認証文書を第1目的Webサイトに提供する。
- ⇒第1目的WebサイトはWebユーザにリソースを提供する。
- ⇒Webユーザは第2目的Webサイトへのリンク要求をする。
- ⇒第1目的Webサイトは第2目的Webサイトのアクセス許可を要求する。
- ⇒第2目的Webサイトはアクセス許可を提供する。
- ⇒第1目的WebサイトはWebユーザに許可決定の参照先を提供する。
- ⇒Webユーザは第2目的Webサイトへのアクセス要求をする。
- ⇒第2目的Webサイトはリソースを提供する。
SAMLプロトコル
SAMLでは、ユーザ認証情報の要求応答の仕組み「SAMLプロトコル」が規定されています。
図5 SAMLの要求応答プロトコル
リクエスタは、SAML要求をSAMLオーソリティにSAML要求を送信し、SAMLオーソリティはSAML応答を生成します。やり取りされるSAML要求とSAML応答の大まかな構造をご紹介しましょう。
図6 SAML要求の構造
図7 SAML応答の構造
まとめ
Sun ONE Identity Server(Sun社、ネットワーク向け認証ソフトウエア)、RSA ClearTrust(RSA Security社、アクセス権限管理ソフトウエア)、Entrust GetAccess(Entrust社、シングルサインオン製品)、SelectAccess(Baltimore社、アクセス権限管理ソフトウェア)など、SAMLを実装した製品が登場しつつあります。SAMLは、ダイナミックなWebサービスを実現するための重要な技術であり、さらなる実装が期待されます。
関連サービス
標準化仕様の動向調査
最新動向を伝えるDXメールニュース
(無料)
|