public async Task <IActionResult> Get() { var scheme = _authenticationOptions.Schemes.FirstOrDefault(s => s.HandlerType == typeof(SamlSpHandler)); var schemeName = SamlSpDefaults.AuthenticationScheme; if (scheme != null) { schemeName = scheme.Name; } var handler = await _authenticationHandlerProvider.GetHandlerAsync(HttpContext, schemeName); var samlHandler = handler as SamlSpHandler; var options = samlHandler.SamlSpOptions; var callbackPath = options.CallbackPath.Value; var result = EntityDescriptorBuilder.Instance(options.SPId) .AddSpSSODescriptor(cb => { cb.SetAuthnRequestsSigned(options.AuthnRequestSigned); cb.SetWantAssertionsSigned(options.WantAssertionSigned); cb.AddAssertionConsumerService(Constants.Bindings.HttpRedirect, $"{options.BaseUrl}{callbackPath}"); if (options.SigningCertificate != null) { cb.AddSigningKey(options.SigningCertificate); } }).Build(); return(new ContentResult { Content = result.SerializeToXmlElement().OuterXml, ContentType = "application/xml", StatusCode = (int)HttpStatusCode.OK }); }
public EntityDescriptorType Get() { return(EntityDescriptorBuilder.Instance(_options.IDPId) .AddIdpSSODescriptor(cb => { cb.AddSingleSignOnService($"{_options.BaseUrl}/{Constants.RouteNames.SingleSignOn}/Login", Saml.Constants.Bindings.HttpRedirect); cb.AddSigningKey(_options.SigningCertificate); }).Build()); }