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
            });
        }
Exemplo n.º 2
0
 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());
 }