SAML 2.0
アイデンティティ・プロバイダは <md:EntityDescriptor> 要素で自身に関するデータを公開する:
このエンティティ記述子については、以下の詳細に注意する:
entityID属性は、エンティティのユニークな識別子である。
validUntil 属性は、メタデータの失効日を示す。
<ds:Signature>要素(簡略化のため省略)には、メタデータの真正性と完全性を保証するデジタル署名が含まれている。
<md:Organization> 要素で識別される組織は、エンティティ記述子(SAMLMetaのセクション 2.3.2)で記述された「エンティティに責任を持つ」組織であることを示しす。
<md:ContactPerson>要素に含まれるコンタクト情報は、そのエンティティに責任を持つテクニカルコンタクトを特定するものである。複数のコンタクトやコンタクトタイプが可能である。SAMLMetaのセクション 2.3.2.2を参照。。
定義上、アイデンティティ・プロバイダは、SAMLProfで指定されたSAML WebブラウザSSOプロファイルをサポートするSSOサービスを管理する。次のセクションで示す<md:IDPSSODescriptor>要素に記述されているアイデンティティ・プロバイダがその例である。
アサーション コンシューマー サービスは、<md:SPSSODescriptor> 要素に含まれる:
<md:SPSSODescriptor> メタデータ要素に関する詳細は次の通り:
サービスプロバイダのソフトウェアには、SAML 署名鍵(秘密鍵)とバックチャネル TLS 鍵(秘密鍵)のどちらか一方、もしくは両方が設定されている。対応する公開鍵は、SP メタデータの <md:KeyDescriptor use="sinking"> 要素に含まれている。キー・マテリアルは、簡潔にするためにキーの記述子から省略されている。
同様に、サービス・プロバイダのソフトウェアには、SAML 復号鍵(秘密鍵)が設定される。SAML暗号化鍵(公開鍵)は、SPメタデータの<md:KeyDescriptor use="encryption">要素に含まれる。キー・マテリアルは、簡潔にするためにキーの記述子から省略されている。
<md:AssertionConsumerService>要素のindex属性は、<samlp:AuthnRequest>要素のAssertionConsumerServiceIndex属性の値として使用される。
<md:AssertionConsumerService>要素のBinding属性は、SAML 2.0 Binding仕様(SAMLBind)で指定されている標準的なURIである。
Example UKとExample Deutschlandの両方がこのドメインに存在しているとする(それぞれ、uk.example.comとde.example.com)。
「共通ドメインクッキー」は、共通ドメインにスコープされた安全なブラウザ・クッキーである。 このクッキーは、各ブラウザユーザが最近訪問した IdP の履歴リストを保存する。 クッキーの名前と値は,IdPディスカバリー・プロファイル(SAMLProf)で指定される。
認証に成功すると、IdP は「共通ドメインクッキー書き込みサービス」を要求する。 このサービスは、共通ドメインクッキーにIdPの固有識別子を付加する。 SP は,保護されたリソースに対する認証されていないリクエストを受け取ると、ブラウザユーザが直近に使用した IdP を発見するために、「共通ドメイン・クッキー読み取りサービス」を要求する。
<md:NameIDFormat> 要素は、SSO サービスがどの SAML 名前識別子フォーマット (SAMLCore) をサポートしているかを示す。
<md:SingleSignOnService> 要素の Binding 属性は、SAML 2.0 Binding 仕様 (SAMLBind) で指定された標準 URIである。
HTTP POST バインディングをサポートする <md:SingleSignOnService> 要素の Location 属性は、「double POST」プロファイルの step 2 で使用される。
HTTPアーティファクトバインディングをサポートする<md.SingleSignOnService>要素のLocation属性は、「ダブル・アーティファクト」プロファイルのステップ 2 で使用される。
<saml:Attribute> 要素は、アイデンティティ・プロバイダが(ポリシーに基づいて)表明することを望んでいる属性を記述している。 <saml:AttributeValue>要素は、属性が取り得る値を列挙する。
このセクションの冒頭で述べたように、Location属性の値は、サービス・プロバイダがSAMLメッセージをルーティングするために使用され、不正なアイデンティティ・プロバイダがman-in-the-middle attackを指揮する可能性を最小限に抑えることができる。