SAML 2.0のRecipientとAudienceの違いを誰かが説明できますか?
私はここでOneLoginからかなり漠然とした説明しか見つけませんでした: https://support.onelogin.com/hc/en-us/articles/202673944-How-to-Use-the-OneLogin-SAML-Test-Connector :
受信者はSAML応答の対象を正確に教えてくれますが、オーディエンスはより広いレベルで応答の行き先を教えてくれます。たとえば、受信者はヤンキースタジアムで、聴衆はニューヨーク市である可能性があります。
しかし、私はそれが正しいかどうか100%確信していません。私は、オーディエンスが受信者よりも具体的であることを見てきました。
Recipientは、SAMLアサーションのSubject要素に関連付けられています。これは、認証が実行されるユーザーまたはサブジェクトに関するものであり、そのSubjectデータはIdPによってその特定の受信者(SP)に授与されます。アサーションに基づいて行動します。
NameID形式、値(IdPとSPの間でユーザーまたはサブジェクトを一意に識別する)、トークンの受信および有効性であるトークン形式(例:ベアラートークン)のNameID値などのサブジェクトデータ。通常、Receiptは、アサーションが受信されるSPエンドポイントです。
...
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="aaf23196-1773-2113-474a-fe114412ab72"
Recipient="https://sp.example.com/SAML2/SSO/POST"
NotOnOrAfter="2004-12-05T09:27:05"/>
</saml:SubjectConfirmation>
</saml:Subject>
...
AudienceはSAMLアサーションのCondition要素に関連付けられており、どのセキュリティ条件またはコンテキストでアサーションが有効であるかを示し、そのような有効性に関連するいくつかの条件を提供します(アサーションの時間有効性など、アサーションを消費するなど)。通常、オーディエンスはSPのEntityIDになります。
...
<saml:Conditions
NotBefore="2004-12-05T09:17:05"
NotOnOrAfter="2004-12-05T09:27:05">
<saml:AudienceRestriction>
<saml:Audience>https://sp.example.com/SAML2</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
...
オーディエンスとレシートはSAMLアサーション内の特定の目的のためにレイアウトされており、それらがすべて同じSP URLを値として持つことを盲目的にとらえることはできません。また、IdPの実装とIdPおよびSP SAMLアサーションのオーディエンス要素とレシート要素で使用する値を考え出すために交渉します。