あなたは、Pingのは、リクエストとレスポンスのXMLのカスタマイズを可能始まった場所である、仕事にこのためPingFed 8.0以降を実行している必要があります。その件については、documentationで詳しくお読みください。
#AssertionType.getConditions().addNewAudienceRestriction().addAudience("whatever:eh")
はあなたの次の要素のようなもの与える:この使用
<saml:Conditions NotBefore="2017-03-24T20:23:55.341Z" NotOnOrAfter="2017-03-24T20:38:55.341Z">
<saml:AudienceRestriction>
<saml:Audience>pingfederate:default:entityId</saml:Audience>
</saml:AudienceRestriction>
<saml:AudienceRestriction>
<saml:Audience>whatever:eh</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
はしかし、SAML仕様(SAML-CORE-2.0, 2.5.1.4)は述べている:
注意を複数の要素がかもしれないこと 単一アサーションに含めることができ、それぞれを個別に評価する必要があります。この条件と上記の定義の効果 は、 与えられた条件の中で、複数の条件が結合(AND)を形成する一方、観客は論理和(「OR」)を形成することである。
あなたが話している形式では、「AND」が表示されます。あなたのパートナーが両方を履行することはほとんど不可能なので、あなたは "OR"を探しているかもしれないと思います。そのような場合は、次の手順を使用したいと思う:
のようなものを生成する必要があり
#AssertionType.getConditions().getAudienceRestrictionArray(0).addAudience("whatever:eh")
:
<saml:Conditions NotBefore="2017-03-24T20:20:37.046Z" NotOnOrAfter="2017-03-24T20:35:37.046Z">
<saml:AudienceRestriction>
<saml:Audience>pingfederate:default:entityId</saml:Audience>
<saml:Audience>whatever:eh</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
を、それはあなたが探しているということであるものの例応答/アサーションを提供してください。理由...複数の値を返す必要はありません。 –
こんにちは、私が探しているものの例を追加しました。私はこのアサーションをOauth2 saml許可タイプのフローで使用します。 SPはアサーションをトークンエンドポイントに送信し、アクセストークンを取得します。検証では、トークンエンドポイントは、SAMLアサーションに、それ自身のエンドポイントエイリアスがオーディエンス値として含まれているかどうかをチェックします。これは、SPのentityIDと同じではありません。したがって、アサーションに必要なオーディエンスが含まれていない場合、検証は失敗します。 – nwick