public void ShouldCreateMessage() { var options = new SamlOptions(); options.SignOutgoingMessages = false; var authnRequestMessage = new SamlAuthnRequestMessage(); authnRequestMessage.AssertionConsumerServiceUrl = "test"; var xmlDocument = _authnRequestFactory.CreateMessage(options, authnRequestMessage); XmlNamespaceManager mgr = new XmlNamespaceManager(xmlDocument.NameTable); mgr.AddNamespace("samlp", "urn:oasis:names:tc:SAML:2.0:protocol"); mgr.AddNamespace("saml", "urn:oasis:names:tc:SAML:2.0:assertion"); var authnRequestNode = xmlDocument.SelectSingleNode("/samlp:AuthnRequest", mgr); var issuerNode = xmlDocument.SelectSingleNode("/samlp:AuthnRequest/saml:Issuer", mgr); Assert.NotNull(authnRequestNode); Assert.NotNull(issuerNode); Assert.Equal("test", authnRequestNode.Attributes["AssertionConsumerServiceURL"].Value); Assert.Equal("", authnRequestNode.Attributes["Destination"].Value); Assert.Equal("2.0", authnRequestNode.Attributes["Version"].Value); }
public void ShouldCreateSignedMessage() { var privateCert = new X509Certificate2(File.ReadAllBytes("PrivateTestCert.pfx"), "test"); var options = new SamlOptions { SignOutgoingMessages = true, ServiceProviderCertificate = privateCert }; var authnRequestMessage = new SamlAuthnRequestMessage(); authnRequestMessage.AssertionConsumerServiceUrl = "test"; var xmlDocument = _authnRequestFactory.CreateMessage(options, authnRequestMessage); XmlNamespaceManager mgr = new XmlNamespaceManager(xmlDocument.NameTable); mgr.AddNamespace("samlp", "urn:oasis:names:tc:SAML:2.0:protocol"); mgr.AddNamespace("saml", "urn:oasis:names:tc:SAML:2.0:assertion"); var authnRequestNode = xmlDocument.SelectSingleNode("/samlp:AuthnRequest", mgr); var issuerNode = xmlDocument.SelectSingleNode("/samlp:AuthnRequest/saml:Issuer", mgr); Assert.NotNull(authnRequestNode); Assert.NotNull(issuerNode); Assert.Equal("test", authnRequestNode.Attributes["AssertionConsumerServiceURL"].Value); Assert.Equal("", authnRequestNode.Attributes["Destination"].Value); Assert.Equal("2.0", authnRequestNode.Attributes["Version"].Value); }
/// <inheritdoc /> protected override Task HandleChallengeAsync(AuthenticationProperties properties) { var context = new SamlAuthnRequestMessage { AssertionConsumerServiceUrl = BuildRedirectUri(Options.CallbackPath), Issuer = Options.ServiceProviderEntityId, Destination = Options.IdentityProviderSignOnUrl }; _authnRequestHandler.Handle(Options, Request.HttpContext, context, Options.IdentityProviderSignOnUrl, Options.AuthnRequestBinding, BuildRedirectUri(OriginalPath)); return(Task.CompletedTask); }