SAML 2.0
SAMLCoreでは以下のプロトコルが規定されている。
アサーションクエリおよびリクエストプロトコル
認証要求プロトコル
Artifact Resolution Protocol
名前識別子管理プロトコル
シングルログアウトプロトコル
名前識別子マッピングプロトコル
これらのプロトコルのうち、最も重要な「認証要求プロトコル」について、以下に詳しく説明する。
SAML 2.0 がサポートする「バインディング」の概要は、Bindings 仕様((SAMLBind)に記載されている:
SAML SOAP Binding (based on SOAP 1.1)
Reverse SOAP (PAOS) Binding
HTTP Redirect Binding
HTTP POST Binding
HTTP Artifact Binding
SAML URI バインディング
Web ブラウザ SSO では、HTTP リダイレクト・バインディングと HTTP POST バインディングがよく使われる。 たとえば、サービス・プロバイダは HTTP リダイレクトを使用して要求を送信する一方で、アイデンティティ・プロバイダは HTTP POST を使用して応答を送信することができる。 この例は、エンティティのバインディングの選択が、パートナーのバインディングの選択とは無関係で あることを示している。
Security Assertion Markup Language
SAML 1.1
SAML metadata
SAML-based products and services
OpenID Connect
Folioは、(正式名称FOLIO、ラテン語の「葉」に由来)は、国際的なFolioコミュニティが開発した、図書館管理のためのクラウド対応のオープンソースである。 Folioは、ソフトウェア会社Index Dataが2015年から開発し、 EBSCO Information Servicesが出資している。実行可能なソフトウェアの基盤は2016年9月から公開され、機能モジュールを備えた初期バージョンは2018年に発表された。
アイデンティティ・プロバイダの SSO サービスは、<md:IDPSSODescriptor> 要素で記述される:
前述のメタデータ要素は、アイデンティティ・プロバイダにおける SSO サービスについて説明している。 この要素についての詳細は以下の通り:
アイデンティティ・プロバイダのソフトウェアには、SAML 署名鍵(秘密鍵)とバックチャネル TLS 鍵(秘密鍵)のうち一方、もしくは両方が設定されている。対応する公開鍵は,IdP メタデータの <md:KeyDescriptor use="sinking"> 要素に含まれる。簡潔にするため、キーマテリアルは、キーの記述子から省略されている。
<md:ArtifactResolutionService>要素のBinding属性は、アーティファクト解決にSAML SOAPバインディング(SAMLBind)が使用されるべきことを示す。
<md:ArtifactResolutionService>要素のLocation属性は、「ダブル・アーティファクト」プロファイルのステップ 8で使用される。
<md:ArtifactResolutionService> 要素の index 属性の値は、SAML タイプ 0x0004 アーティファクトの構築において EndpointIndex として使用される。
HTTP POSTバインディング(index="0")をサポートする<md:AssertionConsumerService>要素のLocation属性は、「double POST」プロファイルのステップ 4で使用されている。
HTTPアーティファクト・ バインディングをサポートする <md:AssertionConsumerService> 要素のLocation属性 (index="1") は、"double artifact プロファイルのstep 6で使用されている。
<md:AttributeConsumingService>要素は、WebブラウザSSOと連動してサービス・プロバイダにプッシュされる<saml:AttributeStatement>要素を形成するために、アイデンティティ・プロバイダが使用する。
<md:AttributeConsumingService>要素のindex属性は、<samlp:AuthnRequest>要素のAttributeConsumingServiceIndex属性の値として使用される。
このセクションの冒頭で述べたように、Location属性の値は、SAMLメッセージをルーティングするためにアイデンティティ・プロバイダによって使用され、これにより、不正なサービス・プロバイダがman-in-the-middle attackを指揮する可能性を最小限に抑えることができる。