public async Task <IActionResult> GetJsonWebKeySetAsync() { JwksDocument jwksDocument = new JwksDocument { Keys = new List <JwkDocument>() }; List <X509Certificate2> certificates = await _certificateProvider.GetCertificates(); foreach (X509Certificate2 cert in certificates) { string oidFriendlyName = cert.PublicKey.Oid.FriendlyName; RSA rsaPublicKey = cert.GetRSAPublicKey(); RSAParameters exportParameters = rsaPublicKey.ExportParameters(false); string exponent = Convert.ToBase64String(exportParameters.Exponent); string modulus = Convert.ToBase64String(exportParameters.Modulus); List <string> chain = ExportChain(cert); JwkDocument jwkDocument = new JwkDocument { KeyType = oidFriendlyName, PublicKeyUse = "sig", KeyId = cert.Thumbprint, Exponent = exponent, Modulus = modulus, X509Chain = chain }; jwksDocument.Keys.Add(jwkDocument); } return(Ok(jwksDocument)); }
public async Task <IActionResult> GetJsonWebKeySet() { X509Certificate2 cert = GetTokenCertificate(); string oidFriendlyName = cert.PublicKey.Oid.FriendlyName; RSA rsaPublicKey = cert.GetRSAPublicKey(); RSAParameters exportParameters = rsaPublicKey.ExportParameters(false); string exponent = Convert.ToBase64String(exportParameters.Exponent); string modulus = Convert.ToBase64String(exportParameters.Modulus); List <string> chain = ExportChain(cert); JwksDocument jwksDocument = new JwksDocument { Keys = new List <JwkDocument> { new JwkDocument { KeyType = oidFriendlyName, PublicKeyUse = "sig", KeyId = cert.Thumbprint, Exponent = exponent, Modulus = modulus, X509Chain = chain } } }; return(await Task.FromResult(Ok(jwksDocument))); }
public async Task GetJsonWebKeySet() { // Arrange HttpClient client = GetTestClient(); HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, "/authentication/api/v1/openid/.well-known/openid-configuration/jwks"); // Act HttpResponseMessage response = await client.SendAsync(requestMessage); // Assert string json = await response.Content.ReadAsStringAsync(); JwksDocument jwksDocument = JsonSerializer.Deserialize <JwksDocument>(json); Assert.NotNull(jwksDocument); Assert.Single(jwksDocument.Keys); Assert.Equal("AQAB", jwksDocument.Keys[0].Exponent); Assert.Equal("RSA", jwksDocument.Keys[0].KeyType); Assert.Equal("sig", jwksDocument.Keys[0].PublicKeyUse); }