Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
- SAMLはSecurity Assertion Markup Languageの略で、OASIS3によって策定された、
異なるセキュリティドメイン間で、認証情報を連携するためのXMLベースの標準仕様。
- SAMLはクッキーを用いず、グローバルなSSOとより強力なセキュリティを可能にする。
- 企業間のそれぞれ独立したサービスをグローバルなSSOで連携させることが可能になる。
参考 †
Webサービス技術解説 - SAML技術解説 †
http://xmlconsortium.org/websv/kaisetsu/C10/content.html
- SAML概要
- SAMLは、メッセージのトランスポートとして、HTTPとSOAPの両方が利用できます。
- SAMLをHTTPやSOAPメッセージに付加することで、
一つの信用情報を持ち回りでき、シングルサインオンを実現しています。
- 今後のWebサービスに使われる重要な技術の一つとして注目されています。
- 用語解説
- Use Case (シングルサインオン[Single Sign-On])
- Single Sign-on, Pull Model
- Single Sign-on, Push Model
- Single Sign-on, Third-Party Security Service
- SAMLアサーション(SAML Assertion)
- SAMLアサーション要素のスキーマ
- SAMLアサーションの構成と要素名
- SAMLプロトコル
- Protocol Binding and Profile Concepts
SAML認証ができるまで Cybozu Inside Out サイボウズエンジニアのブログ †
http://developer.cybozu.co.jp/tech/?p=4224
SAMLはSecurity Assertion Markup Languageの略で、OASIS3によって策定された、
異なるセキュリティドメイン間で、認証情報を連携するためのXMLベースの標準仕様。
- 用語
- 認証情報を提供する側をIdentity Provider(IdP)
- 認証情報を利用する側をService Provider(SP)
- SAML Core
認証情報を表すXMLのスキーマ(SAML Assertions)と、
メッセージ交換のプロトコル(SAML Protocols)を定義。
- SAML Bindings
SAMLのメッセージを実際の通信プロトコル(HTTPなど)にマッピングする方法を定義。
- SAML Profiles
特定のユースケースを実現するための組み合わせ方を定義。
- SAML Assertions
- SAML Protocols
- SAML Bindings
- SAML Metadata
IdPやSPに関する情報を表現するためのXMLのスキーマを定義(IdPとSPの信頼関係を構築)。
@IT Webサービスのセキュリティ †
(4)強力なSSOを実現するXML認証・認可サービス(SAML)
(1-2) †
http://www.atmarkit.co.jp/ait/articles/0210/02/news002.html
- 従来SSOは、認証クッキーを使って実現してきた。
- クッキーは第三者が不正使用してなりすましを許す可能性がある。
- 認証クッキーは同じクッキードメイン内でのSSOに制限されている。
- SAMLはクッキーを用いず、グローバルなSSOとより強力なセキュリティを可能にする。
- 企業間のそれぞれ独立したサービスをグローバルなSSOで連携させることが可能になる。
- SAML標準の1つの目的
- 異なるベンダのアクセス制御製品間の相互運用性を推進すること。
- 現状では異なるベンダ製品ですでに大規模に展開されたサイト間でのSSOを実現することが難しい。
- しかし、SAML標準を実装したアクセス制御製品間では連携SSOが可能となる。
- SAMLはセキュリティ情報交換のためのXMLベースのフレームワークであり、
要求と応答のプロトコルと応答に含まれるアサーションの構文仕様を定めたものである。
- アサーション(Assertion)
アサーションとはSAMLオーソリティによって発行され、
対象とする主体の認証や属性あるいは資源に関する認可権限の証明。
- オーソリティ(Authority)
- 認証オーソリティ、属性オーソリティ、ポリシー決定点の3つがある
- 問合せにその正当性を証明する応答(アサーション)を返すシステム・エンティティ。
- SSOを実現するだけなら、認証オーソリティを用いるだけでよい。
- 認証オーソリティ(Authentication Authority)
ユーザーの認証を証明するもので、CAの機能ではなく、
認証権限の許可を「認証アサーション」として返す。
- 属性オーソリティ(Attribute Authority)
ユーザーの登録された属性情報の証明を「属性アサーション」として返す。
- ポリシー決定点(Policy Decision Point:PDP)
ポリシー実行点(Policy Enforcement Point:PEP)の要求に対して
ユーザーのPolicyに従ったアクセス制御の権限が何であるかの証明を
「認可決定アサーション」として返す。
- ポリシー実行点(Policy Enforcement Point:PEP)
PDPの証明に従ってアクセス制御を実行しその結果を返すところ。
- PullモデルとPushモデル(SSOの2つのモデル)
- Pullモデル
アクセス要求を受けたサイトが主体の認証情報をオーソリティに問い合わせる。
- Pushモデル
オーソリティがユーザーの認証情報を事前にアクセス要求を受けるサイトに知らせておく。
- 認可
- Webユーザーはアクセス制御を実行するWebサイトのPEPへアクセスを要求する。
- PEPはPDPに問い合わせ、Webユーザーのアクセス権限をチェックし、資源へのアクセス制御を実行する。
- SAMLのモデル
- 要求者の問い合わせに対するSAMLオーソリティの対応(アサーションの提供)
- 認証オーソリティは認証情報の再利用(SSO)を可能にする「認証アサーション」を提供する
- 属性オーソリティはポリシーに定めた資格や役職などの「属性アサーション」を提供する
- 認可決定オーソリティはポリシーで定めた規則に従った「認可決定アサーション」を提供する
- アサーションの提供を受けた要求者の行動
- 本人性(Identity)を認証し、指定したWebサイトにアクセスさせる
- 本人の資格属性によって特定のページへのアクセスを許可する
- 本人の認可権限によって特定の資源へのアクセス(読み、書き、実行など)をさせる
(2-2) †
http://www.atmarkit.co.jp/ait/articles/0210/02/news002_2.html
- SAML要求プロトコル<Request>
- 認証問い合わせ要求<AuthenticationQuery?>
- 属性問い合わせ要求<AttributeQuery?>
- 認可決定問い合わせ要求<AuthorizationDecisionQuery?>
- SAML応答プロトコル<Response>
- 認証<AuthenticationQuery?>→<AuthenticationStatement?>
- 属性<AttributeQuery?>→<AttributeStatement?>
- 認可決定<AuthorizationQuery?>→<AuthorizationStatement?>
- SOAPバインディングとプロファイル
- SAML仕様は下位のトランスポートプロトコルとして特定のプロトコルを想定していないが、
- SAML over SOAP over HTTPを必須のプロトコルバインディング(ヘッダ情報)としてしている。
- (ただし、over HTTPということは、トランスポートプロトコルは通常、TCP/IPになる)
- SAMLをSOAPにバインドする際の基本的方針は以下のとおりである。
- SOAPバインディングではSOAPのHeaderは使わず、Body内にSAMLプロトコルを記述する。
- 1つのSOAPメッセージにはSAML<Request>は1つだけにする。
- 1つのSOAPメッセージにはSAML<Response>は1つだけにする。
- SAML SSOプロファイル
ブラウザベースのSAMLプロファイルとして、
ブラウザ/artifactプロファイルとブラウザ/POSTプロファイルを定めている。
- ブラウザ/artifactプロファイル
Pullモデルに相当する。
シングルサインオンの歴史とSAMLへの道のり †
http://www.slideshare.net/shinichitomita/saml-34672223
「認証」と「認可」 †
どちらもシングルサインオンのエクスペリエンス。
- 認証(Authentication):「あなたは〇〇さんですね」
認証サーバで認証する。
- 認可(Authorization):「あなたは△△してもいいですよ」
認可情報を生成し、サーバー(アプリケーション)上で認可する。
- (署名なし)トークン形式
- 認可情報に紐付けられた割符のようなもの。
- トークンを持っていればアクセス許可されている。
- アサーション形式
- 認可情報を文書として記述し、発行者の署名つきで渡す。
- 電子署名されているので、認可情報は改ざんできない。
UXからの分類 †