protected override string GetDownloadUri(IssuerConfiguration issuerConfiguration)
        {
            var downloadUri = ConfigurationStore.GetCertificateUri();

            if (string.IsNullOrWhiteSpace(downloadUri))
            {
                downloadUri = issuerConfiguration.JwksUri;
            }

            return(downloadUri);
        }
        public ActionResult Token()
        {
            var configuration = new IssuerConfiguration
            {
                EncryptionCertificate = new X509Certificate2(Server.MapPath("~/Certs/localhost.cer")),
                SigningCertificate = new X509Certificate2(Server.MapPath("~/Certs/localhost.pfx"), "a")
            };
            var authServer = new AuthorizationServer(new OAuth2Issuer(configuration));

            return authServer.HandleTokenRequest(Request).AsActionResult();
        }
Beispiel #3
0
        public override string Build(string requestDirectoryPath, IssuerConfiguration issuerConfiguration, string nonce, string state)
        {
            var url = base.Build(requestDirectoryPath, issuerConfiguration, nonce, state);

            var hd = ConfigurationStore.GetHostedDomain();

            if (!string.IsNullOrWhiteSpace(hd))
            {
                url += $"&hd={hd}";
            }

            return(url);
        }
        public Task <IDictionary <string, X509Certificate2> > GetCertificatesAsync(IssuerConfiguration issuerConfiguration)
        {
            lock (funcLock)
            {
                if (certRetrieveTask != null && certificateCacheExpires > clock.GetLocalTime())
                {
                    return(certRetrieveTask);
                }

                // assume the cache is indefinite by default, and adjust back based on downloaded certificates.
                certificateCacheExpires = DateTime.MaxValue;

                certRetrieveTask = DoGetCertificateAsync(issuerConfiguration);
            }
            return(certRetrieveTask);
        }
        public async Task <IDictionary <string, X509Certificate2> > DoGetCertificateAsync(IssuerConfiguration issuerConfiguration)
        {
            using (var client = new HttpClient())
            {
                var downloadUri = GetDownloadUri(issuerConfiguration);

                var response = await client.GetAsync(downloadUri);

                var content = await response.Content.ReadAsStringAsync();

                var downloadedCerts = certificateParser.Parse(content);

                return(downloadedCerts.ToDictionary(c => c.Kid, c => FromBase64String(c.Kid, c.Certificate)));
            }
        }
 protected virtual string GetDownloadUri(IssuerConfiguration issuerConfiguration)
 {
     return(issuerConfiguration.JwksUri);
 }
        public async Task <IDictionary <string, AsymmetricSecurityKey> > DoGetKeyAsync(IssuerConfiguration issuerConfiguration)
        {
            using (var client = new HttpClient())
            {
                var downloadUri = GetDownloadUri(issuerConfiguration);

                var response = await client.GetAsync(downloadUri);

                var content = await response.Content.ReadAsStringAsync();

                var downloadedKeys = keyParser.Parse(content);

                return(downloadedKeys.ToDictionary(c => c.Kid, ConvertDetailsToKey));
            }
        }