Frage

Kann jemand bitte zeigen Sie mir in die Richtung eines Beispiels eines SamlAssertion zu schaffen, die eine AudienceRestriction in den Bedingungen Knoten enthält?

unten ist ein Beispiel von meinem Code, wo ich möchte es setzen:

//Create the SAML Assertion
SamlAssertion samlAssert = new SamlAssertion();
samlAssert.AssertionId = Convert.ToBase64String(encoding.GetBytes(System.Guid.NewGuid().ToString()));
samlAssert.Issuer = "http://www.example.com/";

// Set up the conditions of the assertion - Not Before and Not After
samlAssert.Conditions = new SamlConditions(DateTime.Now, DateTime.Now.AddMinutes(5));

Die gewünschte XML sieht etwa so aus:

<Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion" AssertionID="_e835eca079133299b2f8a2a63ad72fe8" IssueInstant="2007-02-07T20:22:58.165Z" Issuer="http://www.example.com/" MajorVersion="1" MinorVersion="1">
 <Conditions NotBefore="2007-02-07T20:22:58.162Z" NotOnOrAfter="2007-02-07T20:24:58.162Z">
  <AudienceRestrictionCondition>
   <Audience>http://www.example2.com</Audience> 
  </AudienceRestrictionCondition>
 </Conditions>

Ich sehe, dass es einen Konstruktor für SamlConditions Klasse, die erlaubt für einen dritten Parameter, die Bedingungen, und dass eine SamlAudienceRestriction Klasse gibt es, aber ich kann nicht scheinen, um herauszufinden, wie die beiden zu verbinden. Ich denke, wenn ich ein Stück Code, um zu sehen, wäre es schmerzlich mir klar geworden, aber leider mein Google-foo versagt mir heute.

War es hilfreich?

Lösung

Ich schwöre, dass ich mehrere Stunden damit verbracht, diese ein, um herauszufinden, vor der Veröffentlichung ... aber anscheinend Posting war genau das, was ich die Antwort zu sehen brauchte. Unten ist der Code Ich habe das Publikum Beschränkung für die SAML zu erstellen:

//Create the SAML Assertion
SamlAssertion samlAssert = new SamlAssertion();
samlAssert.AssertionId = Convert
    .ToBase64String(
    encoding.GetBytes(System.Guid.NewGuid().ToString()));
samlAssert.Issuer = "http://www.example.com/";

// Set up the conditions of the assertion - Not Before and Not After
Uri[] approvedAudiences = {new Uri("http://www.example2.com")};
List<SamlCondition> conditions = new List<SamlCondition>();
conditions.Add(new SamlAudienceRestrictionCondition(approvedAudiences));
samlAssert.Conditions = new SamlConditions(
    DateTime.Now, 
    DateTime.Now.AddMinutes(5), 
    conditions
    );

Wenn jemand etwas falsch sieht, oder kennt eine bessere / effizientere Art und Weise, lassen Sie es mich wissen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top