[TODO] ※このページは作成中です。
SAMLは、現在最も実装例が多く、実績のあるフェデレーション方式のシングルサインオンを実現するプロトコルです。SAMLのメッセージは、XML形式でHTTPなどに付加されて、サーバー間でやりとりされます。SAML認証時のHTTPリクエストやレスポンスのボディ部にあるsamlp:~タグで囲まれている部分がSAMLのメッセージです。この中に認証の結果や、ユーザーの属性(IDや所属組織)、アクセス権限などの情報が含まれており、各サーバーはこれを解析して認証やアクセス制御を行います。
SAMLでは、サービスを提供するサーバーを「サービスプロバイダ(SP)」、SPからの要求に対して認証を行い、ユーザーの属性情報を返すサーバーを「アイデンティティプロバイダ(IdP)」といいます。SAMLを利用してSSOするためには、SPとIdPの両者間で証明書(標準メタデータ)を交換する必要があります。これはユーザー情報を共有するサーバー間で事前に信頼関係を結ぶことが、SAMLによるSSOの前提となっているためです。この信頼関係を「トラストサークル」といいます。トラストサークルの設定に加えて、両者間のユーザーをマッピングをするための設定が必要になります。例えば、Salesforceユーザーの「統合ID」とOpenAMユーザーの「ID(uid)」が一致する場合に同一ユーザーとみなす、というようにユーザー属性の対応付けを行う必要があります。
OpenAM 13.0.0は以下の機能を提供しています。
- 連携(フェデレーション)
- 共通タスク
- Fedlet
- SAML2認証モジュール
設定のおおまかな流れは以下のようになります。
- 事前準備
- 証明書の取得
- 連携用ユーザーの作成
- SSO設定(相手の証明書の取り込みを含む) すべて完了すると、トラストサークルが構成され、SSOが可能になります。