SAML 2.0
特に拡張性が高く、単体でもマルチクライアントのクラウドシステムとしても運用でき、メタデータ管理、収集、電子リソースの管理、貸出、ユーザー管理、システム管理、統合などの分野で学術図書館の要件を満たすことが望ましい。機能要件は、ドイツの図書館協会GBVとhbz 、およびSOAS によってまとめられ、Folioコミュニティによってさらに開発が進められている。
このプロジェクトは、ExLibrisの独自のクラウドシステムAlmaおよびOCLCのWMSに代わるオープンソースを作成することを目的としている。
SAML メッセージは、あるエンティティから別のエンティティへ、「値」または「参照」によって送信される。SAML メッセージへの参照は「アーティファクト」と呼ばれる。 アーティファクトの受信者は、<samlp:ArtifactResolve> 要求をアーティファクトの発行者に直接送信することによって参照を解決し、発行者はアーティファクトによって参照される実際のメッセージで応答する。 たとえば、アイデンティティ・プロバイダが次の<samlp:ArtifactResolve> リクエストを(バック・チャネルを介して)サービス・プロバイダに直接送信したとすると、次のようになる:
応答として、サービスプロバイダは、封入されたアーティファクトによって参照されるSAML要素を返す。 このプロトコルは、HTTP Artifact Bindingの基礎を形成している。
SSOサービスは、<samlp:AuthnRequest>要素を処理して(リクエストのURLデコード、base64デコード、inflateの順に行う)、セキュリティ・チェックを実行する。 ユーザが有効なセキュリティ・コンテキストを持っていない場合、アイデンティティ・プロバイダはユーザを識別する(詳細は省略)。
4. XHTMLフォームで応答する
SSOサービスはリクエストを検証し、XHTMLフォームを含むドキュメントで応答する:
RelayStateパラメータの値は、ステップ 3から保存されている。 SAMLResponseパラメータの値は、次の<samlp:Response>要素のbase64エンコーディングである:
5. SPにアサーション・コンシューマー・サービスを要求する
ユーザ・エージェントは、サービス・プロバイダのアサーション・コンシューマ・サービスに POST リクエストを発行する。
ここで、SAMLResponseおよびRelayStateパラメータの値は、ステップ 4のXHTMLフォームから取得される。
6. ターゲット・リソースへのリダイレクト
アサーション・コンシューマー・サービスは、レスポンスを処理し、サービス・プロバイダでセキュリティ・ コンテキストを作成し、ユーザ・エージェントをターゲット・リソースにリダイレクトする。
7. SPに対象のリソースを再リクエスト
ユーザーエージェントは、サービスプロバイダーにターゲット・リソースをリクエストする(再度)。
8. 要求されたリソースで応答する
セキュリティコンテキストが存在するため、サービスプロバイダはリソースをユーザーエージェントに返す。
なお、上記の例では、<saml:Assertion>要素に以下の子要素が含まれている:
<saml:Issuer>要素:アイデンティティ・プロバイダの一意の識別子を含む。
<ds:Signature>要素:<saml:Assertion>要素に対する整合性保持のデジタル署名(表示せず)を含む
<saml:Subject>要素:認証されたプリンシパルを識別する。ただし、この場合、プライバシー保護の観点から、プリンシパルの身元は不透明な一時的な識別子で隠されてる。
<saml:Conditions> 要素:アサーションが「有効」とみなされる条件を示す。
<saml:AuthnStatement> 要素:IDプロバイダでの認証行為を記述する。
<saml:AttributeStatement> 要素:これは認証されたプリンシパルに関連する多値の属性を主張する。
言い換えれば、アサーションは以下の情報をエンコードしたものである: